| Index: third_party/WebKit/LayoutTests/http/tests/streams/readable-streams/templated.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/streams/readable-streams/templated.js b/third_party/WebKit/LayoutTests/http/tests/streams/readable-streams/templated.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..60ea16f7d3572f6316cd1546ef397b0aaa128491
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/streams/readable-streams/templated.js
|
| @@ -0,0 +1,156 @@
|
| +'use strict';
|
| +
|
| +if (self.importScripts) {
|
| + self.importScripts('/resources/testharness.js');
|
| + self.importScripts('../resources/rs-test-templates.js');
|
| +}
|
| +
|
| +// Run the readable stream test templates against readable streams created directly using the constructor
|
| +
|
| +var theError = new Error('boo!');
|
| +var chunks = ['a', 'b'];
|
| +
|
| +templatedRSEmpty('ReadableStream (empty)', function() {
|
| + return new ReadableStream();
|
| +});
|
| +
|
| +templatedRSEmptyReader('ReadableStream (empty) reader', function() {
|
| + return streamAndDefaultReader(new ReadableStream());
|
| +});
|
| +
|
| +templatedRSClosed('ReadableStream (closed via call in start)', function() {
|
| + return new ReadableStream({
|
| + start: function(c) {
|
| + c.close();
|
| + }
|
| + });
|
| +});
|
| +
|
| +templatedRSClosedReader('ReadableStream reader (closed before getting reader)', function() {
|
| + var controller;
|
| + var stream = new ReadableStream({
|
| + start: function(c) {
|
| + controller = c;
|
| + }
|
| + });
|
| + controller.close();
|
| + var result = streamAndDefaultReader(stream);
|
| + return result;
|
| +});
|
| +
|
| +templatedRSClosedReader('ReadableStream reader (closed after getting reader)', function() {
|
| + var controller;
|
| + var stream = new ReadableStream({
|
| + start: function(c) {
|
| + controller = c;
|
| + }
|
| + });
|
| + var result = streamAndDefaultReader(stream);
|
| + controller.close();
|
| + return result;
|
| +});
|
| +
|
| +templatedRSClosed('ReadableStream (closed via cancel)', function() {
|
| + var stream = new ReadableStream();
|
| + stream.cancel();
|
| + return stream;
|
| +});
|
| +
|
| +templatedRSClosedReader('ReadableStream reader (closed via cancel after getting reader)', function() {
|
| + var stream = new ReadableStream();
|
| + var result = streamAndDefaultReader(stream);
|
| + result.reader.cancel();
|
| + return result;
|
| +});
|
| +
|
| +var theError = new Error('boo!');
|
| +
|
| +templatedRSErrored('ReadableStream (errored via call in start)', function() {
|
| + return new ReadableStream({
|
| + start: function(c) {
|
| + c.error(theError);
|
| + }
|
| + })},
|
| + theError
|
| +);
|
| +
|
| +templatedRSErroredSyncOnly('ReadableStream (errored via call in start)', function() {
|
| + return new ReadableStream({
|
| + start: function(c) {
|
| + c.error(theError);
|
| + }
|
| + })},
|
| + theError
|
| +);
|
| +
|
| +templatedRSErrored('ReadableStream (errored via returning a rejected promise in start)', function() {
|
| + return new ReadableStream({
|
| + start: function() {
|
| + return Promise.reject(theError);
|
| + }
|
| + })},
|
| + theError
|
| +);
|
| +
|
| +templatedRSErroredReader('ReadableStream (errored via returning a rejected promise in start) reader', function() {
|
| + return streamAndDefaultReader(new ReadableStream({
|
| + start: function() {
|
| + return Promise.reject(theError);
|
| + }
|
| + }))},
|
| + theError
|
| +);
|
| +
|
| +templatedRSErroredReader('ReadableStream reader (errored before getting reader)', function() {
|
| + var controller;
|
| + var stream = new ReadableStream({
|
| + start: function(c) {
|
| + controller = c;
|
| + }
|
| + });
|
| + controller.error(theError);
|
| + return streamAndDefaultReader(stream);
|
| +}, theError);
|
| +
|
| +templatedRSErroredReader('ReadableStream reader (errored after getting reader)', function() {
|
| + var controller;
|
| + var result = streamAndDefaultReader(new ReadableStream({
|
| + start: function(c) {
|
| + controller = c;
|
| + }
|
| + }));
|
| + controller.error(theError);
|
| + return result;
|
| +}, theError);
|
| +
|
| +var chunks = ['a', 'b'];
|
| +
|
| +templatedRSTwoChunksOpenReader('ReadableStream (two chunks enqueued, still open) reader', function() {
|
| + return streamAndDefaultReader(new ReadableStream({
|
| + start: function(c) {
|
| + c.enqueue(chunks[0]);
|
| + c.enqueue(chunks[1]);
|
| + }
|
| + }))},
|
| + chunks
|
| +);
|
| +
|
| +templatedRSTwoChunksClosedReader('ReadableStream (two chunks enqueued, then closed) reader', function() {
|
| + var doClose;
|
| + var stream = new ReadableStream({
|
| + start: function(c) {
|
| + c.enqueue(chunks[0]);
|
| + c.enqueue(chunks[1]);
|
| + doClose = c.close.bind(c);
|
| + }
|
| + });
|
| + var result = streamAndDefaultReader(stream);
|
| + doClose();
|
| + return result;
|
| +}, chunks);
|
| +
|
| +function streamAndDefaultReader(stream) {
|
| + return { stream: stream, reader: stream.getReader() };
|
| +}
|
| +
|
| +done();
|
|
|