mirror of
https://github.com/servo/servo.git
synced 2025-10-16 16:29:18 +01:00
89 lines
3.3 KiB
HTML
89 lines
3.3 KiB
HTML
<!doctype html>
|
|
<meta charset="utf-8">
|
|
<title>Tests for CanMakePaymentEvent.respondWithMinimalUI</title>
|
|
<link rel="help" href="https://gist.github.com/rsolomakhin/eba91c185028899883d2c7f37f357d7c">
|
|
<link rel="manifest" href="manifest.json">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
const methodName = window.location.origin;
|
|
|
|
async function registerApp(methodName) {
|
|
await navigator.serviceWorker.register('app-respond-with-minimal-ui.js');
|
|
const registration = await navigator.serviceWorker.ready;
|
|
if (!registration.paymentManager) {
|
|
return;
|
|
}
|
|
if (registration.paymentManager.requestPermission) {
|
|
const permission = await registration.paymentManager.requestPermission();
|
|
if (permission !== 'granted') {
|
|
return;
|
|
}
|
|
}
|
|
await registration.paymentManager.instruments.set('instrument-key', {
|
|
name: 'Test Payment Method',
|
|
method: methodName,
|
|
});
|
|
return registration;
|
|
}
|
|
|
|
async function hasEnrolledInstrument(supportedMethods, data) {
|
|
return (new PaymentRequest(
|
|
[{supportedMethods, data}],
|
|
{total: {label: 'Total', amount: {currency: 'USD', value: '0.01'}}}))
|
|
.hasEnrolledInstrument();
|
|
}
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_false(await hasEnrolledInstrument(methodName, {test: 0}));
|
|
}, 'respondWithMinimalUI(0) causes hasEnrolledInstrument() to return "false"');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_false(await hasEnrolledInstrument(methodName, {test: {}}));
|
|
}, 'respondWithMinimalUI({}) causes hasEnrolledInstrument() to return "false"');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_true(await hasEnrolledInstrument(methodName,
|
|
{test: {canMakePayment: true}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: true}) causes '
|
|
+ 'hasEnrolledInstrument() to return "true"');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_false(await hasEnrolledInstrument(methodName,
|
|
{test: {canMakePayment: false}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: false}) causes '
|
|
+ 'hasEnrolledInstrument() to return "false"');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_true(await hasEnrolledInstrument(methodName, {test:
|
|
{canMakePayment: true, readyForMinimalUI: true}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: true, readyForMinimalUI: true}) does '
|
|
+ 'not crash');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_true(await hasEnrolledInstrument(methodName, {test:
|
|
{canMakePayment: true, readyForMinimalUI: true, accountBalance: ''}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: true, readyForMinimalUI: true, '
|
|
+ 'accountBalance: ""}) does not crash');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_true(await hasEnrolledInstrument(methodName, {test:
|
|
{canMakePayment: true, readyForMinimalUI: true, accountBalance: '--'}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: true, readyForMinimalUI: true, '
|
|
+ 'accountBalance: "--"}) does not crash');
|
|
|
|
promise_test(async t => {
|
|
await registerApp(methodName);
|
|
assert_true(await hasEnrolledInstrument(methodName, {test:
|
|
{canMakePayment: true, readyForMinimalUI: true, accountBalance: '6.78'}}));
|
|
}, 'respondWithMinimalUI({canMakePayment: true, readyForMinimalUI: true, '
|
|
+ 'accountBalance: "6.78"}) does not crash');
|
|
|
|
</script>
|