In this test suite otpcredential-helper.js
is a testing framework that enables engines to test OTPCredential by intercepting the connection between the browser and the underlying operating system and mock its behavior.
Usage:
<script src="/resources/test-only-api.js"></script> <script src="support/otpcredential-helper.js"></script>
await expect(receive).andReturn(() => { // mock behavior })
navigator.credentials.get({otp: {transport: ["sms"]}})
The mocking API is browser agnostic and is designed such that other engines could implement it too.
Here are the symbols that are exposed to tests that need to be implemented per engine:
fedcm-mojojs-helper.js
exposes fedcm_mojo_mock_test
which is a specialized promise_test
which comes pre-setup with the appropriate mocking infrastructure to emulate platform federated auth backend. The mock is passed to the test function as the second parameter.
Example usage:
<script type="module"> import {fedcm_mojo_mock_test} from './support/fedcm-mojojs-helper.js'; fedcm_mojo_mock_test(async (t, mock) => { mock.returnToken("https://idp.test/fedcm.json", "a_token"); assert_equals("a_token", await navigator.credentials.get(options)); }, "Successfully obtaining a token using mock."); </script>
The chromium implementation uses the MojoJS shim.