| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>Web NFC IDL tests</title> |
| <link rel="author" title="Intel" href="http://www.intel.com"> |
| <link rel="help" href="https://w3c.github.io/web-nfc/"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/WebIDLParser.js"></script> |
| <script src="/resources/idlharness.js"></script> |
| <style> |
| pre { |
| display: none; |
| } |
| </style> |
| <div id='log'></div> |
| |
| <pre id="idl"> |
| interface Navigator { |
| }; |
| </pre> |
| |
| <pre id="web-nfc"> |
| dictionary NFCMessage { |
| sequence<NFCRecord> records; |
| USVString url; |
| }; |
| |
| typedef (DOMString or unrestricted double or ArrayBuffer or Dictionary) NFCRecordData; |
| |
| dictionary NFCRecord { |
| NFCRecordType recordType; |
| USVString mediaType; |
| NFCRecordData data; |
| }; |
| |
| enum NFCRecordType { |
| "empty", |
| "text", |
| "url", |
| "json", |
| "opaque" |
| }; |
| |
| partial interface Navigator { |
| readonly attribute NFC nfc; |
| }; |
| |
| typedef (DOMString or ArrayBuffer or NFCMessage) NFCPushMessage; |
| |
| interface NFC { |
| Promise<void> push(NFCPushMessage message, optional NFCPushOptions options); |
| Promise<void> cancelPush(optional NFCPushTarget target = "any"); |
| Promise<long> watch(MessageCallback callback, |
| optional NFCWatchOptions options); |
| Promise<void> cancelWatch(optional long id); |
| }; |
| |
| callback MessageCallback = void (NFCMessage message); |
| |
| dictionary NFCPushOptions { |
| NFCPushTarget target = "any"; |
| unrestricted double timeout = Infinity; |
| boolean ignoreRead = true; |
| }; |
| |
| enum NFCPushTarget { |
| "tag", |
| "peer", |
| "any" |
| }; |
| |
| dictionary NFCWatchOptions { |
| USVString url = ""; |
| NFCRecordType? recordType; |
| USVString mediaType = ""; |
| NFCWatchMode mode = "web-nfc-only"; |
| }; |
| |
| enum NFCWatchMode { |
| "web-nfc-only", |
| "any" |
| }; |
| </pre> |
| |
| <script> |
| setup(() => { |
| "use strict"; |
| const idl_array = new IdlArray(); |
| idl_array.add_untested_idls(document.getElementById('idl').textContent); |
| idl_array.add_idls(document.getElementById('web-nfc').textContent); |
| idl_array.add_objects({ NFC: ["navigator.nfc"] }); |
| idl_array.test(); |
| done(); |
| }, { explicit_done: true }); |
| </script> |