Title: [182783] trunk/LayoutTests
Revision
182783
Author
calva...@igalia.com
Date
2015-04-14 01:20:40 -0700 (Tue, 14 Apr 2015)

Log Message

Sync Streams API tests with spec
https://bugs.webkit.org/show_bug.cgi?id=143669

Reviewed by Darin Adler.

Some tests were moved from the spec tests to our custom ones
because they were not approved (yet, or they won't be).

Some nuances from the spec tests were also fixed.

* streams/readable-stream-expected.txt: Added.
* streams/readable-stream-reader-expected.txt: Added.
* streams/readable-stream-reader.html: Added.
* streams/readable-stream.html: Added.
* streams/reference-implementation/readable-stream-expected.txt:
* streams/reference-implementation/readable-stream-reader-expected.txt:
* streams/reference-implementation/readable-stream-reader.html:
* streams/reference-implementation/readable-stream.html: Nuances
fixed and tests moved to custom.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (182782 => 182783)


--- trunk/LayoutTests/ChangeLog	2015-04-14 05:48:23 UTC (rev 182782)
+++ trunk/LayoutTests/ChangeLog	2015-04-14 08:20:40 UTC (rev 182783)
@@ -1,3 +1,25 @@
+2015-04-14  Youenn Fablet  <youenn.fab...@crf.canon.fr> and Xabier Rodriguez Calvar <calva...@igalia.com>
+
+        Sync Streams API tests with spec
+        https://bugs.webkit.org/show_bug.cgi?id=143669
+
+        Reviewed by Darin Adler.
+
+        Some tests were moved from the spec tests to our custom ones
+        because they were not approved (yet, or they won't be).
+
+        Some nuances from the spec tests were also fixed.
+
+        * streams/readable-stream-expected.txt: Added.
+        * streams/readable-stream-reader-expected.txt: Added.
+        * streams/readable-stream-reader.html: Added.
+        * streams/readable-stream.html: Added.
+        * streams/reference-implementation/readable-stream-expected.txt:
+        * streams/reference-implementation/readable-stream-reader-expected.txt:
+        * streams/reference-implementation/readable-stream-reader.html:
+        * streams/reference-implementation/readable-stream.html: Nuances
+        fixed and tests moved to custom.
+
 2015-04-13  Manuel Rego Casasnovas  <r...@igalia.com>
 
         [CSS Grid Layout] Columns set in percentages collapse to auto width

Added: trunk/LayoutTests/streams/readable-stream-expected.txt (0 => 182783)


--- trunk/LayoutTests/streams/readable-stream-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/streams/readable-stream-expected.txt	2015-04-14 08:20:40 UTC (rev 182783)
@@ -0,0 +1,6 @@
+
+PASS ReadableStream can't be constructed with garbage 
+FAIL ReadableStream start should be called with the proper parameters null is not an object (evaluating 'Object.getOwnPropertyNames(Object.getPrototypeOf(controller))')
+FAIL ReadableStream start controller parameter should be updatable null is not an object (evaluating 'Object.getOwnPropertyNames(Object.getPrototypeOf(controller))')
+PASS ReadableStream should be able to call start method within prototype chain of its source 
+

Added: trunk/LayoutTests/streams/readable-stream-reader-expected.txt (0 => 182783)


--- trunk/LayoutTests/streams/readable-stream-reader-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/streams/readable-stream-reader-expected.txt	2015-04-14 08:20:40 UTC (rev 182783)
@@ -0,0 +1,3 @@
+
+PASS Collecting a ReadableStreamReader should not unlock its stream 
+

Added: trunk/LayoutTests/streams/readable-stream-reader.html (0 => 182783)


--- trunk/LayoutTests/streams/readable-stream-reader.html	                        (rev 0)
+++ trunk/LayoutTests/streams/readable-stream-reader.html	2015-04-14 08:20:40 UTC (rev 182783)
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<script src=''></script>
+<script src=''></script>
+<script src=''></script>
+<script>
+test(function() {
+    var rs = new ReadableStream({});
+    rs.getReader();
+    window.gc();
+    assert_throws(new TypeError(), function() { rs.getReader(); }, 'old reader should still be locking a new one even after garbage collection');
+}, 'Collecting a ReadableStreamReader should not unlock its stream');
+</script>

Added: trunk/LayoutTests/streams/readable-stream.html (0 => 182783)


--- trunk/LayoutTests/streams/readable-stream.html	                        (rev 0)
+++ trunk/LayoutTests/streams/readable-stream.html	2015-04-14 08:20:40 UTC (rev 182783)
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<script src=''></script>
+<script src=''></script>
+<script>
+test(function() {
+    assert_throws(new TypeError(), function() {
+        new ReadableStream(null);
+    }, 'constructor should throw when the source is null');
+}, 'ReadableStream can\'t be constructed with garbage');
+
+test(function()
+{
+    var isStartCalled = false;
+    var source = {
+        start: function(controller) {
+            assert_equals(this, source, 'source is this during start');
+
+            var unnamedMethods = [ 'close', 'enqueue', 'error' ];
+            var methods = unnamedMethods.concat(['constructor']).sort();
+            var proto = Object.getPrototypeOf(controller);
+
+            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), methods,
+                        'the controller should have the right methods');
+
+            for (var m of unnamedMethods) {
+                assert_equals(controller[m].name, '', 'method should have no name');
+            }
+
+            for (var m of methods) {
+                var methodProperties = [ 'arguments', 'caller', 'length', 'name', 'prototype' ];
+                var propDesc = Object.getOwnPropertyDescriptor(proto, m);
+                assert_equals(propDesc.enumerable, false, 'method should be non-enumerable');
+                assert_equals(propDesc.configurable, true, 'method should be configurable');
+                assert_equals(propDesc.writable, true, 'method should be writable');
+                assert_equals(typeof controller[m], 'function', 'should have be a method');
+                assert_array_equals(Object.getOwnPropertyNames(controller[m]).sort(), methodProperties, 'method should have the right properties');
+            }
+
+            assert_equals(controller.close.length, 0, 'close should have no parameters');
+            assert_equals(controller.constructor.length, 1, 'constructor should have 1 parameters');
+            assert_equals(controller.enqueue.length, 1, 'enqueue should have 1 parameter');
+            assert_equals(controller.error.length, 1, 'error should have 1 parameter');
+
+            isStartCalled = true;
+        }
+    };
+
+    var rs = new ReadableStream(source);
+    assert_true(isStartCalled);
+}, 'ReadableStream start should be called with the proper parameters');
+
+test(function()
+{
+    var isStartCalled = false;
+    var source = {
+        start: function(controller) {
+      const methods = [ 'close', 'constructor', 'enqueue', 'error' ];
+            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), methods, 'prototype should have the right methods');
+            controller.test = "";
+            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), methods, 'prototype should still have the right methods');
+            assert_not_equals(Object.getOwnPropertyNames(controller).indexOf('test'), '\'test\' is a property of the controller');
+
+            isStartCalled = true;
+        }
+    };
+
+    var rs = new ReadableStream(source);
+    assert_true(isStartCalled);
+}, 'ReadableStream start controller parameter should be updatable');
+
+test(function()
+{
+    var isStartCalled = false;
+
+    var SimpleStreamSource = function() { };
+    SimpleStreamSource.prototype.start = function() { isStartCalled = true; };
+    SimpleStreamSource.prototype.constructor = SimpleStreamSource;
+
+    var rs = new ReadableStream(new SimpleStreamSource());
+    assert_true(isStartCalled);
+}, 'ReadableStream should be able to call start method within prototype chain of its source');
+</script>

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream-expected.txt (182782 => 182783)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream-expected.txt	2015-04-14 05:48:23 UTC (rev 182782)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream-expected.txt	2015-04-14 08:20:40 UTC (rev 182783)
@@ -1,17 +1,13 @@
 
 FAIL ReadableStream can be constructed with no errors ReadableStream constructor should get an object as argument.
