summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html')
-rw-r--r--testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html b/testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html
new file mode 100644
index 0000000000..a7aa2bbf6f
--- /dev/null
+++ b/testing/web-platform/tests/speech-api/SpeechSynthesis-pause-resume.tentative.html
@@ -0,0 +1,50 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<body>
+<script>
+// This test is tentative because timing isn't defined:
+// https://github.com/w3c/speech-api/issues/39
+// https://github.com/w3c/speech-api/issues/40
+async_test(t => {
+ assert_false(speechSynthesis.paused, 'initial paused state');
+
+ test_driver.bless('speechSynthesis.speak', t.step_func(() => {
+ const sentence = `long sentence which will take at least a few seconds to
+ utter so that it's possible to pause and resume before the end`;
+ const utter = new SpeechSynthesisUtterance(sentence);
+ t.add_cleanup(() => speechSynthesis.pause());
+ utter.onerror = t.unreached_func('error event');
+
+ speechSynthesis.speak(utter);
+
+ assert_false(speechSynthesis.paused, 'paused state after speak()');
+
+ utter.onstart = t.step_func(() => {
+ utter.onstart = null;
+ assert_false(speechSynthesis.paused, 'paused state at start event');
+
+ speechSynthesis.pause();
+
+ // paused state changes async, right before the pause event
+ assert_false(speechSynthesis.paused, 'paused state after pause()');
+
+ utter.onpause = t.step_func(() => {
+ utter.onpause = null;
+ assert_true(speechSynthesis.paused, 'paused state at pause event');
+
+ speechSynthesis.resume();
+
+ // paused state changes async, right before the resume event
+ assert_true(speechSynthesis.paused, 'paused state after resume()');
+
+ utter.onresume = t.step_func_done(() => {
+ assert_false(speechSynthesis.paused, 'paused state at resume event');
+ });
+ });
+ });
+ }));
+}, 'speechSynthesis.pause() and resume() state and events');
+</script>