summaryrefslogtreecommitdiffstats
path: root/toolkit/components/narrate/test/browser_narrate.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/narrate/test/browser_narrate.js')
-rw-r--r--toolkit/components/narrate/test/browser_narrate.js137
1 files changed, 0 insertions, 137 deletions
diff --git a/toolkit/components/narrate/test/browser_narrate.js b/toolkit/components/narrate/test/browser_narrate.js
deleted file mode 100644
index b4951ef9f..000000000
--- a/toolkit/components/narrate/test/browser_narrate.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* globals is, isnot, registerCleanupFunction, add_task */
-
-"use strict";
-
-registerCleanupFunction(teardown);
-
-add_task(function* testNarrate() {
- setup();
-
- yield spawnInNewReaderTab(TEST_ARTICLE, function* () {
- let TEST_VOICE = "urn:moz-tts:fake-indirect:teresa";
- let $ = content.document.querySelector.bind(content.document);
-
- yield NarrateTestUtils.waitForNarrateToggle(content);
-
- let popup = $(NarrateTestUtils.POPUP);
- ok(!NarrateTestUtils.isVisible(popup), "popup is initially hidden");
-
- let toggle = $(NarrateTestUtils.TOGGLE);
- toggle.click();
-
- ok(NarrateTestUtils.isVisible(popup), "popup toggled");
-
- let voiceOptions = $(NarrateTestUtils.VOICE_OPTIONS);
- ok(!NarrateTestUtils.isVisible(voiceOptions),
- "voice options are initially hidden");
-
- $(NarrateTestUtils.VOICE_SELECT).click();
- ok(NarrateTestUtils.isVisible(voiceOptions), "voice options pop up");
-
- let prefChanged = NarrateTestUtils.waitForPrefChange("narrate.voice");
- ok(NarrateTestUtils.selectVoice(content, TEST_VOICE),
- "test voice selected");
- yield prefChanged;
-
- ok(!NarrateTestUtils.isVisible(voiceOptions), "voice options hidden again");
-
- NarrateTestUtils.isStoppedState(content, ok);
-
- let promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- $(NarrateTestUtils.START).click();
- let speechinfo = (yield promiseEvent).detail;
- is(speechinfo.voice, TEST_VOICE, "correct voice is being used");
- let paragraph = speechinfo.paragraph;
-
- NarrateTestUtils.isStartedState(content, ok);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- $(NarrateTestUtils.FORWARD).click();
- speechinfo = (yield promiseEvent).detail;
- is(speechinfo.voice, TEST_VOICE, "same voice is used");
- isnot(speechinfo.paragraph, paragraph, "next paragraph is being spoken");
-
- NarrateTestUtils.isStartedState(content, ok);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- $(NarrateTestUtils.BACK).click();
- speechinfo = (yield promiseEvent).detail;
- is(speechinfo.paragraph, paragraph, "first paragraph being spoken");
-
- NarrateTestUtils.isStartedState(content, ok);
-
- paragraph = speechinfo.paragraph;
- $(NarrateTestUtils.STOP).click();
- yield ContentTaskUtils.waitForCondition(
- () => !$(NarrateTestUtils.STOP), "transitioned to stopped state");
- NarrateTestUtils.isStoppedState(content, ok);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- $(NarrateTestUtils.START).click();
- speechinfo = (yield promiseEvent).detail;
- is(speechinfo.paragraph, paragraph, "read same paragraph again");
-
- NarrateTestUtils.isStartedState(content, ok);
-
- let eventUtils = NarrateTestUtils.getEventUtils(content);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- prefChanged = NarrateTestUtils.waitForPrefChange("narrate.rate");
- $(NarrateTestUtils.RATE).focus();
- eventUtils.sendKey("UP", content);
- let newspeechinfo = (yield promiseEvent).detail;
- is(newspeechinfo.paragraph, speechinfo.paragraph, "same paragraph");
- isnot(newspeechinfo.rate, speechinfo.rate, "rate changed");
- yield prefChanged;
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphend");
- $(NarrateTestUtils.STOP).click();
- yield promiseEvent;
-
- yield ContentTaskUtils.waitForCondition(
- () => !$(NarrateTestUtils.STOP), "transitioned to stopped state");
- NarrateTestUtils.isStoppedState(content, ok);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "scroll");
- content.scrollBy(0, 10);
- yield promiseEvent;
- ok(!NarrateTestUtils.isVisible(popup), "popup is hidden after scroll");
-
- toggle.click();
- ok(NarrateTestUtils.isVisible(popup), "popup is toggled again");
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "paragraphstart");
- $(NarrateTestUtils.START).click();
- yield promiseEvent;
- NarrateTestUtils.isStartedState(content, ok);
-
- promiseEvent = ContentTaskUtils.waitForEvent(content, "scroll");
- content.scrollBy(0, -10);
- yield promiseEvent;
- ok(NarrateTestUtils.isVisible(popup), "popup stays visible after scroll");
-
- toggle.click();
- ok(!NarrateTestUtils.isVisible(popup), "popup is dismissed while speaking");
- NarrateTestUtils.isStartedState(content, ok);
-
- // Go forward all the way to the end of the article. We should eventually
- // stop.
- do {
- promiseEvent = Promise.race([
- ContentTaskUtils.waitForEvent(content, "paragraphstart"),
- ContentTaskUtils.waitForEvent(content, "paragraphsdone")]);
- $(NarrateTestUtils.FORWARD).click();
- } while ((yield promiseEvent).type == "paragraphstart");
-
- // This is to make sure we are not actively scrolling when the tab closes.
- content.scroll(0, 0);
-
- yield ContentTaskUtils.waitForCondition(
- () => !$(NarrateTestUtils.STOP), "transitioned to stopped state");
- NarrateTestUtils.isStoppedState(content, ok);
- });
-});