mirror of
https://github.com/servo/servo.git
synced 2025-08-15 18:35:33 +01:00
Update web-platform-tests to revision 289272c280086dda4bce0d31f2ce0fc1e7a08fa8
This commit is contained in:
parent
6f93950bf2
commit
78cf1982a2
230 changed files with 1832 additions and 1867 deletions
|
@ -1,10 +1,9 @@
|
|||
'use strict';
|
||||
import {NDEFErrorType, NDEFRecordTypeCategory, NFC, NFCReceiver} from '/gen/services/device/public/mojom/nfc.mojom.m.js';
|
||||
|
||||
// Converts between NDEFMessageInit https://w3c.github.io/web-nfc/#dom-ndefmessage
|
||||
// and mojom.NDEFMessage structure, so that watch function can be tested.
|
||||
function toMojoNDEFMessage(message) {
|
||||
let ndefMessage = new device.mojom.NDEFMessage();
|
||||
ndefMessage.data = [];
|
||||
let ndefMessage = {data: []};
|
||||
for (let record of message.records) {
|
||||
ndefMessage.data.push(toMojoNDEFRecord(record));
|
||||
}
|
||||
|
@ -12,16 +11,16 @@ function toMojoNDEFMessage(message) {
|
|||
}
|
||||
|
||||
function toMojoNDEFRecord(record) {
|
||||
let nfcRecord = new device.mojom.NDEFRecord();
|
||||
let nfcRecord = {};
|
||||
// Simply checks the existence of ':' to decide whether it's an external
|
||||
// type or a local type. As a mock, no need to really implement the validation
|
||||
// algorithms for them.
|
||||
if (record.recordType.startsWith(':')) {
|
||||
nfcRecord.category = device.mojom.NDEFRecordTypeCategory.kLocal;
|
||||
nfcRecord.category = NDEFRecordTypeCategory.kLocal;
|
||||
} else if (record.recordType.search(':') != -1) {
|
||||
nfcRecord.category = device.mojom.NDEFRecordTypeCategory.kExternal;
|
||||
nfcRecord.category = NDEFRecordTypeCategory.kExternal;
|
||||
} else {
|
||||
nfcRecord.category = device.mojom.NDEFRecordTypeCategory.kStandardized;
|
||||
nfcRecord.category = NDEFRecordTypeCategory.kStandardized;
|
||||
}
|
||||
nfcRecord.recordType = record.recordType;
|
||||
nfcRecord.mediaType = record.mediaType;
|
||||
|
@ -59,7 +58,7 @@ function toByteArray(data) {
|
|||
// Compares NDEFRecords that were provided / received by the mock service.
|
||||
// TODO: Use different getters to get received record data,
|
||||
// see spec changes at https://github.com/w3c/web-nfc/pull/243.
|
||||
function compareNDEFRecords(providedRecord, receivedRecord) {
|
||||
self.compareNDEFRecords = function(providedRecord, receivedRecord) {
|
||||
assert_equals(providedRecord.recordType, receivedRecord.recordType);
|
||||
|
||||
if (providedRecord.id === undefined) {
|
||||
|
@ -93,7 +92,7 @@ function compareNDEFRecords(providedRecord, receivedRecord) {
|
|||
|
||||
// Compares NDEFWriteOptions structures that were provided to API and
|
||||
// received by the mock mojo service.
|
||||
function assertNDEFWriteOptionsEqual(provided, received) {
|
||||
self.assertNDEFWriteOptionsEqual = function(provided, received) {
|
||||
if (provided.overwrite !== undefined)
|
||||
assert_equals(provided.overwrite, !!received.overwrite);
|
||||
else
|
||||
|
@ -102,7 +101,7 @@ function assertNDEFWriteOptionsEqual(provided, received) {
|
|||
|
||||
// Compares NDEFReaderOptions structures that were provided to API and
|
||||
// received by the mock mojo service.
|
||||
function assertNDEFReaderOptionsEqual(provided, received) {
|
||||
self.assertNDEFReaderOptionsEqual = function(provided, received) {
|
||||
if (provided.url !== undefined)
|
||||
assert_equals(provided.url, received.url);
|
||||
else
|
||||
|
@ -119,24 +118,20 @@ function assertNDEFReaderOptionsEqual(provided, received) {
|
|||
}
|
||||
|
||||
function createNDEFError(type) {
|
||||
return {
|
||||
error: type != null ?
|
||||
new device.mojom.NDEFError({errorType: type, errorMessage: ''}) :
|
||||
null
|
||||
};
|
||||
return {error: (type != null ? {errorType: type, errorMessage: ''} : null)};
|
||||
}
|
||||
|
||||
var WebNFCTest = (() => {
|
||||
self.WebNFCTest = (() => {
|
||||
class MockNFC {
|
||||
constructor() {
|
||||
this.bindingSet_ = new mojo.BindingSet(device.mojom.NFC);
|
||||
this.receiver_ = new NFCReceiver(this);
|
||||
|
||||
this.interceptor_ = new MojoInterfaceInterceptor(device.mojom.NFC.name);
|
||||
this.interceptor_ = new MojoInterfaceInterceptor(NFC.$interfaceName);
|
||||
this.interceptor_.oninterfacerequest = e => {
|
||||
if (this.should_close_pipe_on_request_)
|
||||
e.handle.close();
|
||||
else
|
||||
this.bindingSet_.addBinding(this, e.handle);
|
||||
this.receiver_.$.bindHandle(e.handle);
|
||||
}
|
||||
|
||||
this.interceptor_.start();
|
||||
|
@ -174,10 +169,10 @@ var WebNFCTest = (() => {
|
|||
} else if (this.is_formatted_tag_ && !options.overwrite) {
|
||||
// Resolves with NotAllowedError if there are NDEF records on the device
|
||||
// and overwrite is false.
|
||||
resolve(createNDEFError(device.mojom.NDEFErrorType.NOT_ALLOWED));
|
||||
resolve(createNDEFError(NDEFErrorType.NOT_ALLOWED));
|
||||
} else if (this.data_transfer_failed_) {
|
||||
// Resolves with NetworkError if data transfer fails.
|
||||
resolve(createNDEFError(device.mojom.NDEFErrorType.IO_ERROR));
|
||||
resolve(createNDEFError(NDEFErrorType.IO_ERROR));
|
||||
} else {
|
||||
resolve(createNDEFError(null));
|
||||
}
|
||||
|
@ -223,9 +218,9 @@ var WebNFCTest = (() => {
|
|||
|
||||
getHWError() {
|
||||
if (this.hw_status_ === NFCHWStatus.DISABLED)
|
||||
return createNDEFError(device.mojom.NDEFErrorType.NOT_READABLE);
|
||||
return createNDEFError(NDEFErrorType.NOT_READABLE);
|
||||
if (this.hw_status_ === NFCHWStatus.NOT_SUPPORTED)
|
||||
return createNDEFError(device.mojom.NDEFErrorType.NOT_SUPPORTED);
|
||||
return createNDEFError(NDEFErrorType.NOT_SUPPORTED);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -264,7 +259,7 @@ var WebNFCTest = (() => {
|
|||
cancelPendingPushOperation() {
|
||||
if (this.pending_promise_func_) {
|
||||
this.pending_promise_func_(
|
||||
createNDEFError(device.mojom.NDEFErrorType.OPERATION_CANCELLED));
|
||||
createNDEFError(NDEFErrorType.OPERATION_CANCELLED));
|
||||
this.pending_promise_func_ = null;
|
||||
}
|
||||
|
||||
|
@ -318,15 +313,15 @@ var WebNFCTest = (() => {
|
|||
simulateNonNDEFTagDiscovered() {
|
||||
// Notify NotSupportedError to all active readers.
|
||||
if (this.watchers_.length != 0) {
|
||||
this.client_.onError(new device.mojom.NDEFError({
|
||||
errorType: device.mojom.NDEFErrorType.NOT_SUPPORTED,
|
||||
this.client_.onError({
|
||||
errorType: NDEFErrorType.NOT_SUPPORTED,
|
||||
errorMessage: ''
|
||||
}));
|
||||
});
|
||||
}
|
||||
// Reject the pending push with NotSupportedError.
|
||||
if (this.pending_promise_func_) {
|
||||
this.pending_promise_func_(
|
||||
createNDEFError(device.mojom.NDEFErrorType.NOT_SUPPORTED));
|
||||
createNDEFError(NDEFErrorType.NOT_SUPPORTED));
|
||||
this.pending_promise_func_ = null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue