browser_se_programs-cache.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* Any copyright is dedicated to the Public Domain.
  2. http://creativecommons.org/publicdomain/zero/1.0/ */
  3. /**
  4. * Tests that program and shader actors are cached in the frontend.
  5. */
  6. function* ifWebGLSupported() {
  7. let { target, debuggee, panel } = yield initShaderEditor(MULTIPLE_CONTEXTS_URL);
  8. let { EVENTS, gFront, ShadersListView, ShadersEditorsView } = panel.panelWin;
  9. reload(target);
  10. let [[programActor]] = yield promise.all([
  11. getPrograms(gFront, 1),
  12. once(panel.panelWin, EVENTS.SOURCES_SHOWN)
  13. ]);
  14. let programItem = ShadersListView.selectedItem;
  15. is(programItem.attachment.programActor, programActor,
  16. "The correct program actor is cached for the selected item.");
  17. is((yield programActor.getVertexShader()),
  18. (yield programItem.attachment.vs),
  19. "The cached vertex shader promise returns the correct actor.");
  20. is((yield programActor.getFragmentShader()),
  21. (yield programItem.attachment.fs),
  22. "The cached fragment shader promise returns the correct actor.");
  23. is((yield (yield programActor.getVertexShader()).getText()),
  24. (yield (yield ShadersEditorsView._getEditor("vs")).getText()),
  25. "The cached vertex shader promise returns the correct text.");
  26. is((yield (yield programActor.getFragmentShader()).getText()),
  27. (yield (yield ShadersEditorsView._getEditor("fs")).getText()),
  28. "The cached fragment shader promise returns the correct text.");
  29. yield teardown(panel);
  30. finish();
  31. }