<!DOCTYPE html>
<title>SpeechSynthesisUtterance basics</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
const DEFAULTS = {
text: '',
lang: '',
voice: null,
volume: 1,
rate: 1,
pitch: 1,
};
for (const prop in DEFAULTS) {
test(function() {
const utt = new SpeechSynthesisUtterance();
assert_equals(utt[prop], DEFAULTS[prop], prop);
}, `new SpeechSynthesisUtterance() default ${prop}`);
}
test(function() {
const utt = new SpeechSynthesisUtterance("hello");
assert_equals(utt.text, 'hello', 'text');
// check that the other properties retain their defaults
for (const prop in DEFAULTS) {
if (prop != 'text') {
assert_equals(utt[prop], DEFAULTS[prop], prop);
}
}
}, 'new SpeechSynthesisUtterance("hello") text and defaults');
test(function() {
const utt = new SpeechSynthesisUtterance(null);
assert_equals(utt.text, 'null');
}, 'new SpeechSynthesisUtterance(null)');
test(function() {
const utt = new SpeechSynthesisUtterance(undefined);
// See https://github.com/w3c/speech-api/pull/48.
assert_equals(utt.text, '');
}, 'new SpeechSynthesisUtterance(undefined)');
test(function() {
const utt = new SpeechSynthesisUtterance();
utt.text = 'word';
assert_equals(utt.text, 'word');
}, 'SpeechSynthesisUtterance text setter');
// TODO: setters https://github.com/w3c/speech-api/issues/29
</script>