Index: LayoutTests/http/tests/xmlhttprequest/duplicate-revalidation-reload.html |
diff --git a/LayoutTests/http/tests/xmlhttprequest/duplicate-revalidation-reload.html b/LayoutTests/http/tests/xmlhttprequest/duplicate-revalidation-reload.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8a5cd34a27df1fdd32df73cafb7e56fbdff88eca |
--- /dev/null |
+++ b/LayoutTests/http/tests/xmlhttprequest/duplicate-revalidation-reload.html |
@@ -0,0 +1,51 @@ |
+<html> |
+<body> |
+<script src="/js-test-resources/js-test.js"></script> |
+<script> |
+(function() { |
+description('Make two XHRs for the resource which is already cached.'); |
+window.jsTestIsAsync = true; |
+var url = 'resources/get.txt'; |
+function get(xhr, async) { |
+ return new Promise(function(resolve, reject) { |
+ xhr.onreadystatechange = function() { |
+ if (xhr.readyState === xhr.DONE) { |
+ if (xhr.status === 200) { |
+ resolve(xhr.responseText); |
+ } else { |
+ reject(xhr.status); |
+ } |
+ } |
+ }; |
+ xhr.open('GET', url, async); |
+ xhr.send(); |
+ }); |
+} |
+var xhr1 = new XMLHttpRequest(); |
+var xhr2 = new XMLHttpRequest(); |
+ |
+Promise.resolve().then(function() { |
+ var async = get(xhr1, true); |
+ var sync = get(xhr2, false); |
+ return Promise.all([sync, async]); |
+}).then(function(results) { |
+ window.result1 = results[0]; |
+ window.result2 = results[1]; |
+ shouldBeEqualToString('result1', 'PASS'); |
+ shouldBeEqualToString('result2', 'PASS'); |
+ if (localStorage.reload) { |
+ testPassed('DONE'); |
+ finishJSTest(); |
+ } else { |
+ localStorage.reload = true; |
+ location.reload(true); |
+ } |
+}, function(e) { |
+ testFailed(e); |
+ finishJSTest(); |
+}); |
+}()); |
+ |
+</script> |
+</body> |
+</html> |