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 });