Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: LayoutTests/http/tests/xmlhttprequest/sync-repeated-and-caching.html

Issue 59043006: Avoid reusing XMLHttpRequest resources during document load. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Reduce scope of test to lessen timeout potential Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/xmlhttprequest/sync-repeated-and-caching.html
diff --git a/LayoutTests/http/tests/xmlhttprequest/sync-repeated-and-caching.html b/LayoutTests/http/tests/xmlhttprequest/sync-repeated-and-caching.html
new file mode 100644
index 0000000000000000000000000000000000000000..1c9c735b92ec8d8db2858721f2f286ca9909e5eb
--- /dev/null
+++ b/LayoutTests/http/tests/xmlhttprequest/sync-repeated-and-caching.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Synchronous XMLHttpRequest and caching during document load</title>
+</head>
+<body>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<script type="text/javascript">
+
+// Test what caching XMLHttpRequest performs when issuing
+// sync requests over various verbs and with various
+// kinds of query portions. Without any cache control
+// headers.
+var verbs = [ "GET",
+ "PUT",
+ "POST",
+ "PROPFIND"];
+
+var query_kinds = [
+ {query: "'?random'",
+ name: "constant query",
+ // The list of verbs we expect the request not to be repeated for.
+ should_cache: []},
+ {query: "",
+ name: "no query",
+ should_cache: []},
+ {query: "'?' + (Math.random() + Date.now()).toString()",
+ name: "unique query string",
+ should_cache: []},
+ {query: "'?'",
+ name: "empty query",
+ should_cache: []}];
+
+var base_url = "resources/echo-random.php";
+
+function runTest() {
+ for (var i = 0; i < verbs.length; i++) {
+ var verb = verbs[i];
+ for (var j = 0; j < query_kinds.length; j++) {
+ var q1 = eval(query_kinds[j].query) || "";
+
+ var request_url1 = base_url + q1;
+ var xhr1 = new XMLHttpRequest;
+ xhr1.open(verb, request_url1, false);
+ xhr1.send();
+ var result1 = xhr1.responseText;
+
+ var xhr2 = new XMLHttpRequest();
+ var q2 = eval(query_kinds[j].query) || "";
+ var request_url2 = base_url + q2;
+ xhr2.open(verb, request_url2, false);
+ xhr2.send();
+ var result2 = xhr2.responseText;
+
+ test(function () {
+ if (query_kinds[j].should_cache.indexOf(verb) >= 0)
+ assert_true(result1 === result2);
+ else
+ assert_false(result1 === result2);
+ }, "Test repeated sync requests using verb '" + verb + " with " + query_kinds[j].name);
+ }
+ }
+}
+
+test(runTest, document.title);
+</script>
+<div id="log"></div>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698