-PASS ReadableStream can't be constructed with garbage 
-FAIL ReadableStream instances should have the correct list of properties assert_array_equals: lengths differ, expected 6 got 5
-PASS ReadableStream constructor should get a function as start argument 
-FAIL ReadableStream start should be called with the proper parameters null is not an object (evaluating 'Object.getOwnPropertyNames(Object.getPrototypeOf(controller))')
-FAIL ReadableStream start controller parameter should be updatable null is not an object (evaluating 'Object.getOwnPropertyNames(Object.getPrototypeOf(controller))')
-PASS ReadableStream should be able to call start method within prototype chain of its source 
+FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct methods lengths differ, expected 6 got 5
+PASS ReadableStream constructor should throw for non-function start arguments 
 PASS ReadableStream constructor can get initial garbage as cancel argument 
 PASS ReadableStream constructor can get initial garbage as pull argument 
 PASS ReadableStream constructor can get initial garbage as strategy argument 
 FAIL ReadableStream start should be able to return a promise read is not implemented
 TIMEOUT ReadableStream start should be able to return a promise and reject it Test timed out
-FAIL ReadableStream should be able to queue different objects. read is not implemented
+FAIL ReadableStream should be able to enqueue different objects. read is not implemented
 PASS ReadableStream: if start throws an error, it should be re-thrown 
 FAIL ReadableStream: if pull rejects, it should error the stream read is not implemented
 FAIL ReadableStream: should only call pull once upon starting the stream assert_equals: pull should be called once start finishes expected 1 but got 0

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt (182782 => 182783)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt	2015-04-14 05:48:23 UTC (rev 182782)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream-reader-expected.txt	2015-04-14 08:20:40 UTC (rev 182783)
@@ -1,7 +1,7 @@
 
 PASS Can get the ReadableStreamReader constructor indirectly 
 PASS ReadableStreamReader constructor should get a ReadableStream object as argument 
