/* Any copyright is dedicated to the Public Domain. https://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; const kEnabledPref = "accessibility.typeaheadfind.enablesound"; const kSoundURLPref = "accessibility.typeaheadfind.soundURL"; const kWrappedSoundURLPref = "accessibility.typeaheadfind.wrappedSoundURL"; const kClassicSoundURL = "chrome://global/content/notfound.wav"; const { resetSound, playSound } = ChromeUtils.importESModule( "resource://gre/modules/FinderSound.sys.mjs" ); const MockSound = SpecialPowers.MockSound; add_setup(() => { MockSound.init(); resetSound(); registerCleanupFunction(() => MockSound.cleanup()); }); add_task(async function test_notfound_sound_with_preferences() { await SpecialPowers.pushPrefEnv({ set: [ [kSoundURLPref, "beep"], [kWrappedSoundURLPref, ""], [kEnabledPref, true], ], }); // default value MockSound.reset(); playSound("not-found"); SimpleTest.isDeeply(MockSound.played, ["beep"], '"beep" notfound sound'); await SpecialPowers.pushPrefEnv({ set: [[kSoundURLPref, "default"]], }); MockSound.reset(); playSound("not-found"); SimpleTest.isDeeply( MockSound.played, [`(uri)${kClassicSoundURL}`], '"default" notfound sound is a bulit-in wav' ); await SpecialPowers.pushPrefEnv({ set: [[kSoundURLPref, ""]], }); MockSound.reset(); playSound("not-found"); SimpleTest.isDeeply( MockSound.played, [], "Empty notfound sound plays nothing" ); await SpecialPowers.pushPrefEnv({ set: [ [kSoundURLPref, "beep"], [kEnabledPref, false], ], }); MockSound.reset(); playSound("not-found"); SimpleTest.isDeeply( MockSound.played, [], "Disable sound completely (testing: not-found)" ); }); add_task(async function test_wrapped_sound_with_preferences() { await SpecialPowers.pushPrefEnv({ set: [ [kSoundURLPref, "beep"], [kWrappedSoundURLPref, ""], [kEnabledPref, true], ], }); // default value MockSound.reset(); playSound("wrapped"); SimpleTest.isDeeply(MockSound.played, [], "No wrapped sound by default"); await SpecialPowers.pushPrefEnv({ set: [[kWrappedSoundURLPref, "beep"]], }); MockSound.reset(); playSound("wrapped"); SimpleTest.isDeeply(MockSound.played, ["beep"], '"beep" wrapped sound'); await SpecialPowers.pushPrefEnv({ set: [[kWrappedSoundURLPref, "default"]], }); MockSound.reset(); playSound("wrapped"); SimpleTest.isDeeply( MockSound.played, [`(uri)${kClassicSoundURL}`], '"default" wrapped sound is a bulit-in wav' ); await SpecialPowers.pushPrefEnv({ set: [[kWrappedSoundURLPref, ""]], }); MockSound.reset(); playSound("wrapped"); SimpleTest.isDeeply( MockSound.played, [], "Empty wrapped sound plays nothing" ); await SpecialPowers.pushPrefEnv({ set: [ [kWrappedSoundURLPref, "beep"], [kEnabledPref, false], ], }); MockSound.reset(); playSound("wrapped"); SimpleTest.isDeeply( MockSound.played, [], "Disable sound completely (testing: wrapped)" ); });