summaryrefslogtreecommitdiffstats
path: root/dom/security/test/general/browser_test_data_download.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/security/test/general/browser_test_data_download.js')
-rw-r--r--dom/security/test/general/browser_test_data_download.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/dom/security/test/general/browser_test_data_download.js b/dom/security/test/general/browser_test_data_download.js
new file mode 100644
index 0000000000..387572c125
--- /dev/null
+++ b/dom/security/test/general/browser_test_data_download.js
@@ -0,0 +1,52 @@
+"use strict";
+
+const kTestPath = getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content",
+ "http://example.com"
+);
+const kTestURI = kTestPath + "file_data_download.html";
+
+function addWindowListener(aURL, aCallback) {
+ Services.wm.addListener({
+ onOpenWindow(aXULWindow) {
+ info("window opened, waiting for focus");
+ Services.wm.removeListener(this);
+ var domwindow = aXULWindow.docShell.domWindow;
+ waitForFocus(function() {
+ is(
+ domwindow.document.location.href,
+ aURL,
+ "should have seen the right window open"
+ );
+ aCallback(domwindow);
+ }, domwindow);
+ },
+ onCloseWindow(aXULWindow) {},
+ });
+}
+
+function test() {
+ waitForExplicitFinish();
+ Services.prefs.setBoolPref(
+ "security.data_uri.block_toplevel_data_uri_navigations",
+ true
+ );
+ registerCleanupFunction(function() {
+ Services.prefs.clearUserPref(
+ "security.data_uri.block_toplevel_data_uri_navigations"
+ );
+ });
+ addWindowListener(
+ "chrome://mozapps/content/downloads/unknownContentType.xhtml",
+ function(win) {
+ is(
+ win.document.getElementById("location").value,
+ "data-foo.html",
+ "file name of download should match"
+ );
+ win.close();
+ finish();
+ }
+ );
+ BrowserTestUtils.loadURI(gBrowser, kTestURI);
+}