зеркало из https://github.com/mozilla/gecko-dev.git
Bug 438599 - the currentEngine attribute of nsIBrowserSearchService should never be null, r=Mossop.
This commit is contained in:
Родитель
96852f533f
Коммит
2d82cfc143
|
@ -4916,6 +4916,14 @@ SearchService.prototype = {
|
|||
this._currentEngine = this._originalDefaultEngine;
|
||||
if (!this._currentEngine || this._currentEngine.hidden)
|
||||
this._currentEngine = this._getSortedEngines(false)[0];
|
||||
|
||||
if (!this._currentEngine) {
|
||||
// Last resort fallback: unhide the original default engine.
|
||||
this._currentEngine = this._originalDefaultEngine;
|
||||
if (this._currentEngine)
|
||||
this._currentEngine.hidden = false;
|
||||
}
|
||||
|
||||
return this._currentEngine;
|
||||
},
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
function run_test() {
|
||||
do_check_true(Services.search.getVisibleEngines().length > 1);
|
||||
do_check_true(Services.search.isInitialized);
|
||||
|
||||
// Remove the current engine...
|
||||
let currentEngine = Services.search.currentEngine;
|
||||
Services.search.removeEngine(currentEngine);
|
||||
|
||||
// ... and verify a new current engine has been set.
|
||||
do_check_neq(Services.search.currentEngine.name, currentEngine.name);
|
||||
do_check_true(currentEngine.hidden);
|
||||
|
||||
// Remove all the other engines.
|
||||
Services.search.getVisibleEngines().forEach(Services.search.removeEngine);
|
||||
do_check_eq(Services.search.getVisibleEngines().length, 0);
|
||||
|
||||
// Verify the original default engine is used as a fallback and no
|
||||
// longer hidden.
|
||||
do_check_eq(Services.search.currentEngine.name, currentEngine.name);
|
||||
do_check_false(currentEngine.hidden);
|
||||
do_check_eq(Services.search.getVisibleEngines().length, 1);
|
||||
}
|
|
@ -82,3 +82,4 @@ tags = addons
|
|||
[test_selectedEngine.js]
|
||||
[test_geodefaults.js]
|
||||
[test_hidden.js]
|
||||
[test_currentEngine_fallback.js]
|
||||
|
|
Загрузка…
Ссылка в новой задаче