summaryrefslogtreecommitdiffstats
path: root/browser/components/payments/test/browser/browser_request_shipping.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/payments/test/browser/browser_request_shipping.js')
-rw-r--r--browser/components/payments/test/browser/browser_request_shipping.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/browser/components/payments/test/browser/browser_request_shipping.js b/browser/components/payments/test/browser/browser_request_shipping.js
new file mode 100644
index 0000000000..480cd313ef
--- /dev/null
+++ b/browser/components/payments/test/browser/browser_request_shipping.js
@@ -0,0 +1,121 @@
+"use strict";
+
+add_task(async function setup() {
+ await addSampleAddressesAndBasicCard();
+});
+
+add_task(async function test_request_shipping_present() {
+ await BrowserTestUtils.withNewTab(
+ {
+ gBrowser,
+ url: BLANK_PAGE_URL,
+ },
+ async browser => {
+ for (let [shippingKey, shippingString] of [
+ [null, "Shipping Address"],
+ ["shipping", "Shipping Address"],
+ ["delivery", "Delivery Address"],
+ ["pickup", "Pickup Address"],
+ ]) {
+ let options = {
+ requestShipping: true,
+ };
+ if (shippingKey) {
+ options.shippingType = shippingKey;
+ }
+ let { win, frame } = await setupPaymentDialog(browser, {
+ methodData: [PTU.MethodData.basicCard],
+ details: Object.assign(
+ {},
+ PTU.Details.twoShippingOptions,
+ PTU.Details.total2USD
+ ),
+ options,
+ merchantTaskFn: PTU.ContentTasks.createAndShowRequest,
+ });
+
+ await spawnPaymentDialogTask(
+ frame,
+ async ([aShippingKey, aShippingString]) => {
+ let shippingOptionPicker = content.document.querySelector(
+ "shipping-option-picker"
+ );
+ ok(
+ content.isVisible(shippingOptionPicker),
+ "shipping-option-picker should be visible"
+ );
+ const addressSelector =
+ "address-picker[selected-state-key='selectedShippingAddress']";
+ let shippingAddressPicker = content.document.querySelector(
+ addressSelector
+ );
+ ok(
+ content.isVisible(shippingAddressPicker),
+ "shipping address picker should be visible"
+ );
+ let shippingOption = shippingAddressPicker.querySelector("label");
+ is(
+ shippingOption.textContent,
+ aShippingString,
+ "Label should be match shipping type: " + aShippingKey
+ );
+ },
+ [shippingKey, shippingString]
+ );
+
+ spawnPaymentDialogTask(
+ frame,
+ PTU.DialogContentTasks.manuallyClickCancel
+ );
+
+ await BrowserTestUtils.waitForCondition(
+ () => win.closed,
+ "dialog should be closed"
+ );
+ }
+ }
+ );
+});
+
+add_task(async function test_request_shipping_not_present() {
+ await BrowserTestUtils.withNewTab(
+ {
+ gBrowser,
+ url: BLANK_PAGE_URL,
+ },
+ async browser => {
+ let { win, frame } = await setupPaymentDialog(browser, {
+ methodData: [PTU.MethodData.basicCard],
+ details: Object.assign(
+ {},
+ PTU.Details.twoShippingOptions,
+ PTU.Details.total2USD
+ ),
+ merchantTaskFn: PTU.ContentTasks.createAndShowRequest,
+ });
+
+ await spawnPaymentDialogTask(frame, async () => {
+ let shippingOptionPicker = content.document.querySelector(
+ "shipping-option-picker"
+ );
+ ok(
+ content.isHidden(shippingOptionPicker),
+ "shipping-option-picker should not be visible"
+ );
+ const addressSelector =
+ "address-picker[selected-state-key='selectedShippingAddress']";
+ let shippingAddress = content.document.querySelector(addressSelector);
+ ok(
+ content.isHidden(shippingAddress),
+ "shipping address picker should not be visible"
+ );
+ });
+
+ spawnPaymentDialogTask(frame, PTU.DialogContentTasks.manuallyClickCancel);
+ await BrowserTestUtils.waitForCondition(
+ () => win.closed,
+ "dialog should be closed"
+ );
+ }
+ );
+});