diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html b/testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html new file mode 100644 index 0000000000..97df37ef2b --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/resolve-to-config-promise.https.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<title>Test setting auction config's resolveToConfig to a promise</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/default-enabled-features-helper.js"></script> + +<body> +<script> +// To simulate the time it takes for a promise to resolve, we use a simple +// timeout that eventually resolves to a boolean. +function delayValue(value, timeout) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(value); + }, timeout); + }); +} + +promise_test(async(t) => { + const key = token(); + + const urn = await generateURNFromFledge("resources/embeddee.html", [key], + [], delayValue(true, 500)); + assert_true(urn instanceof FencedFrameConfig); + const fencedframe = attachFencedFrame(urn); + + const page1_resp = await nextValueFromServer(key); + assert_equals(page1_resp, "PASS", + "The page should have loaded."); +}, 'resolveToConfig set to a promise that resolves to true'); + +promise_test(async(t) => { + const key = token(); + + const urn = await generateURNFromFledge("resources/embeddee.html", [key], + [], delayValue(false, 500)); + assert_false(urn instanceof FencedFrameConfig); + const fencedframe = attachFencedFrame(urn); + + const page1_resp = await nextValueFromServer(key); + assert_equals(page1_resp, "PASS", + "The page should have loaded."); +}, 'resolveToConfig set to a promise that resolves to false'); + +promise_test(async(t) => { + // This tests the case where the resolveToConfig promise resolves before + // the auction finishes + const key = token(); + + const urn = await generateURNFromFledge("resources/embeddee.html", [key], + [], delayValue(true, 0)); + assert_true(urn instanceof FencedFrameConfig); + const fencedframe = attachFencedFrame(urn); + + const page1_resp = await nextValueFromServer(key); + assert_equals(page1_resp, "PASS", + "The page should have loaded."); +}, 'resolveToConfig set to a promise that immediately resolves'); + +promise_test(async(t) => { + const key = token(); + + // This should still resolve, but resolve to a URN. + const urn = await generateURNFromFledge("resources/embeddee.html", [key], + [], delayValue("invalid", 0)); + assert_false(urn instanceof FencedFrameConfig); + const fencedframe = attachFencedFrame(urn); + + const page1_resp = await nextValueFromServer(key); + assert_equals(page1_resp, "PASS", + "The page should have loaded."); +}, 'resolveToConfig set to a promise that resolves to an invalid value'); + +</script> +</body> +</html> |