summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/web-nfc/README.md
blob: b51018d68f1fbc91249d2f07ecbbfd2e8f5e0e1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
The `nfc-helpers.js` requires an implementation of
the `WebNFCTest` interfaces, which should emulate platform Web NFC backends.

The `WebNFCTest` interface is defined as:

```
  class NFCTestChromium {
    initialize();  // Sets up the testing environment.
    async reset(); // Frees the resources.
    getMockNFC(); // Returns `MockNFC` interface.
  };

  class MockNFC {
    setHWStatus(number status); // Sets the hardware status.
    setReadingMessage(NDEFMessageInit message); // Sets message that is used to deliver NFC reading updates.
    setPendingPushCompleted(boolean result); // Sets if the pending push is completed.
    setPendingMakeReadOnlyCompleted(boolean result); // Sets if the pending makeReadOnly is completed.
    pushedMessage(); // Gets the pushed `NDEFMessageSource`.
    writeOptions(); // Gets the pushed `NDEFWriteOptions`.
    simulateNonNDEFTagDiscovered(); // Simulates that the NFC device discovered does not expose NDEF technology.
    setIsFormattedTag(boolean isFormatted); // Sets if the NFC tag has formatted NDEF message.
  };
```

The Chromium implementation of the `WebNFCTest` interface is located in
[nfc-mock.js](../resources/chromium/nfc-mock.js).

Other browser vendors should provide their own implementations of
the `WebNFCTest` interfaces.