зеркало из https://github.com/mozilla/gecko-dev.git
58 строки
1.9 KiB
HTML
58 строки
1.9 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>XMLHttpRequest: passing objects that interfere with the XHR instance to send()</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol/li[4]" />
|
|
<link rel="help" href="https://heycam.github.io/webidl/#es-union" data-tested-assertations="following::ol/li[16]" />
|
|
|
|
|
|
<div id="log"></div>
|
|
|
|
<script>
|
|
var test1 = async_test('abort() called from data stringification')
|
|
test1.step(function() {
|
|
var client = new XMLHttpRequest()
|
|
var objAbortsOnStringification = {toString:function(){
|
|
client.abort();
|
|
}}
|
|
client.open('POST', 'resources/content.py')
|
|
assert_throws("InvalidStateError", function(){
|
|
client.send(objAbortsOnStringification)
|
|
})
|
|
test1.done()
|
|
});
|
|
|
|
var test2 = async_test('open() called from data stringification')
|
|
test2.step(function() {
|
|
var client = new XMLHttpRequest()
|
|
var objOpensOnStringification = {toString:function(){
|
|
client.open('POST', 'resources/status.py?text=second_open_wins');
|
|
}}
|
|
client.onloadend = test2.step_func(function(){
|
|
assert_equals(client.statusText, 'second_open_wins')
|
|
test2.done()
|
|
})
|
|
client.open('POST', 'resources/status.py?text=first_open_wins')
|
|
client.send(objOpensOnStringification)
|
|
});
|
|
|
|
var test3 = async_test('send() called from data stringification')
|
|
test3.step(function() {
|
|
var client = new XMLHttpRequest()
|
|
var objSendsOnStringification = {toString:function(){
|
|
client.send('bomb!');
|
|
}}
|
|
client.onload = test3.step_func(function(){
|
|
assert_equals(client.responseText, 'bomb!')
|
|
test3.done()
|
|
})
|
|
client.open('POST', 'resources/content.py')
|
|
assert_throws('InvalidStateError', function(){
|
|
client.send(objSendsOnStringification)
|
|
})
|
|
});
|
|
|
|
|
|
</script>
|