<!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>