diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_autocomplete3.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_autocomplete3.xul | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/toolkit/content/tests/chrome/test_autocomplete3.xul b/toolkit/content/tests/chrome/test_autocomplete3.xul deleted file mode 100644 index 953fd15c8..000000000 --- a/toolkit/content/tests/chrome/test_autocomplete3.xul +++ /dev/null @@ -1,188 +0,0 @@ -<?xml version="1.0"?> -<?xml-stylesheet href="chrome://global/skin" type="text/css"?> -<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> - -<window title="Autocomplete Widget Test 3" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> - - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> - -<textbox id="autocomplete" type="autocomplete" - autocompletesearch="simple" - onsearchcomplete="checkResult();"/> - -<script class="testbody" type="application/javascript"> -<![CDATA[ - -// Set to indicate whether or not we want autoCompleteSimple to return a result -var returnResult = true; - -const ACR = Components.interfaces.nsIAutoCompleteResult; - -// This result can't be constructed in-line, because otherwise we leak memory. -function nsAutoCompleteSimpleResult(aString) -{ - this.searchString = aString; - if (returnResult) { - this.searchResult = ACR.RESULT_SUCCESS; - this.matchCount = 1; - this._param = "Result"; - } -} - -nsAutoCompleteSimpleResult.prototype = { - _param: "", - searchString: null, - searchResult: ACR.RESULT_FAILURE, - defaultIndex: 0, - errorDescription: null, - matchCount: 0, - getValueAt: function() { return this._param; }, - getCommentAt: function() { return null; }, - getStyleAt: function() { return null; }, - getImageAt: function() { return null; }, - getFinalCompleteValueAt: function() { return this.getValueAt(); }, - getLabelAt: function() { return null; }, - removeValueAt: function() {} -}; - -// A basic autocomplete implementation that either returns one result or none -var autoCompleteSimpleID = Components.ID("0a2afbdb-f30e-47d1-9cb1-0cd160240aca"); -var autoCompleteSimpleName = "@mozilla.org/autocomplete/search;1?name=simple" -var autoCompleteSimple = { - QueryInterface: function(iid) { - if (iid.equals(Components.interfaces.nsISupports) || - iid.equals(Components.interfaces.nsIFactory) || - iid.equals(Components.interfaces.nsIAutoCompleteSearch)) - return this; - - throw Components.results.NS_ERROR_NO_INTERFACE; - }, - - createInstance: function(outer, iid) { - return this.QueryInterface(iid); - }, - - startSearch: function(aString, aParam, aResult, aListener) { - var result = new nsAutoCompleteSimpleResult(aString); - aListener.onSearchResult(this, result); - }, - - stopSearch: function() {} -}; - -var componentManager = Components.manager - .QueryInterface(Components.interfaces.nsIComponentRegistrar); -componentManager.registerFactory(autoCompleteSimpleID, "Test Simple Autocomplete", - autoCompleteSimpleName, autoCompleteSimple); - - -// Test Bug 325842 - completeDefaultIndex - -SimpleTest.waitForExplicitFinish(); -setTimeout(startTest, 0); - -var currentTest = 0; - -// Note the entries for these tests (key) are incremental. -const tests = [ - { completeDefaultIndex: "false", key: "r", result: "r", - start: 1, end: 1 }, - { completeDefaultIndex: "true", key: "e", result: "result", - start: 2, end: 6 }, - { completeDefaultIndex: "true", key: "t", result: "ret >> Result", - start: 3, end: 13 } -]; - -function startTest() { - var autocomplete = $("autocomplete"); - - // These should not be set by default. - is(autocomplete.hasAttribute("completedefaultindex"), false, - "completedefaultindex not set by default"); - - autocomplete.completeDefaultIndex = "true"; - - is(autocomplete.getAttribute("completedefaultindex"), "true", - "completedefaultindex attribute set correctly"); - is(autocomplete.completeDefaultIndex, true, - "autoFill getter returned correctly"); - - autocomplete.completeDefaultIndex = "false"; - - is(autocomplete.getAttribute("completedefaultindex"), "false", - "completedefaultindex attribute set to false correctly"); - is(autocomplete.completeDefaultIndex, false, - "completeDefaultIndex getter returned false correctly"); - - checkNext(); -} - -function checkNext() { - var autocomplete = $("autocomplete"); - - autocomplete.completeDefaultIndex = tests[currentTest].completeDefaultIndex; - autocomplete.focus(); - - synthesizeKey(tests[currentTest].key, {}); -} - -function checkResult() { - var autocomplete = $("autocomplete"); - var style = window.getComputedStyle(autocomplete, ""); - - is(autocomplete.value, tests[currentTest].result, - "Test " + currentTest + ": autocomplete.value should equal '" + - tests[currentTest].result + "'"); - - is(autocomplete.selectionStart, tests[currentTest].start, - "Test " + currentTest + ": autocomplete selection should start at " + - tests[currentTest].start); - - is(autocomplete.selectionEnd, tests[currentTest].end, - "Test " + currentTest + ": autocomplete selection should end at " + - tests[currentTest].end); - - ++currentTest; - - if (currentTest < tests.length) - setTimeout(checkNext, 0); - else { - // TODO (bug 494809): Autocomplete-in-the-middle should take in count RTL - // and complete on VK_RIGHT or VK_LEFT based on that. It should also revert - // what user has typed to far if he moves in the opposite direction. - if (autocomplete.value.indexOf(">>") == -1) { - // Test result if user accepts autocomplete suggestion. - synthesizeKey("VK_RIGHT", {}); - is(autocomplete.value, "Result", - "Test complete: autocomplete.value should equal 'Result'"); - is(autocomplete.selectionStart, 6, - "Test complete: autocomplete selection should start at 6"); - is(autocomplete.selectionEnd, 6, - "Test complete: autocomplete selection should end at 6"); - } - - setTimeout(function() { - // Unregister the factory so that we don't get in the way of other tests - componentManager.unregisterFactory(autoCompleteSimpleID, autoCompleteSimple); - SimpleTest.finish(); - }, 0); - } -} - -]]> -</script> - -<body xmlns="http://www.w3.org/1999/xhtml"> -<p id="display"> -</p> -<div id="content" style="display: none"> -</div> -<pre id="test"> -</pre> -</body> - -</window> |