Update web-platform-tests to revision 8a2ceb5f18911302b7a5c1cd2791f4ab50ad4326

This commit is contained in:
Josh Matthews 2017-10-12 09:25:50 -04:00
parent 462c272380
commit 1f531f66ea
5377 changed files with 174916 additions and 84369 deletions

View file

@ -0,0 +1,4 @@
@edenchuang
@mnoorenberghe
@marcoscaceres
@rsolomakhin

View file

@ -0,0 +1,139 @@
<!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>

View file

@ -0,0 +1,89 @@
<!DOCTYPE html>
<!-- Copyright © 2017 World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
<meta charset="utf-8">
<title>Payment Method Basic Card: Tests that basic card is a supported method</title>
<link rel="help" href="https://w3c.github.io/browser-payment-api/#show-method">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
const basicCard = Object.freeze({ supportedMethods: "basic-card", data: {} });
const defaultMethods = Object.freeze([basicCard]);
const defaultDetails = Object.freeze({
total: {
label: "Total",
amount: {
currency: "USD",
value: "1.00",
},
},
});
const notSupportedMethod = Object.freeze({
supportedMethods: "this-is-not-supported",
});
promise_test(async t => {
const request = new PaymentRequest([notSupportedMethod], defaultDetails);
assert_false(
await request.canMakePayment(),
`canMakePaymentPromise should be false`
);
}, `Must return false when the PMI is not supported at by the user agent.`);
function* pmiGenerator(howMany = 256) {
for (i = 0; i < howMany; i++) {
yield {
supportedMethods: `this-is-not-supported-${i}`,
data: { key: "value" },
};
}
}
promise_test(async t => {
//Smoke test
const canMakePaymentPromise = new PaymentRequest(
[notSupportedMethod],
defaultDetails
).canMakePayment();
assert_false(
await canMakePaymentPromise,
"Expected canMakePaymentPromise smoke test to resolve with false"
);
// Actual test - Make a big array with random PMIs,
// put basic-card in the middle of it!
const pmis = []
.concat(Array.from(pmiGenerator(250)))
.concat(basicCard)
.concat(Array.from(pmiGenerator(250)));
const request = new PaymentRequest(pmis, defaultDetails);
assert_true(
await request.canMakePayment(),
`canMakePaymentPromise should be true, because basic-card is present`
);
}, `Must return true when basic-card is amongst unsupported PMIs.`);
promise_test(async t => {
const request = new PaymentRequest(defaultMethods, defaultDetails);
try {
assert_true(
await request.canMakePayment(),
`canMakePaymentPromise must resolve to true`
);
assert_true(
await request.canMakePayment(),
`canMakePaymentPromise must resolve to true`
);
// try to trigger optional behavior
for (let i = 0; i < 1024; i++) {
const temp = new PaymentRequest(defaultMethods, defaultDetails);
await Promise.all([temp.canMakePayment(), request.canMakePayment()]);
}
} catch (err) {
assert_equals(
err.name,
"NotAllowedError",
"if it throws, then it must be a NotAllowedError."
);
}
}, `If basic-card is supported, then return a promise that resolves to true.`);
</script>