123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Test for XMLHttpRequest with system privileges</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
- </head>
- <body onload="setup();">
- <p id="display">
- <iframe id="loader"></iframe>
- </p>
- <div id="content" style="display: none">
-
- </div>
- <pre id="test">
- <script class="testbody" type="application/javascript;version=1.8">
- // An XHR with the anon flag set will not send cookie and auth information.
- const TEST_URL = "http://example.com/tests/dom/xhr/tests/file_XHR_anon.sjs";
- document.cookie = "foo=bar";
- let am = {
- authMgr: null,
- init: function() {
- this.authMgr = SpecialPowers.Cc["@mozilla.org/network/http-auth-manager;1"]
- .getService(SpecialPowers.Ci.nsIHttpAuthManager)
- },
- addIdentity: function() {
- this.authMgr.setAuthIdentity("http", "example.com", -1, "basic", "testrealm",
- "", "example.com", "user1", "password1");
- },
- tearDown: function() {
- this.authMgr.clearAll();
- },
- }
- var tests = [ test1, test2, test2a, test3, test3, test3, test4, test4, test4, test5, test5, test5 ];
- function runTests() {
- if (!tests.length) {
- am.tearDown();
- // Resetting the cookie.
- document.cookie = "foo=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
- SimpleTest.finish();
- return;
- }
- var test = tests.shift();
- test();
- }
- function test1() {
- am.addIdentity();
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test1: .mozAnon == true");
- xhr.open("GET", TEST_URL);
- xhr.onload = function onload() {
- is(xhr.status, 200, "test1: " + xhr.responseText);
- am.tearDown();
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- am.tearDown();
- runTests();
- }
- xhr.send();
- }
- function test2() {
- am.addIdentity();
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test2: .mozAnon == true");
- xhr.open("GET", TEST_URL + "?expectAuth=true", true,
- "user2name", "pass2word");
- xhr.onload = function onload() {
- is(xhr.status, 200, "test2: " + xhr.responseText);
- let response = JSON.parse(xhr.responseText);
- is(response.authorization, "Basic dXNlcjJuYW1lOnBhc3Myd29yZA==");
- am.tearDown();
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- am.tearDown();
- runTests();
- }
- xhr.send();
- }
- function test2a() {
- am.addIdentity();
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test2: .mozAnon == true");
- xhr.open("GET", TEST_URL + "?expectAuth=true", true,
- "user1", "pass2word");
- xhr.onload = function onload() {
- is(xhr.status, 200, "test2: " + xhr.responseText);
- let response = JSON.parse(xhr.responseText);
- is(response.authorization, "Basic dXNlcjE6cGFzczJ3b3Jk");
- am.tearDown();
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- am.tearDown();
- runTests();
- }
- xhr.send();
- }
- function test3() {
- am.addIdentity();
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test3: .mozAnon == true");
- xhr.open("GET", TEST_URL + "?expectAuth=true", true);
- xhr.onload = function onload() {
- is(xhr.status, 401, "test3: " + xhr.responseText);
- am.tearDown();
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- am.tearDown();
- runTests();
- }
- xhr.send();
- }
- function test4() {
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test4: .mozAnon == true");
- xhr.open("GET", TEST_URL + "?expectAuth=true", true);
- xhr.onload = function onload() {
- is(xhr.status, 401, "test4: " + xhr.responseText);
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- runTests();
- }
- xhr.send();
- }
- function test5() {
- let xhr = new XMLHttpRequest({mozAnon: true, mozSystem: true});
- is(xhr.mozAnon, true, "test5: .mozAnon == true");
- xhr.open("GET", TEST_URL + "?expectAuth=true", true,
- "user2name", "pass2word");
- xhr.onload = function onload() {
- is(xhr.status, 200, "test5: " + xhr.responseText);
- let response = JSON.parse(xhr.responseText);
- is(response.authorization, "Basic dXNlcjJuYW1lOnBhc3Myd29yZA==");
- runTests();
- };
- xhr.onerror = function onerror() {
- ok(false, "Got an error event!");
- runTests();
- }
- xhr.send();
- }
- function setup() {
- am.init();
- SimpleTest.waitForExplicitFinish();
- SpecialPowers.pushPermissions([{'type': 'systemXHR', 'allow': true, 'context': document}], runTests);
- }
- </script>
- </pre>
- </body>
- </html>
|