-FAIL ReadableStream instances should have the correct list of properties assert_array_equals: lengths differ, expected 5 got 4
+FAIL ReadableStreamReader instances should have the correct list of properties assert_array_equals: lengths differ, expected 5 got 4
 PASS ReadableStreamReader closed should always return the same promise object 
 PASS Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction) 
 PASS Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction) 
@@ -17,5 +17,4 @@
 FAIL Cannot use an already-released reader to unlock a stream again releaseLock is not implemented
 FAIL cancel() on a released reader is a no-op and does not pass through releaseLock is not implemented
 FAIL Getting a second reader after erroring the stream should succeed read is not implemented
-PASS Collecting a ReadableStreamReader should not unlock its stream 
 

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream-reader.html (182782 => 182783)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream-reader.html	2015-04-14 05:48:23 UTC (rev 182782)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream-reader.html	2015-04-14 08:20:40 UTC (rev 182783)
@@ -1,7 +1,6 @@
 <!DOCTYPE html>
 <script src=''></script>
 <script src=''></script>
-<script src=''></script>
 <script src=''></script>
 <script>
 var ReadableStreamReader;
@@ -24,46 +23,43 @@
 }, 'ReadableStreamReader constructor should get a ReadableStream object as argument');
 
 test(function() {
+    var methods = ['cancel', 'constructor', 'read', 'releaseLock'];
+    var properties = methods.concat(['closed']).sort();
+
     var rsReader = new ReadableStreamReader(new ReadableStream());
+    var proto = Object.getPrototypeOf(rsReader);
 
-    // assert_array_equals(Object.getOwnPropertyNames(rsReader), []);
-    assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(rsReader)).sort(), [ 'cancel', 'closed', 'constructor', 'read', 'releaseLock' ]);
+    assert_array_equals(Object.getOwnPropertyNames(proto).sort(), properties);
 
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'cancel').enumerable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'cancel').configurable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'cancel').writable);
+    for (var m of methods) {
+        var propDesc = Object.getOwnPropertyDescriptor(proto, m);
+        assert_equals(propDesc.enumerable, false, 'method should be non-enumerable');
+        assert_equals(propDesc.configurable, true, 'method should be configurable');
+        assert_equals(propDesc.writable, true, 'method should be writable');
+        assert_equals(typeof rsReader[m], 'function', 'should have be a method');
+    }
 
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'closed').enumerable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'closed').configurable);
+    var closedPropDesc = Object.getOwnPropertyDescriptor(proto, 'closed');
+    assert_equals(closedPropDesc.enumerable, false, 'closed should be non-enumerable');
+    assert_equals(closedPropDesc.configurable, true, 'closed should be configurable');
+    assert_not_equals(closedPropDesc.get, undefined, 'closed should have a getter');
+    assert_equals(closedPropDesc.set, undefined, 'closed should not have a setter');
 
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'constructor').configurable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'constructor').writable);
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'read').enumerable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'read').configurable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'read').writable);
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'releaseLock').enumerable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'releaseLock').configurable);
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rsReader), 'releaseLock').writable);
-
-    assert_equals(typeof rsReader.cancel, 'function', 'has a cancel method');
-    assert_equals(rsReader.cancel.length, 1);
-    assert_exists(Object.getPrototypeOf(rsReader), 'closed', 'has a closed property');
+    assert_equals(rsReader.cancel.length, 1, 'cancel has 1 parameter');
+    assert_not_equals(rsReader.closed, undefined, 'has a non-undefined closed property');
     assert_equals(typeof rsReader.closed.then, 'function', 'closed property is thenable');
     assert_equals(typeof rsReader.constructor, 'function', 'has a constructor method');
     assert_equals(rsReader.constructor.length, 1, 'constructor has 1 parameter');
     assert_equals(typeof rsReader.read, 'function', 'has a getReader method');
