mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
101 lines
3.4 KiB
HTML
101 lines
3.4 KiB
HTML
<!doctype html>
|
|
<meta charset="utf8">
|
|
<link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentresponse-shippingaddress">
|
|
<title>
|
|
PaymentResponse.prototype.shippingAddress
|
|
</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="helpers.js"></script>
|
|
<script>
|
|
async function checkNullShippingAddress(button, options) {
|
|
button.disabled = true;
|
|
const { request, response } = await getPaymentRequestResponse(options);
|
|
await response.complete();
|
|
test(() => {
|
|
assert_idl_attribute(response, "shippingAddress");
|
|
assert_equals(
|
|
response.shippingAddress,
|
|
null,
|
|
"Expected response.shippingAddress to be null"
|
|
);
|
|
assert_equals(
|
|
request.shippingAddress,
|
|
null,
|
|
"Expected request.shippingAddress to be null"
|
|
);
|
|
}, button.textContent.trim());
|
|
}
|
|
|
|
async function runManualTest(button, options = {}, expected = {}, id) {
|
|
button.disabled = true;
|
|
const { request, response } = await getPaymentRequestResponse(options, id);
|
|
await response.complete();
|
|
test(() => {
|
|
assert_equals(response.requestId, request.id, `Expected ids to match`);
|
|
assert_idl_attribute(response, "shippingAddress");
|
|
const { shippingAddress: addr } = request;
|
|
assert_true(
|
|
addr instanceof PaymentAddress,
|
|
"Expect instance of PaymentAddress"
|
|
);
|
|
try {
|
|
addr.toJSON();
|
|
} catch (err) {
|
|
assert_unreached(
|
|
`Unexpected exception calling PaymentAddress.toJSON(): ${err}`
|
|
);
|
|
}
|
|
if (expected.shippingAddress === null) {
|
|
return;
|
|
}
|
|
assert_equals(addr.country, "AF", "Expected AF for country");
|
|
assert_true(
|
|
addr.addressLine instanceof Array,
|
|
"Expected addressLine to be an array"
|
|
);
|
|
assert_equals(
|
|
addr.addressLine.toString(),
|
|
"1 wpt street",
|
|
"Expected '1 wpt street' for addressLine"
|
|
);
|
|
assert_equals(addr.city, "Kabul", "Expected city to be Kabul");
|
|
assert_equals(addr.postalCode, "1001", "Expect postalCode to be 1001");
|
|
assert_equals(addr.recipient, "web platform test");
|
|
}, button.textContent.trim());
|
|
}
|
|
</script>
|
|
<h2>shippingAddress attribute</h2>
|
|
<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.
|
|
</p>
|
|
<p>
|
|
When prompted, please enter "web platform test" as recipient, at address "1 wpt street" in "Kabul, Afghanistan", zip/postal code 1001.
|
|
</p>
|
|
<ol>
|
|
<li>
|
|
<button onclick="checkNullShippingAddress(this, undefined)">
|
|
If options is undefined, then shippingAddress must be null.
|
|
</button>
|
|
</li>
|
|
<li>
|
|
<button onclick="checkNullShippingAddress(this, {})">
|
|
If the requestShipping member is missing, then shippingAddress must be null.
|
|
</button>
|
|
</li>
|
|
<li>
|
|
<button onclick="checkNullShippingAddress(this, {requestShipping: false})">
|
|
If the requestShipping member is false, then shippingAddress must be null.
|
|
</button>
|
|
</li>
|
|
<li>
|
|
<button onclick="runManualTest(this, {requestShipping: true}).then(done)">
|
|
If the requestShipping member is true, then shippingAddress must be "1 wpt street" in "Kabul, Afghanistan", zip code 1001.
|
|
</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>
|