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

Unified Diff: LayoutTests/http/tests/xmlhttprequest/response-stream-partial-chunk.html

Issue 18635004: [Not ready for review] Add Streams API support to FileReader Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 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: LayoutTests/http/tests/xmlhttprequest/response-stream-partial-chunk.html
diff --git a/LayoutTests/http/tests/xmlhttprequest/response-stream-partial-chunk.html b/LayoutTests/http/tests/xmlhttprequest/response-stream-partial-chunk.html
new file mode 100644
index 0000000000000000000000000000000000000000..29d50b1ba57e5cdd7a0b61db1d57044161f488f1
--- /dev/null
+++ b/LayoutTests/http/tests/xmlhttprequest/response-stream-partial-chunk.html
@@ -0,0 +1,81 @@
+<html>
+<body>
+ <script src="/js-test-resources/js-test-pre.js"></script>
+ <script type="text/javascript">
+description("Test partial data is readable from Stream returned by " +
+ "XMLHttpRequest.");
+
+window.jsTestIsAsync = true;
+
+var xhr = new XMLHttpRequest();
+var reader = null;
+
+function startReadingStream(stream) {
+ reader = new FileReader();
+ reader.onloadstart = function() {
+ testPassed("onloadstart invoked on reader");
+ };
+ reader.onabort = function() {
+ testFailed("onabort invoked on reader");
+ finishJSTest();
+ };
+ reader.onerror = function() {
+ testFailed("onerror invoked on reader");
+ finishJSTest();
+ };
+ reader.onprogress = function() {
+ // Wait until we receive all data flushed by the server.
+ shouldBeNonNull("reader.result");
+ if (reader.result == null) {
+ finishJSTest();
+ return;
+ }
+ if (reader.result.byteLength != 5) {
+ return;
+ }
+
+ shouldBe("reader.readyState", "reader.LOADING");
+ if (reader.readyState != this.LOADING) {
+ finishJSTest();
+ return;
+ }
+
+ shouldBeNull("reader.error");
+
+ for (var i = 0; i < 5; ++i) {
+ window.result = new Uint8Array(reader.result);
+ shouldBe("result[" + i + "]",
+ "'Hello'.charCodeAt(" + i + ")");
+ }
+
+ finishJSTest();
+ }
+ reader.onload = function() {
+ testFailed("onload invoked on reader");
+ finishJSTest();
+ };
+ reader.onloadend = function() {
+ testFailed("onloadend invoked on reader");
+ finishJSTest();
+ };
+ reader.readAsArrayBuffer(stream);
+}
+
+xhr.responseType = 'stream';
+xhr.open('GET', 'resources/chunked-transfer-hang-after-partial-data.php', true);
+xhr.onreadystatechange = function() {
+ if (this.readyState == this.HEADERS_RECEIVED) {
+ shouldBeNull("xhr.response");
+ } else if (this.readyState == this.LOADING && reader == null) {
+ shouldBe("xhr.status", "200");
+ if (this.status != 200) {
+ finishJSTest();
+ return;
+ }
+ startReadingStream(xhr.response);
+ }
+};
+xhr.send();
+ </script>
+ <script src="/js-test-resources/js-test-post.js"></script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698