test_setBreakpoint-on-line.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. var SOURCE_URL = getFileUrl("setBreakpoint-on-line.js");
  3. function run_test() {
  4. return Task.spawn(function* () {
  5. do_test_pending();
  6. DebuggerServer.registerModule("xpcshell-test/testactors");
  7. DebuggerServer.init(() => true);
  8. let global = createTestGlobal("test");
  9. DebuggerServer.addTestGlobal(global);
  10. let client = new DebuggerClient(DebuggerServer.connectPipe());
  11. yield connect(client);
  12. let { tabs } = yield listTabs(client);
  13. let tab = findTab(tabs, "test");
  14. let [, tabClient] = yield attachTab(client, tab);
  15. let [, threadClient] = yield attachThread(tabClient);
  16. yield resume(threadClient);
  17. let promise = waitForNewSource(threadClient, SOURCE_URL);
  18. loadSubScript(SOURCE_URL, global);
  19. let { source } = yield promise;
  20. let sourceClient = threadClient.source(source);
  21. let location = { line: 5 };
  22. let [packet, breakpointClient] = yield setBreakpoint(sourceClient, location);
  23. do_check_false(packet.isPending);
  24. do_check_false("actualLocation" in packet);
  25. packet = yield executeOnNextTickAndWaitForPause(function () {
  26. Cu.evalInSandbox("f()", global);
  27. }, client);
  28. do_check_eq(packet.type, "paused");
  29. let why = packet.why;
  30. do_check_eq(why.type, "breakpoint");
  31. do_check_eq(why.actors.length, 1);
  32. do_check_eq(why.actors[0], breakpointClient.actor);
  33. let frame = packet.frame;
  34. let where = frame.where;
  35. do_check_eq(where.source.actor, source.actor);
  36. do_check_eq(where.line, location.line);
  37. let variables = frame.environment.bindings.variables;
  38. do_check_eq(variables.a.value, 1);
  39. do_check_eq(variables.b.value.type, "undefined");
  40. do_check_eq(variables.c.value.type, "undefined");
  41. yield resume(threadClient);
  42. yield close(client);
  43. do_test_finished();
  44. });
  45. }