diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm')
-rw-r--r-- | testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm b/testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm new file mode 100644 index 000000000..87caa0f78 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/send-sync-blocks-async.htm @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<html> +<head> + <!-- This behaviour is not explicitly spelled out in the spec. + It does say "queue tasks" under the "if the synchronous flag is unset" header in point 10 of the "send" algorithm.. --> + <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following-sibling::ol/li[10]/dl/dd/dl/dd[2]/p[3]" /> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <title>XMLHttpRequest: sync requests should block events on pending async requests</title> +</head> + +<body> + <div id="log"></div> + + <script type="text/javascript"> + var test = async_test(); + + var expect = ['sync 4', 'async 2', 'async 3', 'async 4'] + var actual = [] + + test.step(function() + { + var xhr_async = new XMLHttpRequest() + xhr_async.open('GET', 'resources/delay.py?ms=1000', true) // first launch an async request, completes in 1 second + xhr_async.onreadystatechange = function() + { + test.step(function() + { + actual.push('async ' + xhr_async.readyState) + if(xhr_async.readyState === 4 && actual.indexOf('sync 4')>-1){ + VerifyResult() + } + + }); + }; + xhr_async.send() + + setTimeout(function(){ + var xhr_sync = new XMLHttpRequest(); + xhr_sync.open('GET', 'resources/delay.py?ms=2000', false) // here's a sync request that will take 2 seconds to finish + xhr_sync.onreadystatechange = function() + { + test.step(function() + { + actual.push('sync ' + xhr_sync.readyState) + if(xhr_sync.readyState === 4 && actual.indexOf('async 4')>-1){ + VerifyResult() + } + }); + }; + xhr_sync.send() + + }, 10); + + function VerifyResult() + { + test.step(function() + { + assert_array_equals(actual, expect); + test.done(); + }); + }; + }); + </script> +</body> +</html> |