summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html')
-rw-r--r--testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html133
1 files changed, 133 insertions, 0 deletions
diff --git a/testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html b/testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html
new file mode 100644
index 0000000000..ba881ee236
--- /dev/null
+++ b/testing/web-platform/tests/payment-method-basic-card/empty-data-manual.https.html
@@ -0,0 +1,133 @@
+<!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>