blob: 743fd8c152f72c55efa06f438e1ccf158101bf6d [file] [log] [blame]
<html>
<head></head>
<body>
<script src="/js-test-resources/js-test.js"></script>
<script>
description('Test XMLHttpRequest responseURL.');
window.jsTestIsAsync = true;
function runTest(url, type) {
return new Promise(function(resolve, reject) {
var req = new XMLHttpRequest();
window.responseURL = req.responseURL;
debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
shouldBeEqualToString('responseURL', '');
req.open('GET', url);
req.responseType = type;
debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', '');
req.onreadystatechange = function() {
debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
if (req.readyState == req.DONE)
resolve(req);
}
req.send();
debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', '');
});
}
runTest('resources/reply.txt', 'text').then(function(req) {
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt');
return runTest('resources/redirect_methods.py?url=reply.xml', 'document');
}).then(function(req) {
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml');
return runTest('resources/redirect_methods.py?url=not-found.txt', 'text');
}).then(function(req) {
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
return runTest('resources/cross-site-progress-events.cgi', 'text');
}).then(function(req) {
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi');
return runTest("supported-xml-content-types.cgi?type=foo#bar/baz+xml", 'xml');
}).then(function(req) {
window.responseURL = req.responseURL;
shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/supported-xml-content-types.cgi?type=foo');
req.open('GET', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
}).catch(function(reason) {
testFailed(String(reason));
}).then(finishJSTest, finishJSTest);
</script>
</body>
</html>