Update web-platform-tests to revision ac16628eb7eb601957382053011363d2bcf8ce44

This commit is contained in:
WPT Sync Bot 2020-02-17 08:20:12 +00:00
parent ea7e753cea
commit 7e7c8873e4
4408 changed files with 664787 additions and 857286 deletions

View file

@ -22,14 +22,14 @@ const invalid_signals = [
function waitSyntaxErrorPromise(t, scan_options) {
const reader = new NDEFReader();
return promise_rejects(t, 'SyntaxError', reader.scan(scan_options));
return promise_rejects_dom(t, 'SyntaxError', reader.scan(scan_options));
}
promise_test(async t => {
const reader = new NDEFReader();
const promises = [];
invalid_signals.forEach(invalid_signal => {
promises.push(promise_rejects(t, new TypeError(),
promises.push(promise_rejects_js(t, TypeError,
reader.scan({ signal: invalid_signal })));
});
await Promise.all(promises);
@ -42,7 +42,7 @@ promise_test(async t => {
location.origin, location.origin);
}
const reader = new NDEFReader();
await promise_rejects(t, 'NotAllowedError', reader.scan());
await promise_rejects_dom(t, 'NotAllowedError', reader.scan());
}, "NDEFReader.scan should fail if user permission is not granted.");
// We do not provide NFC mock here to simulate that there has no available
@ -57,7 +57,7 @@ promise_test(async t => {
const promise = readerWatcher.wait_for("error").then(event => {
assert_true(event instanceof ErrorEvent);
});
await promise_rejects(t, 'NotSupportedError', reader.scan());
await promise_rejects_dom(t, 'NotSupportedError', reader.scan());
await promise;
}, "Test that an error event happens if no implementation for NFC Mojo interface \
is available.");
@ -65,13 +65,13 @@ is available.");
nfc_test(async (t, mockNFC) => {
mockNFC.setHWStatus(NFCHWStatus.DISABLED);
const reader = new NDEFReader();
await promise_rejects(t, 'NotReadableError', reader.scan());
await promise_rejects_dom(t, 'NotReadableError', reader.scan());
}, "NDEFReader.scan should fail if NFC HW is disabled.");
nfc_test(async (t, mockNFC) => {
mockNFC.setHWStatus(NFCHWStatus.NOT_SUPPORTED);
const reader = new NDEFReader();
await promise_rejects(t, 'NotSupportedError', reader.scan());
await promise_rejects_dom(t, 'NotSupportedError', reader.scan());
}, "NDEFReader.scan should fail if NFC HW is not supported.");
nfc_test(async (t, mockNFC) => {
@ -106,7 +106,7 @@ nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller = new AbortController();
controller.abort();
await promise_rejects(t, 'AbortError', reader.scan({signal: controller.signal}));
await promise_rejects_dom(t, 'AbortError', reader.scan({signal: controller.signal}));
}, "Test that NDEFReader.scan rejects if NDEFScanOptions.signal is already aborted.");
nfc_test(async (t, mockNFC) => {
@ -114,7 +114,7 @@ nfc_test(async (t, mockNFC) => {
const controller = new AbortController();
const promise = reader.scan({signal: controller.signal});
controller.abort();
await promise_rejects(t, 'AbortError', promise);
await promise_rejects_dom(t, 'AbortError', promise);
}, "Test that NDEFReader.scan rejects if NDEFScanOptions.signal aborts right after \
the scan invocation.");
@ -146,27 +146,88 @@ nfc_test(async (t, mockNFC) => {
const promise = readerWatcher.wait_for("reading").then(event => {
controller.abort();
assert_true(event instanceof NDEFReadingEvent);
// The message contains only an external type record.
// The message in the event contains only the external type record.
assert_equals(event.message.records.length, 1);
assert_equals(event.message.records[0].recordType, 'example.com:payloadIsMessage', 'recordType');
// The external type record's payload is a message, which contains only a text record.
const embeddedRecords = event.message.records[0].toRecords();
assert_equals(embeddedRecords.length, 1);
assert_equals(embeddedRecords[0].recordType, 'text', 'recordType');
assert_equals(embeddedRecords[0].mediaType, null, 'mediaType');
assert_equals(event.message.records[0].recordType, 'example.com:containsLocalRecord',
'recordType');
// The external type record contains only the local type record.
assert_equals(event.message.records[0].toRecords().length, 1);
assert_equals(event.message.records[0].toRecords()[0].recordType, ':containsTextRecord',
'recordType');
// The local type record contains only the text record.
assert_equals(event.message.records[0].toRecords()[0].toRecords()[0].recordType, 'text',
'recordType');
const decoder = new TextDecoder();
assert_equals(decoder.decode(embeddedRecords[0].data), test_text_data,
'data has the same content with the original dictionary');
assert_equals(decoder.decode(event.message.records[0].toRecords()[0].toRecords()[0].data),
test_text_data, 'data has the same content with the original dictionary');
});
await reader.scan({signal : controller.signal});
const payloadMessage = createMessage([createTextRecord(test_text_data)]);
const message = createMessage([createRecord('example.com:payloadIsMessage',
payloadMessage)]);
// An external type record --contains-> a local type record --contains-> a text record.
const messageContainText = createMessage([createTextRecord(test_text_data)]);
const messageContainLocal= createMessage([createRecord(':containsTextRecord',
messageContainText)]);
const message = createMessage([createRecord('example.com:containsLocalRecord',
messageContainLocal)]);
mockNFC.setReadingMessage(message);
await promise;
}, "NDEFRecord.toRecords returns its embedded records correctly.");
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller = new AbortController();
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
const promise = readerWatcher.wait_for("reading").then(event => {
controller.abort();
assert_true(event instanceof NDEFReadingEvent);
// The message in the event contains only the smart-poster record.
assert_equals(event.message.records.length, 1);
assert_equals(event.message.records[0].recordType, 'smart-poster', 'recordType');
assert_equals(event.message.records[0].mediaType, null, 'mediaType');
assert_equals(event.message.records[0].id, 'dummy_record_id', 'id');
// The smart-poster record contains one uri record and one text record.
const embedded_records = event.message.records[0].toRecords();
assert_equals(embedded_records.length, 2);
const decoder = new TextDecoder();
let embedded_record_types = [];
for(let record of embedded_records) {
embedded_record_types.push(record.recordType);
switch(record.recordType) {
case 'url':
assert_equals(record.mediaType, null, 'url record\'s mediaType');
assert_equals(record.id, test_record_id, 'url record\'s id');
assert_equals(decoder.decode(record.data), test_url_data, 'url record\'s data');
break;
case 'text':
assert_equals(record.mediaType, null, 'text record\'s mediaType');
assert_equals(record.id, test_record_id, 'text record\'s id');
assert_equals(decoder.decode(record.data), test_text_data, 'text record\'s data');
break;
default:
assert_unreached("Unknown recordType");
}
}
assert_array_equals(embedded_record_types.sort(), ['text', 'url'],
'smart-poster record\'s contained record types');
});
await reader.scan({signal : controller.signal});
// A smart-poster record contains a uri record, text record.
const uri_record = createUrlRecord(test_url_data);
const text_record = createTextRecord(test_text_data);
const payload_message = createMessage([uri_record, text_record]);
const message = createMessage([createRecord(
'smart-poster', payload_message, "dummy_record_id")]);
mockNFC.setReadingMessage(message);
await promise;
}, "NDEFReader.scan returns smart-poster record correctly.");
nfc_test(async (t, mockNFC) => {
const promises = [];