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

Unified Diff: polymer_0.5.0/bower_components/core-ajax/test/core-ajax-race.html

Issue 786953007: npm_modules: Fork bower_components into Polymer 0.4.0 and 0.5.0 versions (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 12 months 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: polymer_0.5.0/bower_components/core-ajax/test/core-ajax-race.html
diff --git a/polymer_0.5.0/bower_components/core-ajax/test/core-ajax-race.html b/polymer_0.5.0/bower_components/core-ajax/test/core-ajax-race.html
new file mode 100644
index 0000000000000000000000000000000000000000..700ad12f8e6e8063eb0b7eb30511d053b1361981
--- /dev/null
+++ b/polymer_0.5.0/bower_components/core-ajax/test/core-ajax-race.html
@@ -0,0 +1,81 @@
+<!doctype html>
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<html>
+<head>
+ <title>core-ajax</title>
+
+ <script src="../../webcomponentsjs/webcomponents.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+
+
+ <link rel="import" href="../core-ajax.html">
+
+</head>
+<body>
+
+ <core-ajax
+ handleAs="json"
+ auto></core-ajax>
+
+<!--
+ Test that when core-ajax fires multiple times as requests are updated,
+ only the response from the most recent request is used to update the response
+ object.
+ -->
+ <script>
+ test('race-condition', function(done) {
+ var ajax = document.querySelector("core-ajax");
+ var xhr = sinon.useFakeXMLHttpRequest();
+ var headers = {
+ "Content-Type": "text/json"
+ };
+ var body = function(url) {
+ return '{"url": "' + url + '"}';
+ };
+ var requests = [];
+ xhr.onCreate = function (xhr) {
+ requests.push(xhr);
+ };
+
+ // Make request1, then request2. request2 returns first, followed by request1.
+ async.series([
+ function(cb) {
+ ajax.url="http://example.org/request1"
+ cb();
+ },
+ animationFrameFlush,
+ function(cb) {
+ ajax.url="http://example.org/request2"
+ cb();
+ },
+ animationFrameFlush,
+ function(cb) {
+ requests[0].respond(200, headers, body("http://example.org/request2"));
+ cb();
+ },
+ flush,
+ function(cb) {
+ requests[1].respond(200, headers, body("http://example.org/request1"));
+ cb();
+ },
+ flush,
+ function(cb) {
+ assert(ajax.response.url.match('request1'),
+ "Race condition detected. An earlier request's delayed response " +
+ "caused the more recent request's response to be overwritten.");
+ done();
+ cb();
+ }
+ ], function(){});
+ });
+</script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698