diff options
Diffstat (limited to 'toolkit/components/autocomplete/tests/unit/test_stopSearch.js')
-rw-r--r-- | toolkit/components/autocomplete/tests/unit/test_stopSearch.js | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/toolkit/components/autocomplete/tests/unit/test_stopSearch.js b/toolkit/components/autocomplete/tests/unit/test_stopSearch.js deleted file mode 100644 index 5ef3454b4..000000000 --- a/toolkit/components/autocomplete/tests/unit/test_stopSearch.js +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -/** - * Purpose of the test is to check that a stopSearch call comes always before a - * startSearch call. - */ - -Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); - - -/** - * Dummy nsIAutoCompleteInput source that returns - * the given list of AutoCompleteSearch names. - * - * Implements only the methods needed for this test. - */ -function AutoCompleteInput(aSearches) -{ - this.searches = aSearches; -} -AutoCompleteInput.prototype = { - constructor: AutoCompleteInput, - minResultsForPopup: 0, - timeout: 10, - searchParam: "", - textValue: "hello", - disableAutoComplete: false, - completeDefaultIndex: false, - set popupOpen(val) { return val; }, // ignore - get popupOpen() { return false; }, - get searchCount() { return this.searches.length; }, - getSearchAt: function(aIndex) { return this.searches[aIndex]; }, - onSearchBegin: function() {}, - onSearchComplete: function() {}, - onTextReverted: function () {}, - onTextEntered: function () {}, - popup: { - selectBy: function() {}, - invalidate: function() {}, - set selectedIndex(val) { return val; }, // ignore - get selectedIndex() { return -1 }, - QueryInterface: XPCOMUtils.generateQI([Ci.nsIAutoCompletePopup]) - }, - QueryInterface: XPCOMUtils.generateQI([Ci.nsIAutoCompleteInput]) -} - - -/** - * nsIAutoCompleteSearch implementation. - */ -function AutoCompleteSearch(aName) -{ - this.name = aName; -} -AutoCompleteSearch.prototype = { - constructor: AutoCompleteSearch, - stopSearchInvoked: true, - startSearch: function(aSearchString, aSearchParam, aPreviousResult, aListener) - { - print("Check stop search has been called"); - do_check_true(this.stopSearchInvoked); - this.stopSearchInvoked = false; - }, - stopSearch: function() - { - this.stopSearchInvoked = true; - }, - QueryInterface: XPCOMUtils.generateQI([ - Ci.nsIFactory - , Ci.nsIAutoCompleteSearch - ]), - createInstance: function(outer, iid) - { - return this.QueryInterface(iid); - } -} - - -/** - * Helper to register an AutoCompleteSearch with the given name. - * Allows the AutoCompleteController to find the search. - */ -function registerAutoCompleteSearch(aSearch) -{ - let name = "@mozilla.org/autocomplete/search;1?name=" + aSearch.name; - let uuidGenerator = Cc["@mozilla.org/uuid-generator;1"]. - getService(Ci.nsIUUIDGenerator); - let cid = uuidGenerator.generateUUID(); - let desc = "Test AutoCompleteSearch"; - let componentManager = Components.manager - .QueryInterface(Ci.nsIComponentRegistrar); - componentManager.registerFactory(cid, desc, name, aSearch); - // Keep the id on the object so we can unregister later - aSearch.cid = cid; -} - - -/** - * Helper to unregister an AutoCompleteSearch. - */ -function unregisterAutoCompleteSearch(aSearch) { - let componentManager = Components.manager - .QueryInterface(Ci.nsIComponentRegistrar); - componentManager.unregisterFactory(aSearch.cid, aSearch); -} - - -var gTests = [ - function(controller) { - print("handleText"); - controller.input.textValue = "hel"; - controller.handleText(); - }, - function(controller) { - print("handleStartComposition"); - controller.handleStartComposition(); - }, - function(controller) { - print("handleEndComposition"); - controller.handleEndComposition(); - // an input event always follows compositionend event. - controller.handleText(); - }, - function(controller) { - print("handleEscape"); - controller.handleEscape(); - }, - function(controller) { - print("handleEnter"); - controller.handleEnter(false); - }, - function(controller) { - print("handleTab"); - controller.handleTab(); - }, - - function(controller) { - print("handleKeyNavigation"); - controller.handleKeyNavigation(Ci.nsIDOMKeyEvent.DOM_VK_UP); - }, -]; - - -var gSearch; -var gCurrentTest; -function run_test() { - // Make an AutoCompleteSearch that always returns nothing - gSearch = new AutoCompleteSearch("test"); - registerAutoCompleteSearch(gSearch); - - let controller = Cc["@mozilla.org/autocomplete/controller;1"]. - getService(Ci.nsIAutoCompleteController); - - // Make an AutoCompleteInput that uses our search. - let input = new AutoCompleteInput([gSearch.name]); - controller.input = input; - - input.onSearchBegin = function() { - do_execute_soon(function() { - gCurrentTest(controller); - }); - }; - input.onSearchComplete = function() { - run_next_test(controller); - } - - // Search is asynchronous, so don't let the test finish immediately - do_test_pending(); - - run_next_test(controller); -} - -function run_next_test(controller) { - if (gTests.length == 0) { - unregisterAutoCompleteSearch(gSearch); - controller.stopSearch(); - controller.input = null; - do_test_finished(); - return; - } - - gCurrentTest = gTests.shift(); - controller.startSearch("hello"); -} |