diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
commit | 0b6210cd37b68b94252cb798598b12974a20e1c1 (patch) | |
tree | e371686554a877842d95aa94f100bee552ff2a8e /test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html | |
parent | Initial commit. (diff) | |
download | node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip |
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html')
-rw-r--r-- | test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html b/test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html new file mode 100644 index 0000000..37efd5e --- /dev/null +++ b/test/wpt/tests/FileAPI/Blob-methods-from-detached-frame.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Blob methods from detached frame work as expected</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<iframe id="emptyDocumentIframe" src="../support/empty-document.html"></iframe> + +<script> +const BlobPrototypeFromDetachedFramePromise = new Promise(resolve => { + emptyDocumentIframe.onload = () => { + const BlobPrototype = emptyDocumentIframe.contentWindow.Blob.prototype; + emptyDocumentIframe.remove(); + resolve(BlobPrototype); + }; +}); + +const charCodeArrayToString = charCodeArray => Array.from(charCodeArray, c => String.fromCharCode(c)).join(""); +const charCodeBufferToString = charCodeBuffer => charCodeArrayToString(new Uint8Array(charCodeBuffer)); + +promise_test(async () => { + const { slice } = await BlobPrototypeFromDetachedFramePromise; + const blob = new Blob(["foobar"]); + + const slicedBlob = slice.call(blob, 1, 3); + assert_true(slicedBlob instanceof Blob); + + assert_equals(await slicedBlob.text(), "oo"); + assert_equals(charCodeBufferToString(await slicedBlob.arrayBuffer()), "oo"); + + const reader = slicedBlob.stream().getReader(); + const { value } = await reader.read(); + assert_equals(charCodeArrayToString(value), "oo"); +}, "slice()"); + +promise_test(async () => { + const { text } = await BlobPrototypeFromDetachedFramePromise; + const blob = new Blob(["foo"]); + + assert_equals(await text.call(blob), "foo"); +}, "text()"); + +promise_test(async () => { + const { arrayBuffer } = await BlobPrototypeFromDetachedFramePromise; + const blob = new Blob(["bar"]); + + const charCodeBuffer = await arrayBuffer.call(blob); + assert_equals(charCodeBufferToString(charCodeBuffer), "bar"); +}, "arrayBuffer()"); + +promise_test(async () => { + const { stream } = await BlobPrototypeFromDetachedFramePromise; + const blob = new Blob(["baz"]); + + const reader = stream.call(blob).getReader(); + const { value } = await reader.read(); + assert_equals(charCodeArrayToString(value), "baz"); +}, "stream()"); +</script> |