-    assert_equals(rsReader.read.length, 0);
+    assert_equals(rsReader.read.length, 0, 'read has no parameters');
     assert_equals(typeof rsReader.releaseLock, 'function', 'has a releaseLock method');
-    assert_equals(rsReader.releaseLock.length, 0);
+    assert_equals(rsReader.releaseLock.length, 0, 'releaseLock has no parameters');
+}, 'ReadableStreamReader instances should have the correct list of properties');
 
-}, 'ReadableStream instances should have the correct list of properties');
-
 test(function() {
     var rsReader = new ReadableStreamReader(new ReadableStream());
 
-    assert_equals(rsReader.closed, rsReader.closed);
+    assert_equals(rsReader.closed, rsReader.closed, 'closed should return the same promise');
 }, 'ReadableStreamReader closed should always return the same promise object');
 
 test(function() {
@@ -316,11 +312,4 @@
         test8.done();
     }));
 });
-
-test(function() {
-    var rs = new ReadableStream({});
-    rs.getReader();
-    window.gc();
-    assert_throws(new TypeError(), function() { rs.getReader(); });
-}, 'Collecting a ReadableStreamReader should not unlock its stream');
 </script>

Modified: trunk/LayoutTests/streams/reference-implementation/readable-stream.html (182782 => 182783)


--- trunk/LayoutTests/streams/reference-implementation/readable-stream.html	2015-04-14 05:48:23 UTC (rev 182782)
+++ trunk/LayoutTests/streams/reference-implementation/readable-stream.html	2015-04-14 08:20:40 UTC (rev 182783)
@@ -12,129 +12,35 @@
 }, 'ReadableStream can be constructed with no errors');
 
 test(function() {
-    assert_throws(new TypeError(), function() {
-        new ReadableStream(null);
-    }, 'constructor can\'t receive null');
-}, 'ReadableStream can\'t be constructed with garbage');
+    var methods = ['cancel', 'constructor', 'getReader', 'pipeThrough', 'pipeTo', 'tee'];
 
-test(function() {
     var rs = new ReadableStream();
+    var proto = Object.getPrototypeOf(rs);
 
-    assert_array_equals(Object.getOwnPropertyNames(rs), []);
-    assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(rs)).sort(), ['cancel', 'constructor', 'getReader', 'pipeThrough', 'pipeTo', 'tee']);
+    assert_array_equals(Object.getOwnPropertyNames(proto).sort(), methods, 'should have all the correct methods');
 
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').enumerable, 'cancel method is enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').configurable, 'cancel method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').writable, 'cancel method is writable');
+    for (var m of methods) {
+        var propDesc = Object.getOwnPropertyDescriptor(proto, m);
+        assert_equals(propDesc.enumerable, false, 'method should be non-enumerable');
+        assert_equals(propDesc.configurable, true, 'method should be configurable');
+        assert_equals(propDesc.writable, true, 'method should be writable');
+        assert_equals(typeof rs[m], 'function', 'should have be a method');
+    }
 
