| <!DOCTYPE html> |
| <title>SpeechRecognition installOnDeviceSpeechRecognition</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| promise_test(async (t) => { |
| const validLang = "en-US"; |
| const invalidLang = "invalid language code"; |
| window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; |
| const speechRecognition = new SpeechRecognition(); |
| |
| // Ensure the installOnDeviceSpeechRecognition method exists. |
| assert_true( |
| "installOnDeviceSpeechRecognition" in speechRecognition, |
| "SpeechRecognition should have the installOnDeviceSpeechRecognition method." |
| ); |
| |
| // Test that it returns a promise. |
| const validResultPromise = speechRecognition.installOnDeviceSpeechRecognition(validLang); |
| assert_true( |
| validResultPromise instanceof Promise, |
| "installOnDeviceSpeechRecognition should return a Promise." |
| ); |
| |
| // Verify the resolved value is a boolean. |
| const validResult = await validResultPromise; |
| assert_true( |
| typeof validResult === "boolean", |
| "The resolved value of the installOnDeviceSpeechRecognition promise should be a boolean." |
| ); |
| |
| // Verify that the method returns true when called with a supported language code. |
| assert_equals( |
| validResult, |
| true, |
| "installOnDeviceSpeechRecognition should resolve with `true` when called with a supported language code." |
| ); |
| |
| // Test that it returns a promise. |
| const invalidResultPromise = speechRecognition.installOnDeviceSpeechRecognition(invalidLang); |
| const invalidResult = await invalidResultPromise; |
| assert_equals( |
| invalidResult, |
| false, |
| "installOnDeviceSpeechRecognition should resolve with `false` when called with an unsupported language code." |
| ); |
| }, "SpeechRecognition.installOnDeviceSpeechRecognition resolves with a boolean value."); |
| </script> |