forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1359204 - Test view-source can open link is not blocked by securi…
…ty policies. r=gijs
- Loading branch information
Christoph Kerschbaumer
committed
May 10, 2017
1 parent
6308106
commit ebc12ce
Showing
3 changed files
with
68 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
docshell/test/browser/browser_click_link_within_view_source.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
"use strict"; | ||
|
||
/** | ||
* Test for Bug 1359204 | ||
* | ||
* Loading a local file, then view-source on that file. Make sure that | ||
* clicking a link within that view-source page is not blocked by security checks. | ||
*/ | ||
|
||
add_task(function* test_click_link_within_view_source() { | ||
let TEST_FILE = "file_click_link_within_view_source.html"; | ||
let TEST_FILE_URI = getChromeDir(getResolvedURI(gTestPath)); | ||
TEST_FILE_URI.append(TEST_FILE); | ||
TEST_FILE_URI = Services.io.newFileURI(TEST_FILE_URI).spec; | ||
|
||
let DUMMY_FILE = "dummy_page.html"; | ||
let DUMMY_FILE_URI = getChromeDir(getResolvedURI(gTestPath)); | ||
DUMMY_FILE_URI.append(DUMMY_FILE); | ||
DUMMY_FILE_URI = Services.io.newFileURI(DUMMY_FILE_URI).spec; | ||
|
||
yield BrowserTestUtils.withNewTab(TEST_FILE_URI, function*(aBrowser) { | ||
let tabSpec = gBrowser.selectedBrowser.currentURI.spec; | ||
info("loading: " + tabSpec); | ||
ok(tabSpec.startsWith("file://") && tabSpec.endsWith(TEST_FILE), | ||
"sanity check to make sure html loaded"); | ||
|
||
info("click view-source of html"); | ||
let tabPromise = BrowserTestUtils.waitForNewTab(gBrowser); | ||
document.getElementById("View:PageSource").doCommand(); | ||
|
||
let tab = yield tabPromise; | ||
tabSpec = gBrowser.selectedBrowser.currentURI.spec; | ||
info("loading: " + tabSpec); | ||
ok(tabSpec.startsWith("view-source:file://") && tabSpec.endsWith(TEST_FILE), | ||
"loading view-source of html succeeded"); | ||
|
||
info("click testlink within view-source page"); | ||
let loadPromise = BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, url => url.endsWith("dummy_page.html")); | ||
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function*() { | ||
if (content.document.readyState != "complete") { | ||
yield ContentTaskUtils.waitForEvent(content.document, "readystatechange", false, () => | ||
content.document.readyState == "complete"); | ||
} | ||
// document.getElementById() does not work on a view-source page, hence we use document.links | ||
let linksOnPage = content.document.links; | ||
is (linksOnPage.length, 1, "sanity check: make sure only one link is present on page"); | ||
let myLink = content.document.links[0]; | ||
myLink.click(); | ||
}); | ||
|
||
yield loadPromise; | ||
|
||
tabSpec = gBrowser.selectedBrowser.currentURI.spec; | ||
info("loading: " + tabSpec); | ||
ok(tabSpec.startsWith("view-source:file://") && tabSpec.endsWith(DUMMY_FILE), | ||
"loading view-source of html succeeded"); | ||
|
||
yield BrowserTestUtils.removeTab(tab); | ||
}); | ||
}); |
6 changes: 6 additions & 0 deletions
6
docshell/test/browser/file_click_link_within_view_source.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<html> | ||
<head> <meta charset="utf-8"> </head> | ||
<body> | ||
<a id="testlink" href="dummy_page.html">clickme</a> | ||
</body> | ||
</html> |