blob: 56702c01d0e886c8151b696e1392af85a7e33b40 [file] [log] [blame]
aahlstrom@google.com47a878a2017-08-09 23:15:411<!DOCTYPE html>
2<html>
3 <head>
4 <title>Preflight cache should be invalidated on timeout</title>
5 <script src="/resources/testharness.js"></script>
6 <script src="/resources/testharnessreport.js"></script>
7 <script src="/common/get-host-info.sub.js"></script>
8 <script src="/common/utils.js"></script>
9 </head>
10 <body>
11 <script type="text/javascript">
12 const uuid = token();
13 let xhr = new XMLHttpRequest;
14
15 async_test(function(test) {
16 xhr.onerror = test.unreached_func("FAIL: Network error.");
17 xhr.onload = test.step_func(function() {
18 // Token reset. We can start the test now.
19 assert_equals(xhr.responseText, "PASS");
20 firstRequest();
21 });
22
23 xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN + "/XMLHttpRequest/resources/reset-token.py?token=" + uuid, true);
24 xhr.send();
25
26 function firstRequest() {
27 xhr.onload = test.step_func(function() {
28 assert_equals(xhr.responseText, "PASS: First PUT request.");
29 step_timeout(secondRequest, 3000); // 3 seconds
30 });
31 xhr.open("PUT", get_host_info().HTTP_REMOTE_ORIGIN + "/XMLHttpRequest/resources/access-control-basic-preflight-cache-timeout.py?token=" + uuid, true);
32 xhr.send();
33 }
34
35 function secondRequest() {
36 xhr.onload = test.step_func(function() {
37 assert_equals(xhr.responseText, "PASS: Second OPTIONS request was sent.");
38 test.done();
39 });
40 xhr.open("PUT", get_host_info().HTTP_REMOTE_ORIGIN + "/XMLHttpRequest/resources/access-control-basic-preflight-cache-timeout.py?token=" + uuid, true);
41 xhr.send();
42 }
43 }, "Preflight cache should be invalidated on timeout");
44 </script>
45 </body>
46</html>