diff options
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> |