mirror of
https://github.com/servo/servo.git
synced 2025-06-23 08:34:42 +01:00
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
if (self.importScripts) {
|
|
self.importScripts('/resources/testharness.js');
|
|
}
|
|
|
|
const error1 = new Error('error1');
|
|
error1.name = 'error1';
|
|
|
|
const error2 = new Error('error2');
|
|
error2.name = 'error2';
|
|
|
|
promise_test(t => {
|
|
const ws = new WritableStream({
|
|
start(controller) {
|
|
controller.error(error1);
|
|
}
|
|
});
|
|
return promise_rejects(t, error1, ws.getWriter().closed, 'stream should be errored');
|
|
}, 'controller.error() should error the stream');
|
|
|
|
test(() => {
|
|
let controller;
|
|
const ws = new WritableStream({
|
|
start(c) {
|
|
controller = c;
|
|
}
|
|
});
|
|
ws.abort();
|
|
controller.error(error1);
|
|
}, 'controller.error() on erroring stream should not throw');
|
|
|
|
promise_test(t => {
|
|
let controller;
|
|
const ws = new WritableStream({
|
|
start(c) {
|
|
controller = c;
|
|
}
|
|
});
|
|
controller.error(error1);
|
|
controller.error(error2);
|
|
return promise_rejects(t, error1, ws.getWriter().closed, 'first controller.error() should win');
|
|
}, 'surplus calls to controller.error() should be a no-op');
|
|
|
|
promise_test(() => {
|
|
let controller;
|
|
const ws = new WritableStream({
|
|
start(c) {
|
|
controller = c;
|
|
}
|
|
});
|
|
return ws.abort().then(() => {
|
|
controller.error(error1);
|
|
});
|
|
}, 'controller.error() on errored stream should not throw');
|
|
|
|
promise_test(() => {
|
|
let controller;
|
|
const ws = new WritableStream({
|
|
start(c) {
|
|
controller = c;
|
|
}
|
|
});
|
|
return ws.getWriter().close().then(() => {
|
|
controller.error(error1);
|
|
});
|
|
}, 'controller.error() on closed stream should not throw');
|
|
|
|
done();
|