blob: baf85d002552f3286f74a437e18e6da27c110bf9 (
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
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
const TEST_FILE = "dummy_page.html";
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
const WEB_ADDRESS = "http://example.org/";
// Test for bug 1321020.
add_task(async function () {
let dir = getChromeDir(getResolvedURI(gTestPath));
dir.append(TEST_FILE);
// The file can be a symbolic link on local build. Normalize it to make sure
// the path matches to the actual URI opened in the new tab.
dir.normalize();
const uriString = Services.io.newFileURI(dir).spec;
const openedUriString = uriString + "?opened";
// Open first file:// page.
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, uriString);
registerCleanupFunction(async function () {
BrowserTestUtils.removeTab(tab);
});
// Open new file:// tab from JavaScript in first file:// page.
let promiseTabOpened = BrowserTestUtils.waitForNewTab(
gBrowser,
openedUriString,
true
);
await SpecialPowers.spawn(tab.linkedBrowser, [openedUriString], uri => {
content.open(uri, "_blank");
});
let openedTab = await promiseTabOpened;
registerCleanupFunction(async function () {
BrowserTestUtils.removeTab(openedTab);
});
let openedBrowser = openedTab.linkedBrowser;
// Ensure that new file:// tab can be navigated to web content.
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
BrowserTestUtils.startLoadingURIString(openedBrowser, "http://example.org/");
let href = await BrowserTestUtils.browserLoaded(
openedBrowser,
false,
WEB_ADDRESS
);
is(
href,
WEB_ADDRESS,
"Check that new file:// page has navigated successfully to web content"
);
});
|