diff options
Diffstat (limited to 'dom/security/test/general/browser_test_data_download.js')
-rw-r--r-- | dom/security/test/general/browser_test_data_download.js | 52 |
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); +} |