diff options
Diffstat (limited to 'toolkit/components/narrate/test/browser_narrate.js')
-rw-r--r-- | toolkit/components/narrate/test/browser_narrate.js | 137 |
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); - }); -}); |