summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_update-on-navigtion.js
blob: e495580d6682a67c5598071f6de1ff5e4b7f3260 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

// Test that markup view handles page navigation correctly.

const URL_1 = URL_ROOT_SSL + "doc_markup_update-on-navigtion_1.html";
const URL_2 = URL_ROOT_SSL + "doc_markup_update-on-navigtion_2.html";

add_task(async function () {
  const { inspector, toolbox } = await openInspectorForURL(URL_1);

  assertMarkupViewIsLoaded();
  await selectNode("#one", inspector);

  const { resourceCommand } = toolbox.commands;
  const { onResource: willNavigate } =
    await resourceCommand.waitForNextResource(
      resourceCommand.TYPES.DOCUMENT_EVENT,
      {
        ignoreExistingResources: true,
        predicate(resource) {
          return resource.name == "will-navigate";
        },
      }
    );

  // We should not await on navigateTo here, because the test will assert the
  // various phases of the inspector during the navigation.
  const onNavigated = navigateTo(URL_2);

  info("Waiting for will-navigate");
  await willNavigate;

  info("Navigation to page 2 has started, the inspector should be empty");
  assertMarkupViewIsEmpty();

  info("Waiting for new-root");
  await inspector.once("new-root");

  info("Navigation to page 2 was done, the inspector should be back up");
  assertMarkupViewIsLoaded();

  await onNavigated;
  await selectNode("#two", inspector);

  function assertMarkupViewIsLoaded() {
    const markupViewBox = inspector.panelDoc.getElementById("markup-box");
    is(markupViewBox.childNodes.length, 1, "The markup-view is loaded");
  }

  function assertMarkupViewIsEmpty() {
    const markupViewFrame =
      inspector._markupFrame.contentDocument.getElementById("root");
    is(markupViewFrame.childNodes.length, 0, "The markup-view is unloaded");
  }
});