Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/stream-response.js |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/stream-response.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/stream-response.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..322b164557d6caaf044135fa64a501ba2ab5e851 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/basic/stream-response.js |
@@ -0,0 +1,33 @@ |
+if (this.document === undefined) { |
+ importScripts("/resources/testharness.js"); |
+ importScripts("../resources/utils.js"); |
+} |
+ |
+function streamBody(reader, test, count) { |
+ return reader.read().then(function(data) { |
+ if (!data.done && count < 2) { |
+ count += 1; |
+ return streamBody(reader, test, count); |
+ } else { |
+ test.step(function() { |
+ assert_true(count >= 2, "Retrieve body progressively"); |
+ }); |
+ } |
+ }); |
+} |
+ |
+//simulate streaming: |
+//count is large enough to let the UA deliver the body before it is completely retrieved |
+promise_test(function(test) { |
+ return fetch(RESOURCES_DIR + "trickle.py?ms=30&count=100").then(function(resp) { |
+ var count = 0; |
+ if (resp.body) |
+ return streamBody(resp.body.getReader(), test, count); |
+ else |
+ test.step(function() { |
+ assert_unreached( "Body does not exist in response"); |
+ }); |
+ }); |
+}, "Stream response's body"); |
+ |
+done(); |