mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Update web-platform-tests to revision 4333a1d2f109795547fc5e22ebfc8481fa649de7
This commit is contained in:
parent
728ebcc932
commit
8c46b67f8e
456 changed files with 10561 additions and 5108 deletions
106
tests/wpt/web-platform-tests/webusb/usb.https.window.js
Normal file
106
tests/wpt/web-platform-tests/webusb/usb.https.window.js
Normal file
|
@ -0,0 +1,106 @@
|
|||
// META: script=/resources/testdriver.js
|
||||
// META: script=/resources/testdriver-vendor.js
|
||||
// META: script=/webusb/resources/fake-devices.js
|
||||
// META: script=/webusb/resources/usb-helpers.js
|
||||
'use strict';
|
||||
|
||||
usb_test(() => {
|
||||
return navigator.usb.requestDevice({ filters: [] })
|
||||
.then(device => {
|
||||
assert_unreachable('requestDevice should reject without a user gesture');
|
||||
})
|
||||
.catch(error => {
|
||||
assert_equals(error.code, DOMException.SECURITY_ERR);
|
||||
});
|
||||
}, 'requestDevice rejects when called without a user gesture');
|
||||
|
||||
usb_test(() => {
|
||||
return callWithTrustedClick(() => navigator.usb.requestDevice({ filters: [] })
|
||||
.then(device => {
|
||||
assert_unreachable('requestDevice should reject when no device selected');
|
||||
})
|
||||
.catch(error => {
|
||||
assert_equals(error.code, DOMException.NOT_FOUND_ERR);
|
||||
})
|
||||
);
|
||||
}, 'requestDevice rejects when no device is chosen');
|
||||
|
||||
usb_test(() => {
|
||||
return getFakeDevice().then(({ device, fakeDevice }) => {
|
||||
navigator.usb.test.onrequestdevice = event => {
|
||||
navigator.usb.test.onrequestdevice = undefined;
|
||||
event.respondWith(fakeDevice);
|
||||
};
|
||||
return callWithTrustedClick(() => {
|
||||
return navigator.usb.requestDevice({ filters: [] }).then(chosenDevice => {
|
||||
assert_equals(chosenDevice, device);
|
||||
});
|
||||
});
|
||||
});
|
||||
}, 'requestDevice returns the device chosen by the user');
|
||||
|
||||
usb_test(() => {
|
||||
return getFakeDevice().then(({ device, fakeDevice }) => {
|
||||
navigator.usb.test.onrequestdevice = event => {
|
||||
navigator.usb.test.onrequestdevice = undefined;
|
||||
event.respondWith(fakeDevice);
|
||||
};
|
||||
return callWithTrustedClick(() => {
|
||||
return navigator.usb.requestDevice({ filters: [] }).then(chosenDevice => {
|
||||
assert_equals(chosenDevice, device);
|
||||
return navigator.usb.getDevices().then(devices => {
|
||||
assert_equals(devices.length, 1);
|
||||
assert_equals(devices[0], chosenDevice);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}, 'getDevices returns the same object as requestDevice');
|
||||
|
||||
usb_test(() => {
|
||||
const expectedFilters = [
|
||||
{ vendorId: 1234, classCode: 0xFF, serialNumber: "123ABC" },
|
||||
{ vendorId: 5678, productId: 0xF00F }
|
||||
];
|
||||
|
||||
navigator.usb.test.onrequestdevice = event => {
|
||||
navigator.usb.test.onrequestdevice = undefined;
|
||||
|
||||
assert_equals(event.filters.length, expectedFilters.length);
|
||||
for (var i = 0; i < event.filters.length; ++i) {
|
||||
assert_object_equals(event.filters[i], expectedFilters[i]);
|
||||
}
|
||||
|
||||
event.respondWith(null);
|
||||
};
|
||||
|
||||
return callWithTrustedClick(() => {
|
||||
return navigator.usb.requestDevice({ filters: expectedFilters })
|
||||
.then(device => {
|
||||
assert_unreachable('requestDevice should reject because no device selected');
|
||||
})
|
||||
.catch(error => {
|
||||
assert_equals(error.code, DOMException.NOT_FOUND_ERR);
|
||||
});
|
||||
});
|
||||
}, 'filters are sent correctly');
|
||||
|
||||
usb_test(() => {
|
||||
return getFakeDevice().then(({ device, fakeDevice }) => {
|
||||
navigator.usb.test.onrequestdevice = event => {
|
||||
event.respondWith(fakeDevice);
|
||||
};
|
||||
return callWithTrustedClick(() => {
|
||||
let first = navigator.usb.requestDevice({ filters: [] });
|
||||
let second = navigator.usb.requestDevice({ filters: [] });
|
||||
return Promise.all([
|
||||
first.then(chosenDevice => {
|
||||
assert_equals(chosenDevice, device);
|
||||
}),
|
||||
second.then(chosenDevice => {
|
||||
assert_equals(chosenDevice, device);
|
||||
})
|
||||
]);
|
||||
});
|
||||
});
|
||||
}, 'multiple requestDevice calls are allowed per user activation');
|
Loading…
Add table
Add a link
Reference in a new issue