tor-browser

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

test_update_errors.html (3476B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1435157
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test for Bug 1435157</title>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     10  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     11  <script type="application/javascript" src="DefaultData.js"></script>
     12  <script type="application/javascript">
     13 
     14  "use strict";
     15  SimpleTest.waitForExplicitFinish();
     16 
     17  var gUrl = SimpleTest.getTestFileURL('UpdateErrorsChromeScript.js');
     18  var gScript = SpecialPowers.loadChromeScript(gUrl);
     19 
     20  function testFailHandler(message) {
     21    ok(false, message);
     22  }
     23  function testPassHandler(message) {
     24    ok(true, message);
     25  }
     26  gScript.addMessageListener("test-fail", testFailHandler);
     27  gScript.addMessageListener("test-pass", testPassHandler);
     28 
     29  const addressErrors = {
     30    addressLine: "addressLine error",
     31    city: "city error",
     32    country: "country error",
     33    dependentLocality: "dependentLocality error",
     34    organization: "organization error",
     35    phone: "phone error",
     36    postalCode: "postalCode error",
     37    recipient: "recipient error",
     38    region: "region error",
     39    regionCode: "regionCode error",
     40    sortingCode: "sortingCode error",
     41  };
     42 
     43  const payErrors = {
     44    email: "email error",
     45    name: "name error",
     46    phone: "phone error",
     47  };
     48 
     49  let updateDetails = {
     50    total:{
     51      label: "Total",
     52      amount: {
     53        currency: "USD",
     54        value: "1.00",
     55      },
     56    },
     57    erros: "shipping address error",
     58    shippingAddressErrors: addressErrors,
     59    payerErrors: payErrors,
     60  }
     61 
     62  // testing functions
     63  function testUpdateErrors() {
     64    return new Promise((resolve, reject) => {
     65      const payRequest = new PaymentRequest(defaultMethods, defaultDetails, defaultOptions);
     66      payRequest.addEventListener("shippingaddresschange", event => {
     67        event.updateWith(updateDetails);
     68      });
     69      payRequest.addEventListener("shippingoptionchange", event => {
     70        event.updateWith(updatedDetails);
     71      });
     72      const handler = SpecialPowers.getDOMWindowUtils(window).setHandlingUserInput(true);
     73      payRequest.show().then(response => {
     74        ok(false, "Expected AbortError, but got pass");
     75        resolve();
     76      }, error => {
     77        is(error.name, "AbortError", "Expect AbortError, but got " + error.name);
     78 resolve();
     79      }).catch( e => {
     80        ok(false, "Unexpected error: " + e.name);
     81        resolve();
     82      }).finally(handler.destruct);
     83    });
     84  }
     85 
     86  // teardown function
     87  function teardown() {
     88    gScript.addMessageListener("teardown-complete", function teardownCompleteHandler() {
     89      gScript.removeMessageListener("teardown-complete", teardownCompleteHandler);
     90      gScript.removeMessageListener("test-fail", testFailHandler);
     91      gScript.removeMessageListener("test-pass", testPassHandler);
     92      gScript.destroy();
     93      SimpleTest.finish();
     94    });
     95    gScript.sendAsyncMessage("teardown");
     96  }
     97 
     98  // test main body
     99  function runTests() {
    100    testUpdateErrors()
    101    .then(teardown)
    102    .catch( e => {
    103      ok(false, "Unexpected error: " + e.name);
    104      SimpleTest.finish();
    105    });
    106  }
    107 
    108  window.addEventListener('load', function() {
    109    SpecialPowers.pushPrefEnv({
    110      'set': [
    111        ['dom.payments.request.enabled', true],
    112      ]
    113    }, runTests);
    114  });
    115 
    116  </script>
    117 </head>
    118 <body>
    119 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1435157">Mozilla Bug 1435157</a>
    120 </body>
    121 </html>