mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-29 21:25:35 +00:00
c7264cb3ac
--HG-- rename : dom/workers/XMLHttpRequestUploadWorker.cpp => dom/xhr/XMLHttpRequestUploadWorker.cpp rename : dom/workers/XMLHttpRequestUploadWorker.h => dom/xhr/XMLHttpRequestUploadWorker.h rename : dom/workers/XMLHttpRequestWorker.cpp => dom/xhr/XMLHttpRequestWorker.cpp rename : dom/workers/XMLHttpRequestWorker.h => dom/xhr/XMLHttpRequestWorker.h rename : dom/base/nsIXMLHttpRequest.idl => dom/xhr/nsIXMLHttpRequest.idl rename : dom/base/nsXMLHttpRequest.cpp => dom/xhr/nsXMLHttpRequest.cpp rename : dom/base/nsXMLHttpRequest.h => dom/xhr/nsXMLHttpRequest.h rename : dom/base/test/echo.sjs => dom/xhr/tests/echo.sjs rename : dom/base/test/file_XHRDocURI.html => dom/xhr/tests/file_XHRDocURI.html rename : dom/base/test/file_XHRDocURI.html^headers^ => dom/xhr/tests/file_XHRDocURI.html^headers^ rename : dom/base/test/file_XHRDocURI.sjs => dom/xhr/tests/file_XHRDocURI.sjs rename : dom/base/test/file_XHRDocURI.text => dom/xhr/tests/file_XHRDocURI.text rename : dom/base/test/file_XHRDocURI.text^headers^ => dom/xhr/tests/file_XHRDocURI.text^headers^ rename : dom/base/test/file_XHRDocURI.xml => dom/xhr/tests/file_XHRDocURI.xml rename : dom/base/test/file_XHRDocURI.xml^headers^ => dom/xhr/tests/file_XHRDocURI.xml^headers^ rename : dom/base/test/file_XHRResponseURL.js => dom/xhr/tests/file_XHRResponseURL.js rename : dom/base/test/file_XHRResponseURL.sjs => dom/xhr/tests/file_XHRResponseURL.sjs rename : dom/base/test/file_XHRResponseURL.text => dom/xhr/tests/file_XHRResponseURL.text rename : dom/base/test/file_XHRResponseURL.text^headers^ => dom/xhr/tests/file_XHRResponseURL.text^headers^ rename : dom/base/test/file_XHRResponseURL_nocors.text => dom/xhr/tests/file_XHRResponseURL_nocors.text rename : dom/base/test/file_XHRSendData.sjs => dom/xhr/tests/file_XHRSendData.sjs rename : dom/base/test/file_XHRSendData_doc.xml => dom/xhr/tests/file_XHRSendData_doc.xml rename : dom/base/test/file_XHRSendData_doc.xml^headers^ => dom/xhr/tests/file_XHRSendData_doc.xml^headers^ rename : dom/base/test/file_XHR_anon.sjs => dom/xhr/tests/file_XHR_anon.sjs rename : dom/base/test/file_XHR_binary1.bin => dom/xhr/tests/file_XHR_binary1.bin rename : dom/base/test/file_XHR_binary1.bin^headers^ => dom/xhr/tests/file_XHR_binary1.bin^headers^ rename : dom/base/test/file_XHR_binary2.bin => dom/xhr/tests/file_XHR_binary2.bin rename : dom/base/test/file_XHR_fail1.txt => dom/xhr/tests/file_XHR_fail1.txt rename : dom/base/test/file_XHR_fail1.txt^headers^ => dom/xhr/tests/file_XHR_fail1.txt^headers^ rename : dom/base/test/file_XHR_fail1b.txt => dom/xhr/tests/file_XHR_fail1b.txt rename : dom/base/test/file_XHR_header.sjs => dom/xhr/tests/file_XHR_header.sjs rename : dom/base/test/file_XHR_pass1.xml => dom/xhr/tests/file_XHR_pass1.xml rename : dom/base/test/file_XHR_pass2.txt => dom/xhr/tests/file_XHR_pass2.txt rename : dom/base/test/file_XHR_pass3.txt => dom/xhr/tests/file_XHR_pass3.txt rename : dom/base/test/file_XHR_pass3.txt^headers^ => dom/xhr/tests/file_XHR_pass3.txt^headers^ rename : dom/base/test/file_XHR_system_redirect.html => dom/xhr/tests/file_XHR_system_redirect.html rename : dom/base/test/file_XHR_system_redirect.html^headers^ => dom/xhr/tests/file_XHR_system_redirect.html^headers^ rename : dom/base/test/file_XHR_timeout.sjs => dom/xhr/tests/file_XHR_timeout.sjs rename : dom/base/test/file_html_in_xhr.html => dom/xhr/tests/file_html_in_xhr.html rename : dom/base/test/file_html_in_xhr.sjs => dom/xhr/tests/file_html_in_xhr.sjs rename : dom/base/test/file_html_in_xhr2.html => dom/xhr/tests/file_html_in_xhr2.html rename : dom/base/test/file_html_in_xhr3.html => dom/xhr/tests/file_html_in_xhr3.html rename : dom/base/test/progressserver.sjs => dom/xhr/tests/progressserver.sjs rename : dom/workers/test/relativeLoad_import.js => dom/xhr/tests/relativeLoad_import.js rename : dom/workers/test/relativeLoad_worker.js => dom/xhr/tests/relativeLoad_worker.js rename : dom/workers/test/relativeLoad_worker2.js => dom/xhr/tests/relativeLoad_worker2.js rename : dom/base/test/responseIdentical.sjs => dom/xhr/tests/responseIdentical.sjs rename : dom/workers/test/subdir/relativeLoad_sub_import.js => dom/xhr/tests/subdir/relativeLoad_sub_import.js rename : dom/workers/test/subdir/relativeLoad_sub_worker.js => dom/xhr/tests/subdir/relativeLoad_sub_worker.js rename : dom/workers/test/subdir/relativeLoad_sub_worker2.js => dom/xhr/tests/subdir/relativeLoad_sub_worker2.js rename : dom/workers/test/terminateSyncXHR_worker.js => dom/xhr/tests/terminateSyncXHR_worker.js rename : dom/base/test/test_XHR.html => dom/xhr/tests/test_XHR.html rename : dom/base/test/test_XHRDocURI.html => dom/xhr/tests/test_XHRDocURI.html rename : dom/base/test/test_XHRResponseURL.html => dom/xhr/tests/test_XHRResponseURL.html rename : dom/base/test/test_XHRSendData.html => dom/xhr/tests/test_XHRSendData.html rename : dom/base/test/test_XHR_anon.html => dom/xhr/tests/test_XHR_anon.html rename : dom/base/test/test_XHR_header.html => dom/xhr/tests/test_XHR_header.html rename : dom/base/test/test_XHR_onuploadprogress.html => dom/xhr/tests/test_XHR_onuploadprogress.html rename : dom/base/test/test_XHR_parameters.html => dom/xhr/tests/test_XHR_parameters.html rename : dom/base/test/test_XHR_system.html => dom/xhr/tests/test_XHR_system.html rename : dom/base/test/test_XHR_timeout.html => dom/xhr/tests/test_XHR_timeout.html rename : dom/base/test/test_XHR_timeout.js => dom/xhr/tests/test_XHR_timeout.js rename : dom/base/test/test_html_in_xhr.html => dom/xhr/tests/test_html_in_xhr.html rename : dom/workers/test/test_relativeLoad.html => dom/xhr/tests/test_relativeLoad.html rename : dom/base/test/test_sync_xhr_timer.xhtml => dom/xhr/tests/test_sync_xhr_timer.xhtml rename : dom/workers/test/test_terminateSyncXHR.html => dom/xhr/tests/test_worker_terminateSyncXHR.html rename : dom/workers/test/test_xhr.html => dom/xhr/tests/test_worker_xhr.html rename : dom/workers/test/test_xhr2.html => dom/xhr/tests/test_worker_xhr2.html rename : dom/workers/test/test_xhrAbort.html => dom/xhr/tests/test_worker_xhrAbort.html rename : dom/workers/test/test_xhr_3rdparty.html => dom/xhr/tests/test_worker_xhr_3rdparty.html rename : dom/workers/test/test_xhr_cors_redirect.html => dom/xhr/tests/test_worker_xhr_cors_redirect.html rename : dom/workers/test/test_xhr_headers.html => dom/xhr/tests/test_worker_xhr_headers.html rename : dom/workers/test/test_xhr_implicit_cancel.html => dom/xhr/tests/test_worker_xhr_implicit_cancel.html rename : dom/workers/test/test_xhr_parameters.html => dom/xhr/tests/test_worker_xhr_parameters.html rename : dom/workers/test/test_xhr_parameters.js => dom/xhr/tests/test_worker_xhr_parameters.js rename : dom/workers/test/test_xhr_responseURL.html => dom/xhr/tests/test_worker_xhr_responseURL.html rename : dom/workers/test/test_xhr_system.html => dom/xhr/tests/test_worker_xhr_system.html rename : dom/workers/test/test_xhr_system.js => dom/xhr/tests/test_worker_xhr_system.js rename : dom/workers/test/test_xhr_timeout.html => dom/xhr/tests/test_worker_xhr_timeout.html rename : dom/base/test/test_xhr_abort_after_load.html => dom/xhr/tests/test_xhr_abort_after_load.html rename : dom/base/test/test_xhr_forbidden_headers.html => dom/xhr/tests/test_xhr_forbidden_headers.html rename : dom/base/test/test_xhr_overridemimetype_throws_on_invalid_state.html => dom/xhr/tests/test_xhr_overridemimetype_throws_on_invalid_state.html rename : dom/base/test/test_xhr_progressevents.html => dom/xhr/tests/test_xhr_progressevents.html rename : dom/base/test/test_xhr_send.html => dom/xhr/tests/test_xhr_send.html rename : dom/base/test/test_xhr_send_readystate.html => dom/xhr/tests/test_xhr_send_readystate.html rename : dom/base/test/test_xhr_withCredentials.html => dom/xhr/tests/test_xhr_withCredentials.html rename : dom/workers/test/file_getcookie.sjs => dom/xhr/tests/worker_file_getcookie.sjs rename : dom/workers/test/terminateSyncXHR_frame.html => dom/xhr/tests/worker_terminateSyncXHR_frame.html rename : dom/workers/test/testXHR.txt => dom/xhr/tests/worker_testXHR.txt rename : dom/workers/test/xhr_cors_redirect.js => dom/xhr/tests/worker_xhr_cors_redirect.js rename : dom/workers/test/xhr_cors_redirect.sjs => dom/xhr/tests/worker_xhr_cors_redirect.sjs rename : dom/workers/test/xhr_headers_server.sjs => dom/xhr/tests/worker_xhr_headers_server.sjs rename : dom/workers/test/xhr_headers_worker.js => dom/xhr/tests/worker_xhr_headers_worker.js rename : dom/workers/test/xhr2_worker.js => dom/xhr/tests/xhr2_worker.js rename : dom/workers/test/xhrAbort_worker.js => dom/xhr/tests/xhrAbort_worker.js rename : dom/workers/test/xhr_implicit_cancel_worker.js => dom/xhr/tests/xhr_implicit_cancel_worker.js rename : dom/workers/test/xhr_worker.js => dom/xhr/tests/xhr_worker.js
181 lines
4.8 KiB
HTML
181 lines
4.8 KiB
HTML
<!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>
|