| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| /* | |
| [Exposed=Window, | |
| Constructor(DOMString type, SpeechSynthesisEventInit eventInitDict)] | |
| interface SpeechSynthesisEvent : Event { | |
| readonly attribute SpeechSynthesisUtterance utterance; | |
| readonly attribute unsigned long charIndex; | |
| readonly attribute float elapsedTime; | |
| readonly attribute DOMString name; | |
| }; | |
| */ | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new SpeechSynthesisEvent(); | |
| }); | |
| }, "SpeechSynthesisEvent with no arguments throws TypeError"); | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new SpeechSynthesisEvent("type"); | |
| }); | |
| }, "SpeechSynthesisEvent with no eventInitDict throws TypeError"); | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new SpeechSynthesisEvent("type", {}); | |
| }); | |
| }, `SpeechSynthesisEvent with empty eventInitDict throws TypeError (requires | |
| utterance)`); | |
| test(() => { | |
| assert_throws_js(TypeError, () => { | |
| new SpeechSynthesisEvent("type", {charIndex: 10, elapsedTime: 50, name:"foo"}); | |
| }); | |
| }, `SpeechSynthesisEvent with eventInitDict not having utterance throws | |
| TypeError`); | |
| test(() => { | |
| const utterance = new SpeechSynthesisUtterance("foo"); | |
| const event = new SpeechSynthesisEvent("type", {utterance: utterance}); | |
| assert_equals(event.utterance, utterance); | |
| assert_equals(event.charIndex, 0); | |
| assert_equals(event.charLength, 0); | |
| assert_equals(event.elapsedTime, 0); | |
| assert_equals(event.name, ""); | |
| }, "SpeechSynthesisEvent with eventInitDict having an utterance"); | |
| test(() => { | |
| const utterance = new SpeechSynthesisUtterance("foo"); | |
| const event = new SpeechSynthesisEvent("type", { | |
| utterance: utterance, | |
| charIndex: 5, | |
| charLength: 3, | |
| elapsedTime: 100, | |
| name: "foo" | |
| }); | |
| assert_equals(event.bubbles, false); | |
| assert_equals(event.cancelable, false); | |
| assert_equals(event.type, "type"); | |
| assert_equals(event.utterance, utterance); | |
| assert_equals(event.charIndex, 5); | |
| assert_equals(event.charLength, 3); | |
| assert_equals(event.elapsedTime, 100); | |
| assert_equals(event.name, "foo"); | |
| }, "SpeechSynthesisEvent with custom eventInitDict"); | |
| </script> |