summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html')
-rw-r--r--testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html70
1 files changed, 70 insertions, 0 deletions
diff --git a/testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html b/testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html
new file mode 100644
index 0000000000..e6b29683f7
--- /dev/null
+++ b/testing/web-platform/tests/speech-api/SpeechSynthesisEvent-constructor.html
@@ -0,0 +1,70 @@
+<!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>