| <!doctype html> |
| <meta charset="utf8"> |
| <title>Payment Method Basic Card - test passing empty BasicCardRequest members</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| setup({ explicit_done: true, explicit_timeout: true }); |
| |
| const amount = { value: "1.0", currency: "USD" }; |
| const details = { |
| total: { |
| label: "Total", |
| amount, |
| }, |
| }; |
| const method = { |
| supportedMethods: "basic-card", |
| }; |
| |
| const defaultBillingAddress = { |
| country: 'AF', |
| addressLine: '1 wpt street', |
| region: '', |
| city: 'Kabul', |
| dependentLocality: '', |
| postalCode: '1001', |
| sortingCode: '', |
| organization: 'w3c', |
| recipient: 'web platform test', |
| phone: '+93555555555', |
| }; |
| |
| const visaCredit = { |
| cardNumber: "4111111111111111", |
| cardSecurityCode: "123", |
| cardholderName: "web platform test", |
| expiryMonth: "01", |
| expiryYear: "2026", |
| }; |
| |
| async function getCardResponse(data) { |
| const payMethod = Object.assign({ data }, method); |
| const response = await new PaymentRequest([payMethod], details).show(); |
| await response.complete("success"); |
| return response.details; |
| } |
| |
| /** |
| * All tests expect the same return data, so we can just check the |
| * same result over and over again. |
| */ |
| function runPromiseTest(button, data, expectedCard = visaCredit, expectedAddress = defaultBillingAddress ) { |
| button.disabled = true; |
| promise_test(async () => { |
| const card = await getCardResponse(data); |
| for (const [member, expectedValue] of Object.entries(expectedCard)) { |
| const msg = `Expected "card.${member}" to equal "${expectedValue}".`; |
| assert_equals(card[member], expectedValue, msg); |
| } |
| const { billingAddress } = card; |
| for (const [member, expectedValue] of Object.entries(expectedAddress)) { |
| const msg = `billingAddress.${member} to equal ${expectedValue}.`; |
| assert_equals(billingAddress[member], expectedValue); |
| } |
| }, button.textContent.trim()); |
| } |
| </script> |
| <h2> |
| Payment Method Basic Card - test passing empty BasicCardRequest values |
| </h2> |
| <p> |
| This test checks that the Basic Card payment handler can accept any card. |
| </p> |
| <p> |
| Click on each button in sequence from top to bottom without refreshing the page. |
| Each button will bring up the Payment Request UI window. |
| The test expects the following credit card. |
| </p> |
| <ol> |
| <li>Add card: |
| <dl> |
| <dt>Cardholder name:</dt> |
| <dd>web platform test</dd> |
| <dt>Card number:</dt> |
| <dd>4111111111111111</dd> |
| <dt>Security code (CVV):</dt> |
| <dd>123</dd> |
| <dt>Expiry month:</dt> |
| <dd>01</dd> |
| <dt>Expiry year:</dt> |
| <dd>2026</dd> |
| </dl> |
| </li> |
| <li>Add billing address: |
| <dl> |
| <dt>Recipient:</dt> |
| <dd>web platform test</dd> |
| <dt>Address:</dt> |
| <dd>1 web st</dd> |
| <dt>Post code:</dt> |
| <dd>1234</dd> |
| <dt>Country:</dt> |
| <dd>Afghanistan</dd> |
| <dt>City:</dt> |
| <dd>w3c</dd> |
| <dt>Phone</dt> |
| <dd>+12345678910</dd> |
| </dl> |
| </li> |
| </ol> |
| <hr> |
| <ol> |
| <li> |
| <button onclick="runPromiseTest(this, {});"> |
| When passed BasicCardRequest without members, allow the user to input a card on any network. |
| </button> |
| </li> |
| <li> |
| <button onclick="runPromiseTest(this, { supportedNetworks: [] });"> |
| Returns a card on any network, because zero length supportedNetworks. |
| </button> |
| </li> |
| <li> |
| <button onclick="done();"> |
| Done! |
| </button> |
| </li> |
| </ol> |
| |
| <small> |
| If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a> |
| and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/META.yml">suggested reviewers</a>. |
| </small> |