diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
commit | 0b6210cd37b68b94252cb798598b12974a20e1c1 (patch) | |
tree | e371686554a877842d95aa94f100bee552ff2a8e /test/wpt/tests/xhr/send-sync-blocks-async.htm | |
parent | Initial commit. (diff) | |
download | node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip |
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/wpt/tests/xhr/send-sync-blocks-async.htm')
-rw-r--r-- | test/wpt/tests/xhr/send-sync-blocks-async.htm | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/wpt/tests/xhr/send-sync-blocks-async.htm b/test/wpt/tests/xhr/send-sync-blocks-async.htm new file mode 100644 index 0000000..74f08a5 --- /dev/null +++ b/test/wpt/tests/xhr/send-sync-blocks-async.htm @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> +<head> + <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 = test.step_func(() => { + actual.push('async ' + xhr_async.readyState) + if(xhr_async.readyState === 4 && actual.indexOf('sync 4')>-1){ + VerifyResult() + } + }); + xhr_async.send() + + test.step_timeout(() => { + 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 = test.step_func(() => { + 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> |