-    assert_false(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'constructor').enumerable, 'constructor method is not enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'constructor').configurable, 'constructor method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'constructor').writable, 'constructor method is writable');
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').enumerable, 'getReader method is enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').configurable, 'getReader method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').writable, 'getReader method is writable');
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').enumerable, 'pipeThrough method is enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').configurable, 'pipeThrough method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').writable, 'pipeThrough method is writable');
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').enumerable, 'pipeTo method is enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').configurable, 'pipeTo method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').writable, 'pipeTo method is writable');
-
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'tee').enumerable, 'tee method is enumerable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'tee').configurable, 'tee method is configurable');
-    assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'tee').writable, 'tee method is writable');
-
-    assert_equals(typeof rs.cancel, 'function', 'has a cancel method');
-    assert_equals(rs.cancel.length, 1, 'cancel has 1 parameter');
-    assert_equals(typeof rs.constructor, 'function', 'has a constructor method');
-    assert_equals(rs.constructor.length, 0), 'constructor has no parameters';
-    assert_equals(typeof rs.getReader, 'function', 'has a getReader method');
-    assert_equals(rs.getReader.length, 0, 'getReader has no parameters');
-    assert_equals(typeof rs.pipeThrough, 'function', 'has a pipeThrough method');
-    assert_equals(rs.pipeThrough.length, 2, 'pipeThrough has 2 parameters');
-    assert_equals(typeof rs.pipeTo, 'function', 'has a pipeTo method');
-    assert_equals(rs.pipeTo.length, 1, 'pipeTo has 1 parameter');
-    assert_equals(typeof rs.tee, 'function', 'has a tee method');
-    assert_equals(rs.tee.length, 0, 'tee has no parameters');
-
+    assert_equals(rs.cancel.length, 1, 'cancel should have 1 parameter');
+    assert_equals(rs.constructor.length, 0, 'constructor should have no parameters');
+    assert_equals(rs.getReader.length, 0, 'getReader should have no parameters');
+    assert_equals(rs.pipeThrough.length, 2, 'pipeThrough should have 2 parameters');
+    assert_equals(rs.pipeTo.length, 1, 'pipeTo should have 1 parameter');
+    assert_equals(rs.tee.length, 0, 'tee should have no parameters');
 }, 'ReadableStream instances should have the correct list of properties');
 
 test(function() {
     assert_throws(new TypeError(), function() {
         new ReadableStream({ start: 'potato'});
-    }, 'constructor should throw when start is a string');
-}, 'ReadableStream constructor should get a function as start argument');
+    }, 'constructor should throw when start is not a function');
+}, 'ReadableStream constructor should throw for non-function start arguments');
 
