[Streams API] Error storage should be moved from source to stream/reader
[WebKit-https.git] / LayoutTests / streams / readablestream-constructor.html
1 <!DOCTYPE html>
2 <script src='../resources/testharness.js'></script>
3 <script src='../resources/testharnessreport.js'></script>
4 <script>
5     
6 test(function() {
7     assert_throws(new TypeError(), function() {
8         new ReadableStream('potato');
9     });
10 }, 'ReadableStream constructor should get an object as argument');
11
12 test(function() {
13     new ReadableStream();
14 }, 'ReadableStream can be constructed with no arguments');
15
16 test(function() {
17     rs = new ReadableStream();
18     assert_array_equals(Object.getOwnPropertyNames(rs), []);
19     assert_array_equals(Object.getOwnPropertyNames(Object.getPrototypeOf(rs)), ['constructor','cancel', 'getReader', 'pipeTo', 'pipeThrough']);
20
21     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').enumerable);
22     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').configurable);
23     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'cancel').writable);
24
25     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').enumerable);
26     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').configurable);
27     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'getReader').writable);
28
29     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').enumerable);
30     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').configurable);
31     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeTo').writable);
32
33     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').enumerable);
34     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').configurable);
35     assert_true(Object.getOwnPropertyDescriptor(Object.getPrototypeOf(rs), 'pipeThrough').writable);
36
37     assert_equals(typeof rs.cancel, 'function', 'has an cancel method');
38     assert_equals(rs.cancel.length, 1);
39     assert_equals(typeof rs.getReader, 'function', 'has a getReader method');
40     assert_equals(rs.getReader.length, 0);
41     assert_equals(typeof rs.pipeTo, 'function', 'has a pipeTo method');
42     assert_equals(rs.pipeTo.length, 2);
43     assert_equals(typeof rs.pipeThrough, 'function', 'has a pipeThrough method');
44     assert_equals(rs.pipeThrough.length, 2);
45
46 }, 'ReadableStream instances should have the correct list of properties');
47
48 test(function() {
49     new ReadableStream({ });
50 }, 'ReadableStream can be constructed with an empty object as argument');
51
52 </script>