mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 13:48:23 +02:00
Automatic update from web-platform-testsPaymentHandler: Fix a crash when creating event object with empty data
The following codes cause crashes in current implementation.
- new CanMakePaymentEvent("canmakepaymentevent", {});
- new PaymentRequestEvent("paymentrequestevent", {});
This patch fixes the problem and fixes/adds WPT tests.
Bug: none
Change-Id: I95375f1148d69a17075d393990e3726ad2bf1cf3
Reviewed-on: https://chromium-review.googlesource.com/1070957
Commit-Queue: Jinho Bang <jinho.bang@samsung.com>
Reviewed-by: Ganggui Tang <gogerald@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563903}
--
wpt-commits: 1dc612f2ed6a6bec861a90ad9bfa9a4336165dcd
wpt-pr: 11146
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
importScripts('/resources/testharness.js');
|
|
|
|
test(() => {
|
|
try {
|
|
new CanMakePaymentEvent('test', undefined);
|
|
new CanMakePaymentEvent('test', null);
|
|
new CanMakePaymentEvent('test', {});
|
|
} catch (err) {
|
|
assert_unreached(`Unexpected exception: ${err.message}`);
|
|
}
|
|
}, 'CanMakePaymentEvent can be constructed in service worker.');
|
|
|
|
test(() => {
|
|
const ev = new CanMakePaymentEvent('test', {
|
|
bubbles: true,
|
|
cancelable: true,
|
|
composed: true,
|
|
});
|
|
assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
|
|
assert_true(ev.bubbles, 'set by EventInitDict');
|
|
assert_true(ev.cancelable, 'set by EventInitDict');
|
|
assert_true(ev.composed, 'set by EventInitDict');
|
|
assert_equals(ev.target, null, 'initially null');
|
|
assert_equals(ev.type, 'test');
|
|
}, 'CanMakePaymentEvent can be constructed with an EventInitDict, even if not trusted');
|
|
|
|
test(() => {
|
|
const ev = new CanMakePaymentEvent('test', {
|
|
topOrigin: 'https://foo.com',
|
|
paymentRequestOrigin: 'https://bar.com',
|
|
methodData: [],
|
|
modifiers: [],
|
|
});
|
|
assert_false(ev.isTrusted, 'constructed in script, so not be trusted');
|
|
assert_equals(ev.topOrigin, 'https://foo.com');
|
|
assert_equals(ev.paymentRequestOrigin, 'https://bar.com');
|
|
}, 'CanMakePaymentEvent can be constructed with a CanMakePaymentEventInit, even if not trusted');
|
|
|
|
test(() => {
|
|
const ev = new CanMakePaymentEvent('test', {});
|
|
self.addEventListener('test', evt => {
|
|
assert_equals(ev, evt);
|
|
});
|
|
self.dispatchEvent(ev);
|
|
}, 'CanMakePaymentEvent can be dispatched, even if not trusted');
|