-test(function()
-{
-    var isStartCalled = false;
-    var source = {
-        start: function(controller) {
-            assert_equals(this, source);
-
-            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), [ 'close', 'constructor', 'enqueue', 'error' ]);
-
-            var enqueue = controller.enqueue;
-            var close = controller.close;
-            var error = controller.error;
-
-            assert_equals(typeof enqueue, 'function');
-            assert_equals(typeof close, 'function');
-            assert_equals(typeof error, 'function');
-
-            assert_array_equals(Object.getOwnPropertyNames(enqueue).sort(), [ 'arguments', 'caller', 'length', 'name', 'prototype' ]);
-            assert_array_equals(Object.getOwnPropertyNames(close).sort(), [ 'arguments', 'caller', 'length', 'name', 'prototype' ]);
-            assert_array_equals(Object.getOwnPropertyNames(error).sort(), [ 'arguments', 'caller', 'length', 'name', 'prototype' ]);
-
-            assert_equals(enqueue.name, '');
-            assert_equals(close.name, '');
-            assert_equals(error.name, '');
-
-            assert_equals(enqueue.length, 1);
-            assert_equals(close.length, 0);
-            assert_equals(error.length, 1);
-
-            isStartCalled = true;
-        }
-    };
-
-    var rs = new ReadableStream(source);
-    assert_true(isStartCalled);
-}, 'ReadableStream start should be called with the proper parameters');
-
-test(function()
-{
-    var isStartCalled = false;
-    var source = {
-        start: function(controller) {
-            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), [ 'close', 'constructor', 'enqueue', 'error' ]);
-            controller.test = "";
-            assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(controller)).sort(), [ 'close', 'constructor', 'enqueue', 'error' ]);
-            assert_not_equals(Object.getOwnPropertyNames(controller).indexOf('test'));
-
-            isStartCalled = true;
-        }
-    };
-
-    var rs = new ReadableStream(source);
-    assert_true(isStartCalled);
-}, 'ReadableStream start controller parameter should be updatable');
-
-test(function()
-{
-    var isStartCalled = false;
-
-    var SimpleStreamSource = function() { };
-    SimpleStreamSource.prototype.start = function() { isStartCalled = true; };
-    SimpleStreamSource.prototype.constructor = SimpleStreamSource;
-
-    var rs = new ReadableStream(new SimpleStreamSource());
-    assert_true(isStartCalled);
-}, 'ReadableStream should be able to call start method within prototype chain of its source');
-
 test(function() {
     new ReadableStream({ cancel: '2'}); // Constructor should not throw when cancel is not a function.
 }, 'ReadableStream constructor can get initial garbage as cancel argument');
@@ -167,19 +73,19 @@
 
     reader.read().then(test1.step_func(function(r) {
         readCalled = true;
-        assert_object_equals(r, { value: 'a', done: false }, 'read value correctly');
+        assert_object_equals(r, { value: 'a', done: false }, 'value read should be the one enqueued');
     }));
 
     reader.closed.then(test1.step_func(function() {
         assert_true(readCalled);
-        test1.done('stream successfully closed');
+        test1.done('stream should close successfully');
     }));
 });
 
 var test2 = async_test('ReadableStream start should be able to return a promise and reject it', { timeout: 100 });
 test2.step(function()
 {
-    var theError = new Error("rejected!");
+    var theError = new Error('rejected!');
     var rs = new ReadableStream({
         start: function() {
             return new Promise(test2.step_func(function(resolve, reject) {
@@ -191,12 +97,12 @@
     });
 
     rs.getReader().closed.catch(test2.step_func(function(e) {
-        assert_equals(e, theError, 'promise is rejected with the same error');
+        assert_equals(e, theError, 'promise should be rejected with the same error');
         test2.done();
     }));
 });
 
-var test3 = async_test('ReadableStream should be able to queue different objects.');
+var test3 = async_test('ReadableStream should be able to enqueue different objects.');
 test3.step(function() {
     var readCalls = 0;
     var objects = [
@@ -207,8 +113,8 @@
 
     var rs = new ReadableStream({
         start: function(c) {
-            for (var i = 0; i < objects.length; i++) {
-                c.enqueue(objects[i]);
+            for (var o of objects) {
+                c.enqueue(o);
             }
             c.close();
         }
@@ -217,20 +123,20 @@
     var reader = rs.getReader();
 
     reader.read().then(test3.step_func(function(r) {
-        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'read value correctly');
+        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'value read should be the one enqueued');
     }));
 
     reader.read().then(test3.step_func(function(r) {
-        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'read value correctly');
+        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'value read should be the one enqueued');
     }));
 
     reader.read().then(test3.step_func(function(r) {
-        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'read value correctly');
+        assert_object_equals(r, { value: objects[readCalls++], done: false }, 'value read should be the one enqueued');
     }));
 
     reader.closed.then(test3.step_func(function() {
         assert_equals(readCalls, 3);
-        test3.done('stream was closed correctly');
+        test3.done('stream should close correctly correctly');
     }));
 });
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to