diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/components/narrate/test/browser_voiceselect.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/components/narrate/test/browser_voiceselect.js')
-rw-r--r-- | toolkit/components/narrate/test/browser_voiceselect.js | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/toolkit/components/narrate/test/browser_voiceselect.js b/toolkit/components/narrate/test/browser_voiceselect.js new file mode 100644 index 000000000..0de6528dd --- /dev/null +++ b/toolkit/components/narrate/test/browser_voiceselect.js @@ -0,0 +1,112 @@ +/* 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 registerCleanupFunction, add_task, is, isnot */ + +"use strict"; + +registerCleanupFunction(teardown); + +add_task(function* testVoiceselectDropdownAutoclose() { + setup(); + + yield spawnInNewReaderTab(TEST_ARTICLE, function* () { + let $ = content.document.querySelector.bind(content.document); + + yield NarrateTestUtils.waitForNarrateToggle(content); + + $(NarrateTestUtils.TOGGLE).click(); + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.POPUP)), + "popup is toggled"); + + ok(!NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options are initially hidden"); + + $(NarrateTestUtils.VOICE_SELECT).click(); + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options are toggled"); + + $(NarrateTestUtils.TOGGLE).click(); + // A focus will follow a real click. + $(NarrateTestUtils.TOGGLE).focus(); + ok(!NarrateTestUtils.isVisible($(NarrateTestUtils.POPUP)), + "narrate popup is dismissed"); + + $(NarrateTestUtils.TOGGLE).click(); + // A focus will follow a real click. + $(NarrateTestUtils.TOGGLE).focus(); + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.POPUP)), + "narrate popup is showing again"); + ok(!NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options are hidden after popup comes back"); + }); +}); + +add_task(function* testVoiceselectLabelChange() { + setup(); + + yield spawnInNewReaderTab(TEST_ARTICLE, function* () { + let $ = content.document.querySelector.bind(content.document); + + yield NarrateTestUtils.waitForNarrateToggle(content); + + $(NarrateTestUtils.TOGGLE).click(); + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.POPUP)), + "popup is toggled"); + + ok(NarrateTestUtils.selectVoice(content, "urn:moz-tts:fake-direct:lenny"), + "voice selected"); + + let selectedOption = $(NarrateTestUtils.VOICE_SELECTED); + let selectLabel = $(NarrateTestUtils.VOICE_SELECT_LABEL); + + is(selectedOption.textContent, selectLabel.textContent, + "new label matches selected voice"); + }); +}); + +add_task(function* testVoiceselectKeyboard() { + setup(); + + yield spawnInNewReaderTab(TEST_ARTICLE, function* () { + let $ = content.document.querySelector.bind(content.document); + + yield NarrateTestUtils.waitForNarrateToggle(content); + + $(NarrateTestUtils.TOGGLE).click(); + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.POPUP)), + "popup is toggled"); + + let eventUtils = NarrateTestUtils.getEventUtils(content); + + let firstValue = $(NarrateTestUtils.VOICE_SELECTED).dataset.value; + + ok(!NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options initially are hidden"); + + $(NarrateTestUtils.VOICE_SELECT).focus(); + + eventUtils.sendKey("DOWN", content); + + yield ContentTaskUtils.waitForCondition( + () => $(NarrateTestUtils.VOICE_SELECTED).dataset.value != firstValue, + "value changed after pressing DOWN key"); + + eventUtils.sendKey("RETURN", content); + + ok(NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options showing after pressing RETURN"); + + eventUtils.sendKey("UP", content); + + eventUtils.sendKey("RETURN", content); + + ok(!NarrateTestUtils.isVisible($(NarrateTestUtils.VOICE_OPTIONS)), + "voice options hidden after pressing RETURN"); + + yield ContentTaskUtils.waitForCondition( + () => $(NarrateTestUtils.VOICE_SELECTED).dataset.value == firstValue, + "value changed back to original after pressing RETURN"); + }); +}); |