tor-browser

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

browser_payment_in_different_tabs.js (1234B)


      1 "use strict";
      2 
      3 // kTestRoot is from head.js
      4 const kTestPage = kTestRoot + "simple_payment_request.html";
      5 const TABS_TO_OPEN = 5;
      6 add_task(async () => {
      7  Services.prefs.setBoolPref("dom.payments.request.enabled", true);
      8  const tabs = [];
      9  const options = {
     10    gBrowser: Services.wm.getMostRecentWindow("navigator:browser").gBrowser,
     11    url: kTestPage,
     12  };
     13  for (let i = 0; i < TABS_TO_OPEN; i++) {
     14    const tab = await BrowserTestUtils.openNewForegroundTab(options);
     15    tabs.push(tab);
     16  }
     17  const paymentSrv = Cc[
     18    "@mozilla.org/dom/payments/payment-request-service;1"
     19  ].getService(Ci.nsIPaymentRequestService);
     20  const paymentEnum = paymentSrv.enumerate();
     21  ok(
     22    paymentEnum.hasMoreElements(),
     23    "PaymentRequestService should have at least one payment request."
     24  );
     25  const payments = new Set();
     26  for (let payment of paymentEnum) {
     27    ok(payment, "Fail to get existing payment request.");
     28    checkSimplePayment(payment);
     29    payments.add(payment);
     30  }
     31  is(payments.size, TABS_TO_OPEN, `Should be ${TABS_TO_OPEN} unique objects.`);
     32  for (const tab of tabs) {
     33    await TestUtils.waitForTick();
     34    BrowserTestUtils.removeTab(tab);
     35  }
     36  Services.prefs.setBoolPref("dom.payments.request.enabled", false);
     37 });