diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_getauthenticationinfo.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_getauthenticationinfo.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_getauthenticationinfo.html b/dom/plugins/test/mochitest/test_getauthenticationinfo.html new file mode 100644 index 000000000..f249386c7 --- /dev/null +++ b/dom/plugins/test/mochitest/test_getauthenticationinfo.html @@ -0,0 +1,81 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for Login Manager</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="plugin-utils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +Test for NPN_GetAuthenticationInfo +<p id="display"></p> + +<div id="content"> + <iframe id="iframe"></iframe> +</div> + +<script class="testbody" type="text/javascript"> + +const Ci = SpecialPowers.Ci; +const Cc = SpecialPowers.Cc; + +function iframeLoad() { + var plugin = iframe.contentDocument.getElementById("embedtest"); + // valid request + is(plugin.getAuthInfo("http", "mochi.test", 8888, "basic", "testrealm"), + "user1|password1", + "correct user/pass retrieved"); + try { + // invalid request -- wrong host + is(plugin.getAuthInfo("http", "example.com", 8888, "basic", "testrealm"), + "user1|password1", + "correct user/pass retrieved"); + ok(false, "no exception was thrown"); + } + catch (err) { + ok(true, "expected exception caught"); + } + try { + // invalid request -- wrong port + is(plugin.getAuthInfo("http", "mochi.test", 90, "basic", "testrealm"), + "user1|password1", + "correct user/pass retrieved"); + ok(false, "no exception was thrown"); + } + catch (err) { + ok(true, "expected exception caught"); + } + try { + // invalid request -- wrong realm + is(plugin.getAuthInfo("http", "mochi.test", 8888, "basic", "wrongrealm"), + "user1|password1", + "correct user/pass retrieved"); + ok(false, "no exception was thrown"); + } + catch (err) { + ok(true, "expected exception caught"); + } + SimpleTest.finish(); +} + +SimpleTest.waitForExplicitFinish(); +setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + +// Authentication info is added twice here. In the non-e10s case, this does +// nothing. In the e10s case, we need to add auth info in both the child process, +// which the plugin checks for auth validity, and the parent process, which the +// http network objects use. +// TODO: Clean this up once HTTPAuthManager is made e10s compliant in bug 1249172 +var iframe = document.getElementById("iframe"); +var am = Cc["@mozilla.org/network/http-auth-manager;1"]. + getService(Ci.nsIHttpAuthManager); +am.setAuthIdentity("http", "mochi.test", 8888, "basic", "testrealm", "", + "mochi.test", "user1", "password1"); +SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("file_authident.js")); +iframe.onload = iframeLoad; +iframe.src = "http://mochi.test:8888/tests/toolkit/components/passwordmgr/" + + "test/authenticate.sjs?user=user1&pass=password1&realm=testrealm&plugin=1"; + +</script> +</body> +</html> |