mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-10 21:28:04 +02:00
Automatic update from web-platform-testsAdd SpeechSynthesisErrorEvent IDL interface See spec: https://w3c.github.io/speech-api/#speechsynthesiserrorevent and discussion on i2s on blink-dev: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/8_H3FUZm23g Previously, errors were just going through as SpeechSynthesisEvents. This CL now dispatches errors as SpeechSynthesisErrorEvents with an empty "error" method. This CL also adds constructors on both SpeechSynthesisEvent and SpeechSynthesisErrorEvent. Bug: 885297 Change-Id: I70ba998182943a50e17f2fc11eb7e163d8289e94 Reviewed-on: https://chromium-review.googlesource.com/1231839 Commit-Queue: Charlie Harrison <csharrison@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Cr-Commit-Position: refs/heads/master@{#595128} -- wpt-commits: 95b97e23ea267ac700cfa5f3a131581203f15c62 wpt-pr: 13057
88 lines
2.8 KiB
HTML
88 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
/*
|
|
[Exposed=Window,
|
|
Constructor(DOMString type, SpeechSynthesisErrorEventInit eventInitDict)]
|
|
interface SpeechSynthesisErrorEvent : SpeechSynthesisErrorEvent {
|
|
readonly attribute SpeechSynthesisErrorCode error;
|
|
};
|
|
*/
|
|
test(() => {
|
|
assert_throws(new TypeError(), () => {
|
|
new SpeechSynthesisErrorEvent();
|
|
});
|
|
}, "SpeechSynthesisErrorEvent with no arguments throws TypeError");
|
|
|
|
test(() => {
|
|
assert_throws(new TypeError(), () => {
|
|
new SpeechSynthesisErrorEvent("type");
|
|
});
|
|
}, "SpeechSynthesisErrorEvent with no eventInitDict throws TypeError");
|
|
|
|
test(() => {
|
|
assert_throws(new TypeError(), () => {
|
|
new SpeechSynthesisErrorEvent("type", {});
|
|
});
|
|
}, `SpeechSynthesisErrorEvent with empty eventInitDict throws TypeError (requires
|
|
utterance and error)`);
|
|
|
|
test(() => {
|
|
assert_throws(new TypeError(), () => {
|
|
new SpeechSynthesisErrorEvent("type", {error:"not-allowed"});
|
|
});
|
|
}, `SpeechSynthesisErrorEvent with eventInitDict without utterance throws
|
|
TypeError`);
|
|
|
|
test(() => {
|
|
assert_throws(new TypeError(), () => {
|
|
new SpeechSynthesisErrorEvent("type", {utterance: new SpeechSynthesisUtterance()});
|
|
});
|
|
}, `SpeechSynthesisErrorEvent with eventInitDict without error throws
|
|
TypeError`);
|
|
|
|
test(() => {
|
|
const utterance = new SpeechSynthesisUtterance("foo");
|
|
const event = new SpeechSynthesisErrorEvent("type", {utterance: utterance, error:"not-allowed"});
|
|
assert_equals(event.utterance, utterance);
|
|
assert_equals(event.error, "not-allowed");
|
|
assert_equals(event.charIndex, 0);
|
|
assert_equals(event.elapsedTime, 0);
|
|
assert_equals(event.name, "");
|
|
}, "SpeechSynthesisErrorEvent with eventInitDict having utterance and error");
|
|
|
|
test(() => {
|
|
const utterance = new SpeechSynthesisUtterance("foo");
|
|
const event = new SpeechSynthesisErrorEvent("type", {
|
|
utterance: utterance,
|
|
charIndex: 5,
|
|
elapsedTime: 100,
|
|
name: "foo",
|
|
error: "synthesis-failed"
|
|
});
|
|
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.elapsedTime, 100);
|
|
assert_equals(event.name, "foo");
|
|
assert_equals(event.error, "synthesis-failed");
|
|
}, "SpeechSynthesisErrorEvent with custom eventInitDict");
|
|
|
|
test(() => {
|
|
function createEventFunc(error) {
|
|
return () => {
|
|
new SpeechSynthesisErrorEvent("type", {
|
|
utterance: new SpeechSynthesisUtterance(),
|
|
error: error
|
|
});
|
|
};
|
|
};
|
|
assert_throws(new TypeError(), createEventFunc(""));
|
|
assert_throws(new TypeError(), createEventFunc("foo"));
|
|
assert_throws(new TypeError(), createEventFunc("bar"));
|
|
}, "SpeechSynthesisErrorEvent with wrong error enum");
|
|
</script>
|