summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/speech-api/SpeechSynthesisUtterance-basics.https.html
blob: 2fd394150e941ccbeb8d63b99e598cc53e55446d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!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>