blob: 05d94d4b2f17e951a541fa50b733f626221482ac [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../resources/mojo-helpers.js"></script>
<script src="resources/nfc-helpers.js"></script>
<script>
'use strict';
nfc_test(nfc => {
return navigator.nfc.watch(noop);
}, 'Test that nfc.watch succeeds if NFC hardware is enabled.');
nfc_test(nfc => {
nfc.mockNFC.setHWStatus(NFCHWStatus.DISABLED);
return assertRejectsWithError(navigator.nfc.watch(noop), 'NotSupportedError');
}, 'Test that nfc.watch fails if NFC hardware is disabled.')
nfc_test(nfc => {
nfc.mockNFC.setHWStatus(NFCHWStatus.NOT_SUPPORTED);
return assertRejectsWithError(navigator.nfc.watch(noop), 'NotSupportedError');
}, 'Test that nfc.watch fails if NFC hardware is not supported.')
nfc_test(nfc => {
return navigator.nfc.watch(noop).
then(() => {
nfc.assertNFCWatchOptionsEqual(createNFCWatchOptions(), nfc.mockNFC.watchOptions());
});
}, 'Test that default NFCWatchOptions values are set correctly.')
nfc_test(nfc => {
let watchOptions = createNFCWatchOptions(test_message_origin, 'json',
'application/json', 'any');
return navigator.nfc.watch(noop, watchOptions).
then(() => {
nfc.assertNFCWatchOptionsEqual(watchOptions, nfc.mockNFC.watchOptions());
});
}, 'Test that NFCWatchOptions values are correctly converted.')
nfc_test(nfc => {
return assertRejectsWithError(navigator.nfc.cancelWatch(1), 'NotFoundError');
}, 'Test that nfc.cancelWatch fails if invalid watch ID is provided.')
nfc_test(nfc => {
return assertRejectsWithError(navigator.nfc.cancelWatch(), 'NotFoundError');
}, 'Test that nfc.cancelWatch fails if there are no active watchers.')
nfc_test(nfc => {
return navigator.nfc.watch(noop).
then(id => { navigator.nfc.cancelWatch(id); });
}, 'Test that nfc.cancelWatch succeeds if correct watch id is provided.')
nfc_test(nfc => {
return navigator.nfc.watch(noop).
then(() => { navigator.nfc.cancelWatch(); });
}, 'Test that nfc.cancelWatch succeeds if there are active watchers.')
nfc_test(nfc => {
let message = createMessage([createTextRecord(test_text_data),
createJsonRecord(test_json_data),
createOpaqueRecord(test_buffer_data),
createTextRecord(test_number_data),
createUrlRecord(test_url_data)],
test_message_origin);
return new Promise((resolve, reject) => {
navigator.nfc.watch(receivedMessage => {
nfc.assertWebNFCMessagesEqual(message, receivedMessage);
resolve();
}).then(id => { nfc.mockNFC.triggerWatchCallback(id, message); }, reject);
});
}, 'Test that watch callback is triggered with valid NFCMessage.')
</script>