mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 09:18:42 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
165
toolkit/components/search/tests/xpcshell/test_selectedEngine.js
Normal file
165
toolkit/components/search/tests/xpcshell/test_selectedEngine.js
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
Components.utils.import("resource://gre/modules/osfile.jsm");
|
||||
|
||||
const kSelectedEnginePref = "browser.search.selectedEngine";
|
||||
|
||||
// Check that the default engine matches the defaultenginename pref
|
||||
add_task(function* test_defaultEngine() {
|
||||
yield asyncInit();
|
||||
|
||||
do_check_eq(Services.search.currentEngine.name, getDefaultEngineName());
|
||||
});
|
||||
|
||||
// Giving prefs a user value shouldn't change the selected engine.
|
||||
add_task(function* test_selectedEngine() {
|
||||
let defaultEngineName = getDefaultEngineName();
|
||||
// Test the selectedEngine pref.
|
||||
Services.prefs.setCharPref(kSelectedEnginePref, kTestEngineName);
|
||||
|
||||
yield asyncReInit();
|
||||
do_check_eq(Services.search.currentEngine.name, defaultEngineName);
|
||||
|
||||
Services.prefs.clearUserPref(kSelectedEnginePref);
|
||||
|
||||
// Test the defaultenginename pref.
|
||||
Services.prefs.setCharPref(kDefaultenginenamePref, kTestEngineName);
|
||||
|
||||
yield asyncReInit();
|
||||
do_check_eq(Services.search.currentEngine.name, defaultEngineName);
|
||||
|
||||
Services.prefs.clearUserPref(kDefaultenginenamePref);
|
||||
});
|
||||
|
||||
// Setting the search engine should be persisted across restarts.
|
||||
add_task(function* test_persistAcrossRestarts() {
|
||||
// Set the engine through the API.
|
||||
Services.search.currentEngine = Services.search.getEngineByName(kTestEngineName);
|
||||
do_check_eq(Services.search.currentEngine.name, kTestEngineName);
|
||||
yield promiseAfterCache();
|
||||
|
||||
// Check that the a hash was saved.
|
||||
let metadata = yield promiseGlobalMetadata();
|
||||
do_check_eq(metadata.hash.length, 44);
|
||||
|
||||
// Re-init and check the engine is still the same.
|
||||
yield asyncReInit();
|
||||
do_check_eq(Services.search.currentEngine.name, kTestEngineName);
|
||||
|
||||
// Cleanup (set the engine back to default).
|
||||
Services.search.resetToOriginalDefaultEngine();
|
||||
do_check_eq(Services.search.currentEngine.name, getDefaultEngineName());
|
||||
});
|
||||
|
||||
// An engine set without a valid hash should be ignored.
|
||||
add_task(function* test_ignoreInvalidHash() {
|
||||
// Set the engine through the API.
|
||||
Services.search.currentEngine = Services.search.getEngineByName(kTestEngineName);
|
||||
do_check_eq(Services.search.currentEngine.name, kTestEngineName);
|
||||
yield promiseAfterCache();
|
||||
|
||||
// Then mess with the file (make the hash invalid).
|
||||
let metadata = yield promiseGlobalMetadata();
|
||||
metadata.hash = "invalid";
|
||||
yield promiseSaveGlobalMetadata(metadata);
|
||||
|
||||
// Re-init the search service, and check that the json file is ignored.
|
||||
yield asyncReInit();
|
||||
do_check_eq(Services.search.currentEngine.name, getDefaultEngineName());
|
||||
});
|
||||
|
||||
// Resetting the engine to the default should remove the saved value.
|
||||
add_task(function* test_settingToDefault() {
|
||||
// Set the engine through the API.
|
||||
Services.search.currentEngine = Services.search.getEngineByName(kTestEngineName);
|
||||
do_check_eq(Services.search.currentEngine.name, kTestEngineName);
|
||||
yield promiseAfterCache();
|
||||
|
||||
// Check that the current engine was saved.
|
||||
let metadata = yield promiseGlobalMetadata();
|
||||
do_check_eq(metadata.current, kTestEngineName);
|
||||
|
||||
// Then set the engine back to the default through the API.
|
||||
Services.search.currentEngine =
|
||||
Services.search.getEngineByName(getDefaultEngineName());
|
||||
yield promiseAfterCache();
|
||||
|
||||
// Check that the current engine is no longer saved in the JSON file.
|
||||
metadata = yield promiseGlobalMetadata();
|
||||
do_check_eq(metadata.current, "");
|
||||
});
|
||||
|
||||
add_task(function* test_resetToOriginalDefaultEngine() {
|
||||
let defaultName = getDefaultEngineName();
|
||||
do_check_eq(Services.search.currentEngine.name, defaultName);
|
||||
|
||||
Services.search.currentEngine =
|
||||
Services.search.getEngineByName(kTestEngineName);
|
||||
do_check_eq(Services.search.currentEngine.name, kTestEngineName);
|
||||
yield promiseAfterCache();
|
||||
|
||||
Services.search.resetToOriginalDefaultEngine();
|
||||
do_check_eq(Services.search.currentEngine.name, defaultName);
|
||||
yield promiseAfterCache();
|
||||
});
|
||||
|
||||
add_task(function* test_fallback_kept_after_restart() {
|
||||
// Set current engine to a default engine that isn't the original default.
|
||||
let builtInEngines = Services.search.getDefaultEngines();
|
||||
let defaultName = getDefaultEngineName();
|
||||
let nonDefaultBuiltInEngine;
|
||||
for (let engine of builtInEngines) {
|
||||
if (engine.name != defaultName) {
|
||||
nonDefaultBuiltInEngine = engine;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Services.search.currentEngine = nonDefaultBuiltInEngine;
|
||||
do_check_eq(Services.search.currentEngine.name, nonDefaultBuiltInEngine.name);
|
||||
yield promiseAfterCache();
|
||||
|
||||
// Remove that engine...
|
||||
Services.search.removeEngine(nonDefaultBuiltInEngine);
|
||||
// The engine being a default (built-in) one, it should be hidden
|
||||
// rather than actually removed.
|
||||
do_check_true(nonDefaultBuiltInEngine.hidden);
|
||||
|
||||
// Using the currentEngine getter should force a fallback to the
|
||||
// original default engine.
|
||||
do_check_eq(Services.search.currentEngine.name, defaultName);
|
||||
|
||||
// Restoring the default engines should unhide our built-in test
|
||||
// engine, but not change the value of currentEngine.
|
||||
Services.search.restoreDefaultEngines();
|
||||
do_check_false(nonDefaultBuiltInEngine.hidden);
|
||||
do_check_eq(Services.search.currentEngine.name, defaultName);
|
||||
yield promiseAfterCache();
|
||||
|
||||
// After a restart, the currentEngine value should still be unchanged.
|
||||
yield asyncReInit();
|
||||
do_check_eq(Services.search.currentEngine.name, defaultName);
|
||||
});
|
||||
|
||||
|
||||
function run_test() {
|
||||
removeMetadata();
|
||||
removeCacheFile();
|
||||
|
||||
do_check_false(Services.search.isInitialized);
|
||||
|
||||
let engineDummyFile = gProfD.clone();
|
||||
engineDummyFile.append("searchplugins");
|
||||
engineDummyFile.append("test-search-engine.xml");
|
||||
let engineDir = engineDummyFile.parent;
|
||||
engineDir.create(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
|
||||
|
||||
do_get_file("data/engine.xml").copyTo(engineDir, "engine.xml");
|
||||
|
||||
do_register_cleanup(function() {
|
||||
removeMetadata();
|
||||
removeCacheFile();
|
||||
});
|
||||
|
||||
run_next_test();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue