tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>