tor-browser

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

test_basiccarderrors.html (2507B)


      1 <!doctype html>
      2 <!--
      3 https://bugzilla.mozilla.org/show_bug.cgi?id=1489968
      4 -->
      5 <meta charset="utf-8">
      6 <title>Test for Bug 1489968</title>
      7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
      8 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9 <script src="./DefaultData.js"></script>
     10 <script>
     11 SimpleTest.waitForExplicitFinish();
     12 
     13 const gUrl = SimpleTest.getTestFileURL("BasicCardErrorsChromeScript.js");
     14 const gScript = SpecialPowers.loadChromeScript(gUrl);
     15 
     16 function sendOnce(message) {
     17  return data => {
     18    return new Promise(resolve => {
     19      const doneMsg = `${message}-complete`;
     20      gScript.addMessageListener(doneMsg, function listener() {
     21        gScript.removeMessageListener(doneMsg, listener);
     22        resolve();
     23      });
     24      gScript.sendAsyncMessage(message, data);
     25    });
     26  };
     27 }
     28 const sendTearDown = sendOnce("teardown");
     29 
     30 async function teardown() {
     31  await sendTearDown();
     32  gScript.destroy();
     33  SimpleTest.finish();
     34 }
     35 
     36 async function testBasicCardErrors() {
     37  const handler = SpecialPowers.getDOMWindowUtils(window).setHandlingUserInput(
     38    true
     39  );
     40  const request = new PaymentRequest(
     41    [{ supportedMethods: "basic-card" }],
     42    defaultDetails
     43  );
     44  const response = await request.show();
     45  // Smoke test the initial state
     46  is(response.details.cardNumber, "4111111111111111", "Expected cardNumber to initially be 4111111111111111");
     47  // We send these up and have the chrome script echo them back to us.
     48  const expected = {
     49    cardholderName: "PASS",
     50    cardNumber: "3566002020360505",
     51    cardSecurityCode: "666",
     52    expiryMonth: "02",
     53    expiryYear: "2020",
     54  };
     55  await response.retry({ paymentMethod: expected });
     56  // the values of the response would have been updated with the expected
     57  for (const [member, expectedValue] of Object.entries(expected)) {
     58    const actual = response.details[member];
     59    is(
     60      actual,
     61      expectedValue,
     62      `Expected member ${member} to be "${expectedValue}, but got "${actual}"`
     63    );
     64  }
     65  await response.complete("success");
     66  handler.destruct();
     67 }
     68 
     69 async function runTests() {
     70  try {
     71    await testBasicCardErrors();
     72  } catch (err) {
     73    ok(false, `Unexpected error: ${err} ${err.stack}.`);
     74  } finally {
     75    await teardown();
     76  }
     77 }
     78 
     79 window.addEventListener("load", () => {
     80  const prefs = [["dom.payments.request.enabled", true]];
     81  SpecialPowers.pushPrefEnv({ set: prefs }, runTests);
     82 });
     83 </script>
     84 
     85 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1489968">Mozilla Bug 1489968</a>