mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-09 21:00:42 +02:00
Automatic update from web-platform-tests
Replace some "promise_rejects(t, 'SomeDOMError', stuff)" calls with promise_rejects_dom.
This diff was generated by running:
find . -type f -print0 | xargs -0 perl -pi -e "BEGIN { \$/ = undef; } s/promise_rejects\(([ \n]*[a-zA-Z_]+[ \n]*,[ \n]*)([\"'][A-Za-z_]*[\"']) *(, *.)/promise_rejects_dom(\1\2\3/gs"
in bash (doesn't work in tcsh, due to the $ inside "").
--
wpt-commits: b7f2dd315a8d84ce786f6336510ee51423011009
wpt-pr: 21600
135 lines
4.4 KiB
JavaScript
135 lines
4.4 KiB
JavaScript
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_string.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue('foo_string');
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'foo_string');
|
|
assert_equals(await getFileSize(handle), 10);
|
|
}, 'can be piped to with a string');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_arraybuf.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
const buf = new ArrayBuffer(3);
|
|
const intView = new Uint8Array(buf);
|
|
intView[0] = 0x66;
|
|
intView[1] = 0x6f;
|
|
intView[2] = 0x6f;
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue(buf);
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'foo');
|
|
assert_equals(await getFileSize(handle), 3);
|
|
}, 'can be piped to with an ArrayBuffer');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_blob.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue(new Blob(['foo']));
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'foo');
|
|
assert_equals(await getFileSize(handle), 3);
|
|
}, 'can be piped to with a Blob');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_write_param.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue({type: 'write', data: 'foobar'});
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'foobar');
|
|
assert_equals(await getFileSize(handle), 6);
|
|
}, 'can be piped to with a param object with write command');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_write_param.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue({type: 'write', data: 'foobar'});
|
|
controller.enqueue({type: 'truncate', size: 10});
|
|
controller.enqueue({type: 'write', position: 0, data: 'baz'});
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'bazbar\0\0\0\0');
|
|
assert_equals(await getFileSize(handle), 10);
|
|
}, 'can be piped to with a param object with multiple commands');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'foo_write_queued.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const rs = recordingReadableStream({
|
|
start(controller) {
|
|
controller.enqueue('foo');
|
|
controller.enqueue('bar');
|
|
controller.enqueue('baz');
|
|
controller.close();
|
|
}
|
|
});
|
|
|
|
await rs.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'foobarbaz');
|
|
assert_equals(await getFileSize(handle), 9);
|
|
}, 'multiple operations can be queued');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'fetched.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const response = await fetch('data:text/plain,fetched from far');
|
|
const body = await response.body;
|
|
await body.pipeTo(wfs, { preventCancel: true });
|
|
assert_equals(await getFileContents(handle), 'fetched from far');
|
|
assert_equals(await getFileSize(handle), 16);
|
|
}, 'plays well with fetch');
|
|
|
|
directory_test(async (t, root) => {
|
|
const handle = await createEmptyFile(t, 'aborted should_be_empty.txt', root);
|
|
const wfs = await handle.createWritable();
|
|
|
|
const response = await fetch('data:text/plain,fetched from far');
|
|
const body = await response.body;
|
|
|
|
const abortController = new AbortController();
|
|
const signal = abortController.signal;
|
|
|
|
const promise = body.pipeTo(wfs, { signal });
|
|
await abortController.abort();
|
|
|
|
await promise_rejects_dom(t, 'AbortError', promise, 'stream is aborted');
|
|
await promise_rejects_js(t, TypeError, wfs.close(), 'stream cannot be closed to flush writes');
|
|
|
|
assert_equals(await getFileContents(handle), '');
|
|
assert_equals(await getFileSize(handle), 0);
|
|
}, 'abort() aborts write');
|