summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/test/browser_inspector_navigation.js
blob: 68f1edc4ca16032b491959b60fa4fdf5f07fe608 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";

// Test that inspector updates when page is navigated.

const TEST_URL_FILE =
  "browser/devtools/client/inspector/test/doc_inspector_breadcrumbs.html";

const TEST_URL_1 = "https://test1.example.org/" + TEST_URL_FILE;
const TEST_URL_2 = "https://test2.example.org/" + TEST_URL_FILE;

// Bug 1340592: "srcset" attribute causes bfcache events (pageshow/pagehide)
// with buggy "persisted" values.
const TEST_URL_3 =
  "data:text/html;charset=utf-8," +
  encodeURIComponent('<img src="foo.png" srcset="foo.png 1.5x" />');
const TEST_URL_4 =
  "data:text/html;charset=utf-8," + encodeURIComponent("<h1>bar</h1>");

add_task(async function () {
  const { inspector } = await openInspectorForURL(TEST_URL_1);

  await selectNode("#i1", inspector);

  info("Navigating to a different page.");
  await navigateTo(TEST_URL_2);

  ok(true, "New page loaded");
  await selectNode("#i1", inspector);

  const markuploaded = inspector.once("markuploaded");
  const onUpdated = inspector.once("inspector-updated");

  info("Going back in history");
  gBrowser.goBack();

  info("Waiting for markup view to load after going back in history.");
  await markuploaded;

  info("Check that the inspector updates");
  await onUpdated;

  ok(true, "Old page loaded");
  const url = await SpecialPowers.spawn(
    gBrowser.selectedBrowser,
    [],
    () => content.location.href
  );
  is(url, TEST_URL_1, "URL is correct.");

  await selectNode("#i1", inspector);
});

add_task(async function () {
  const { inspector } = await openInspectorForURL(TEST_URL_3);

  await selectNode("img", inspector);

  info("Navigating to a different page.");
  await navigateTo(TEST_URL_4);

  ok(true, "New page loaded");
  await selectNode("#h1", inspector);

  const markuploaded = inspector.once("markuploaded");
  const onUpdated = inspector.once("inspector-updated");

  info("Going back in history");
  gBrowser.goBack();

  info("Waiting for markup view to load after going back in history.");
  await markuploaded;

  info("Check that the inspector updates");
  await onUpdated;

  ok(true, "Old page loaded");
  const url = await SpecialPowers.spawn(
    gBrowser.selectedBrowser,
    [],
    () => content.location.href
  );
  is(url, TEST_URL_3, "URL is correct.");

  await selectNode("img", inspector);
});