Title: [190166] trunk/LayoutTests
Revision
190166
Author
calva...@igalia.com
Date
2015-09-23 04:27:58 -0700 (Wed, 23 Sep 2015)

Log Message

[Streams API] Added transform stream error tests
https://bugs.webkit.org/show_bug.cgi?id=149266

Reviewed by Darin Adler.

* streams/reference-implementation/transform-stream-errors-expected.txt: Added.
* streams/reference-implementation/transform-stream-errors.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (190165 => 190166)


--- trunk/LayoutTests/ChangeLog	2015-09-23 11:25:03 UTC (rev 190165)
+++ trunk/LayoutTests/ChangeLog	2015-09-23 11:27:58 UTC (rev 190166)
@@ -1,5 +1,15 @@
 2015-09-23  Xabier Rodriguez Calvar  <calva...@igalia.com>
 
+        [Streams API] Added transform stream error tests
+        https://bugs.webkit.org/show_bug.cgi?id=149266
+
+        Reviewed by Darin Adler.
+
+        * streams/reference-implementation/transform-stream-errors-expected.txt: Added.
+        * streams/reference-implementation/transform-stream-errors.html: Added.
+
+2015-09-23  Xabier Rodriguez Calvar  <calva...@igalia.com>
+
         [Streams API] Added pipe-through transform stream tests
         https://bugs.webkit.org/show_bug.cgi?id=149265
 

Added: trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt (0 => 190166)


--- trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/streams/reference-implementation/transform-stream-errors-expected.txt	2015-09-23 11:27:58 UTC (rev 190166)
@@ -0,0 +1,4 @@
+
+FAIL TransformStream errors thrown in transform put the writable and readable in an errored state Can't find variable: TransformStream
+FAIL TransformStream errors thrown in flush put the writable and readable in an errored state Can't find variable: TransformStream
+

Added: trunk/LayoutTests/streams/reference-implementation/transform-stream-errors.html (0 => 190166)


--- trunk/LayoutTests/streams/reference-implementation/transform-stream-errors.html	                        (rev 0)
+++ trunk/LayoutTests/streams/reference-implementation/transform-stream-errors.html	2015-09-23 11:27:58 UTC (rev 190166)
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<script src=''></script>
+<script src=''></script>
+<script src=''></script>
+<script>
+// This is updated till https://github.com/whatwg/streams/commit/ec5ffa036308d9f6350d2946560d48cdbf090939
+
+var test1 = async_test('TransformStream errors thrown in transform put the writable and readable in an errored state');
+test1.step(function() {
+    var promiseCalls = 0;
+    var thrownError = new Error('bad things are happening!');
+    var ts = new TransformStream({
+        transform: function() {
+            throw thrownError;
+        }
+    });
+
+    assert_equals(ts.writable.state, 'writable', 'writable starts in writable');
+
+    var reader = ts.readable.getReader();
+
+    reader.read().then(
+        test1.step_func(function() { assert_unreached('readable\'s read() should reject'); }),
+        test1.step_func(function(r) {
+            assert_equals(r, thrownError, 'readable\'s read should reject with the thrown error');
+            assert_equals(++promiseCalls, 2);
+        })
+    );
+
+    reader.closed.then(
+        test1.step_func(function() { assert_unreached('readable\'s closed should not be fulfilled'); }),
+        test1.step_func(function(e) {
+            assert_equals(e, thrownError, 'readable\'s closed should be rejected with the thrown error');
+            assert_equals(++promiseCalls, 3);
+            test1.done();
+        })
+    );
+
+    ts.writable.closed.then(
+        test1.step_func(function() { assert_unreached('writable\'s closed should not be fulfilled'); }),
+        test1.step_func(function(e) {
+            assert_equals(e, thrownError, 'writable\'s closed should be rejected with the thrown error');
+            assert_equals(++promiseCalls, 1);
+        })
+    );
+
+    ts.writable.write('a');
+    assert_equals(ts.writable.state, 'waiting', 'writable becomes waiting immediately after throw');
+});
+
+var test2 = async_test('TransformStream errors thrown in flush put the writable and readable in an errored state');
+test2.step(function() {
+    var promiseCalls = 0;
+    var thrownError = new Error('bad things are happening!');
+    var ts = new TransformStream({
+        transform: function(chunk, enqueue, done) {
+            done();
+        },
+        flush: function() {
+            throw thrownError;
+        }
+    });
+
+    var reader = ts.readable.getReader();
+
+    reader.read().then(
+        test2.step_func(function() { assert_unreached('readable\'s read() should reject'); }),
+        test2.step_func(function(r) {
+            assert_equals(r, thrownError, 'readable\'s read should reject with the thrown error');
+            assert_equals(++promiseCalls, 2);
+        })
+    );
+
+    reader.closed.then(
+        test2.step_func(function() { assert_unreached('readable\'s closed should not be fulfilled'); }),
+        test2.step_func(function(e) {
+            assert_equals(e, thrownError, 'readable\'s closed should be rejected with the thrown error');
+            assert_equals(++promiseCalls, 3);
+            test2.done();
+        })
+    );
+
+    ts.writable.closed.then(
+        test2.step_func(function() { assert_unreached('writable\'s closed should not be fulfilled'); }),
+        test2.step_func(function(e) {
+            assert_equals(e, thrownError, 'writable\'s closed should be rejected with the thrown error');
+            assert_equals(++promiseCalls, 1);
+        })
+    );
+
+    assert_equals(ts.writable.state, 'writable', 'writable starts in writable');
+    ts.writable.write('a');
+    assert_equals(ts.writable.state, 'waiting', 'writable becomes waiting after a write');
+    ts.writable.close();
+    assert_equals(ts.writable.state, 'closing', 'writable becomes closing after the close call');
+});
+</script>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to