gecko/security/manager/ssl/tests/mochitest/mixedcontent/test_bug383369.html
Ehsan Akhgari f5f4c79d42 Bug 650410 - Test for bug 383369 uses a timeout because it doesn't know how to use the download manager API!; r=sdwilsh
--HG--
extra : rebase_source : 36445f348b0909f9c9cecdc3a12f3a8ef187f6b7
2011-04-18 18:49:12 -04:00

112 lines
4.3 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<title>Bug 383369 test</title>
<script type="text/javascript" src="/MochiKit/packed.js"></script>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="mixedContentTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script class="testbody" type="text/javascript">
// We want to start this test from an insecure context
loadAsInsecure = true;
// We don't want to go through the navigation back/forward test
bypassNavigationTest = true;
function runTest()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Force download to be w/o user assistance for our testing mime type
const mimeSvc = Components.classes["@mozilla.org/mime;1"]
.getService(Components.interfaces.nsIMIMEService);
var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
handlerInfo.preferredAction = Components.interfaces.nsIHandlerInfo.saveToDisk;
handlerInfo.alwaysAskBeforeHandling = false;
handlerInfo.preferredApplicationHandler = null;
const handlerSvc = Components.classes["@mozilla.org/uriloader/handler-service;1"]
.getService(Components.interfaces.nsIHandlerService);
handlerSvc.store(handlerInfo);
var dirProvider = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties);
var profileDir = dirProvider.get("ProfDS", Components.interfaces.nsIFile);
profileDir.append("downloads");
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch("browser.download.");
prefs.setCharPref("dir", profileDir.path);
prefs.setBoolPref("useDownloadDir", true);
prefs.setIntPref("folderList", 2);
prefs.setBoolPref("manager.closeWhenDone", true);
prefs.setBoolPref("manager.showWhenStarting", false);
var downloadManager = Components.classes["@mozilla.org/download-manager;1"]
.getService(Components.interfaces.nsIDownloadManager);
var theWindow = window;
var observer = {
observe: function(subject, topic, data) {
switch (topic) {
case "dl-done":
case "dl-failed":
case "dl-blocked":
case "dl-dirty":
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
downloadManager.cleanUp();
theWindow.location = "bug383369step2.html";
observerService.removeObserver(this, "dl-done");
observerService.removeObserver(this, "dl-failed");
observerService.removeObserver(this, "dl-blocked");
observerService.removeObserver(this, "dl-dirty");
break;
}
}
};
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.addObserver(observer, "dl-done", false);
observerService.addObserver(observer, "dl-failed", false);
observerService.addObserver(observer, "dl-blocked", false);
observerService.addObserver(observer, "dl-dirty", false);
window.location = "download.auto";
}
function afterNavigationTest()
{
}
testCleanUp = function cleanup()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const mimeSvc = Components.classes["@mozilla.org/mime;1"]
.getService(Components.interfaces.nsIMIMEService);
var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
const handlerSvc = Components.classes["@mozilla.org/uriloader/handler-service;1"]
.getService(Components.interfaces.nsIHandlerService);
handlerSvc.remove(handlerInfo);
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch("browser.download.");
var prefKeys = ["dir", "useDownloadDir", "folderList",
"manager.closeWhenDone", "manager.showWhenStarting"];
for (var i = 0; i < prefKeys.length; i++)
if (prefs.prefHasUserValue(prefKeys[i]))
prefs.clearUserPref(prefKeys[i]);
}
</script>
</head>
<body>
</body>
</html>