resolve-to-config-promise.https.html (2693B)
1 <!DOCTYPE html> 2 <title>Test setting auction config's resolveToConfig to a promise</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/common/utils.js"></script> 6 <script src="/common/dispatcher/dispatcher.js"></script> 7 <script src="resources/utils.js"></script> 8 <script src="/common/get-host-info.sub.js"></script> 9 <script src="resources/default-enabled-features-helper.js"></script> 10 11 <body> 12 <script> 13 // To simulate the time it takes for a promise to resolve, we use a simple 14 // timeout that eventually resolves to a boolean. 15 function delayValue(value, timeout) { 16 return new Promise((resolve) => { 17 setTimeout(() => { 18 resolve(value); 19 }, timeout); 20 }); 21 } 22 23 promise_test(async(t) => { 24 const key = token(); 25 26 const urn = await generateURNFromFledge("resources/embeddee.html", [key], 27 [], delayValue(true, 500)); 28 assert_true(urn instanceof FencedFrameConfig); 29 const fencedframe = attachFencedFrame(urn); 30 31 const page1_resp = await nextValueFromServer(key); 32 assert_equals(page1_resp, "PASS", 33 "The page should have loaded."); 34 }, 'resolveToConfig set to a promise that resolves to true'); 35 36 promise_test(async(t) => { 37 const key = token(); 38 39 const urn = await generateURNFromFledge("resources/embeddee.html", [key], 40 [], delayValue(false, 500)); 41 assert_false(urn instanceof FencedFrameConfig); 42 const fencedframe = attachFencedFrame(urn); 43 44 const page1_resp = await nextValueFromServer(key); 45 assert_equals(page1_resp, "PASS", 46 "The page should have loaded."); 47 }, 'resolveToConfig set to a promise that resolves to false'); 48 49 promise_test(async(t) => { 50 // This tests the case where the resolveToConfig promise resolves before 51 // the auction finishes 52 const key = token(); 53 54 const urn = await generateURNFromFledge("resources/embeddee.html", [key], 55 [], delayValue(true, 0)); 56 assert_true(urn instanceof FencedFrameConfig); 57 const fencedframe = attachFencedFrame(urn); 58 59 const page1_resp = await nextValueFromServer(key); 60 assert_equals(page1_resp, "PASS", 61 "The page should have loaded."); 62 }, 'resolveToConfig set to a promise that immediately resolves'); 63 64 promise_test(async(t) => { 65 const key = token(); 66 67 const urn = await generateURNFromFledge("resources/embeddee.html", [key], 68 [], delayValue("non-boolean", 0)); 69 assert_true(urn instanceof FencedFrameConfig); 70 const fencedframe = attachFencedFrame(urn); 71 72 const page1_resp = await nextValueFromServer(key); 73 assert_equals(page1_resp, "PASS", 74 "The page should have loaded."); 75 }, 'resolveToConfig set to a promise that resolves to an non-boolean value'); 76 77 </script> 78 </body> 79 </html>