8740a422116ebaf06ca0f17e8f983fdff0fd84e9
[WebKit-https.git] / LayoutTests / streams / readable-stream-controller-error.html
1 <!DOCTYPE html>
2 <script src='../resources/testharness.js'></script>
3 <script src='../resources/testharnessreport.js'></script>
4 <script>
5 var test1 = async_test('Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise');
6 test1.step(function() {
7     var controller;
8     var rs = new ReadableStream({
9         start: function(c) {
10             controller = c;
11         }
12     });
13
14    rs.getReader().closed.then(test1.step_func(function() {
15         assert_unreached("closed promise should not be resolved when stream is errored");
16     }), test1.step_func(function(err) {
17         assert_equals(rsError, err);
18         test1.done();
19     }));
20
21     var rsError = "my error";
22     controller.error(rsError);
23 });
24
25 var test2 = async_test('Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise');
26 test2.step(function() {
27     var controller;
28     var rs = new ReadableStream({
29         start: function(c) {
30             controller = c;
31         }
32     });
33
34     var rsError = "my error";
35     controller.error(rsError);
36
37     // Let's call getReader twice to ensure that stream is not locked to a reader.
38     rs.getReader();
39     rs.getReader().closed.then(test2.step_func(function() {
40         assert_unreached("closed promise should not be resolved when stream is errored");
41     }), test2.step_func(function(err) {
42         assert_equals(rsError, err);
43         test2.done();
44     }));
45 });
46 </script>