ladybird/Tests/LibWeb/Text/input/HTML/StructuredClone-serializable-objects.html
2024-03-20 09:16:01 +01:00

66 lines
3.5 KiB
HTML

<script src="../include.js"></script>
<script>
asyncTest(async done => {
let blob = structuredClone(new Blob(["Hello, Blob!"], {type: "text/plain"}));
println(`instanceOf Blob: ${blob instanceof Blob}`);
println(`Blob.type: ${blob.type}`);
let text = await blob.text();
println(`Blob.text(): ${text}`);
let file = structuredClone(new File(["Hello, File!"], "hello.txt", {type: "text/plain"}));
println(`instanceOf File: ${file instanceof File}`);
println(`File.name: ${file.name}`);
println(`File.type: ${file.type}`);
text = await file.text();
println(`File.text(): ${text}`);
println(`File.size: ${file.size}`);
let domMatrixReadOnly = structuredClone(new DOMMatrixReadOnly([1.7976931348623157e+308, 2.2250738585072014e-308, 2.2204460492503131e-016, 40, 50, 60]));
println(`instanceOf DOMMatrixReadOnly: ${domMatrixReadOnly instanceof DOMMatrixReadOnly}`);
println(`DOMMatrixReadOnly: ${JSON.stringify(domMatrixReadOnly)}`);
domMatrixReadOnly = structuredClone(new DOMMatrixReadOnly([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]));
println(`DOMMatrixReadOnly: ${JSON.stringify(domMatrixReadOnly)}`);
let domMatrix = structuredClone(new DOMMatrix([10, 20, 30, 40, 50, 60]));
println(`instanceOf DOMMatrix: ${domMatrix instanceof DOMMatrix}`);
println(`DOMMatrix: ${JSON.stringify(domMatrix)}`);
domMatrix = structuredClone(new DOMMatrix([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160]));
println(`DOMMatrix: ${JSON.stringify(domMatrix)}`);
let domPointReadOnly = structuredClone(new DOMPointReadOnly(10, 20, 30, 40));
println(`instanceOf DOMPointReadOnly: ${domPointReadOnly instanceof DOMPointReadOnly}`);
println(`DOMPointReadOnly: ${JSON.stringify(domPointReadOnly)}`);
let domPoint = structuredClone(new DOMPoint(10, 20, 30, 40));
println(`instanceOf DOMPoint: ${domPoint instanceof DOMPoint}`);
println(`DOMPoint: ${JSON.stringify(domPoint)}`);
let domRectReadOnly = structuredClone(new DOMRectReadOnly(10, 20, 30, 40));
println(`instanceOf DOMRectReadOnly: ${domRectReadOnly instanceof DOMRectReadOnly}`);
println(`DOMRectReadOnly: ${JSON.stringify(domRectReadOnly)}`);
let domRect = structuredClone(new DOMRect(10, 20, 30, 40));
println(`instanceOf DOMRect: ${domRect instanceof DOMRect}`);
println(`DOMRect: ${JSON.stringify(domRect)}`);
let domQuad = structuredClone(new DOMQuad(new DOMPoint(10, 20, 30, 40), new DOMPoint(50, 60, 70, 80), new DOMPoint(90, 100, 110, 120), new DOMPoint(130, 140, 150, 160)));
println(`instanceOf DOMQuad: ${domQuad instanceof DOMQuad}`);
println(`DOMQuad: ${JSON.stringify(domQuad)}`);
let cryptoKey = await window.crypto.subtle.importKey(
"raw",
new TextEncoder().encode("password"),
{ name: "PBKDF2" },
false,
["deriveBits", "deriveKey"]
);
let clonedCryptoKey = structuredClone(cryptoKey);
println(`instanceOf CryptoKey: ${clonedCryptoKey instanceof CryptoKey}`);
println(`CryptoKey.type: ${JSON.stringify(clonedCryptoKey.type)}`);
println(`CryptoKey.extractable: ${JSON.stringify(clonedCryptoKey.extractable)}`);
println(`CryptoKey.algorithm: ${JSON.stringify(clonedCryptoKey.algorithm)}`);
println(`CryptoKey.usages: ${JSON.stringify(clonedCryptoKey.usages)}`);
done();
});
</script>