https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 6fe92079020b85d872209ab1657595d2e34f9a35 authored by Charles Vazac on 04 April 2018, 14:19:53 UTC
clean up same- and cross-origin urls
Tip revision: 6fe9207
empty-data-manual.https.html
<!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: '',
  languageCode: 'fa',
  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 method = Object.assign({ data }, methodCard);
  const response = await new PaymentRequest([method], defaultDetails).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 credit 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 of any credit card type.
    </button>
  </li>
  <li>
    <button onclick="runPromiseTest(this, { supportedNetworks: [], supportedTypes: [] });">
      Returns any card type on any network, because zero length supportedNetworks and supportedTypes.
    </button>
  </li>
  <li>
    <button onclick="runPromiseTest(this, { supportedNetworks: [] });">
      Returns any card type on any network, because supportedNetworks is missing and supportedTypes is empty.
    </button>
  </li>
  <li>
    <button onclick="runPromiseTest(this, { supportedTypes: [] });">
      Returns any card type on any network missing supportedTypes, and empty supportedNetwork.
    </button>
  </li>
</ol>

<small>
  If you find a buggy test, please <a href="https://github.com/w3c/web-platform-tests/issues">file a bug</a>
  and tag one of the <a href="https://github.com/w3c/web-platform-tests/blob/master/payment-request/OWNERS">owners</a>.
</small>
back to top