diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_autocomplete2.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_autocomplete2.xul | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/toolkit/content/tests/chrome/test_autocomplete2.xul b/toolkit/content/tests/chrome/test_autocomplete2.xul deleted file mode 100644 index 875cddd07a..0000000000 --- a/toolkit/content/tests/chrome/test_autocomplete2.xul +++ /dev/null @@ -1,197 +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 2" - 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 = false; - -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 = "SUCCESS"; - } -} - -nsAutoCompleteSimpleResult.prototype = { - _param: "", - searchString: null, - searchResult: ACR.RESULT_FAILURE, - defaultIndex: -1, - 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 441530 - correctly setting "nomatch" -// Test Bug 441526 - correctly setting style with "highlightnonmatches" - -SimpleTest.waitForExplicitFinish(); -setTimeout(startTest, 0); - -function startTest() { - var autocomplete = $("autocomplete"); - - // Ensure highlightNonMatches can be set correctly. - - // This should not be set by default. - is(autocomplete.hasAttribute("highlightnonmatches"), false, - "highlight nonmatches not set by default"); - - autocomplete.highlightNonMatches = "true"; - - is(autocomplete.getAttribute("highlightnonmatches"), "true", - "highlight non matches attribute set correctly"); - is(autocomplete.highlightNonMatches, true, - "highlight non matches getter returned correctly"); - - autocomplete.highlightNonMatches = "false"; - - is(autocomplete.getAttribute("highlightnonmatches"), "false", - "highlight non matches attribute set to false correctly"); - is(autocomplete.highlightNonMatches, false, - "highlight non matches getter returned false correctly"); - - ok(!autocomplete.popup.hasAttribute("autocompleteinput"), - "autocompleteinput on popup not set by default"); - - check(); -} - -function check() { - var autocomplete = $("autocomplete"); - - // Toggle this value, so we can re-use the one function. - returnResult = !returnResult; - - // blur the field to ensure that the popup is closed and that the previous - // search has stopped, then start a new search. - autocomplete.blur(); - autocomplete.focus(); - synthesizeKey("r", {}); -} - -function checkResult() { - var autocomplete = $("autocomplete"); - var style = window.getComputedStyle(autocomplete, ""); - - if (returnResult) { - // Result was returned, so there should not be a nomatch attribute - is(autocomplete.hasAttribute("nomatch"), false, - "nomatch attribute shouldn't be present here"); - - // Ensure that the style is set correctly whichever way highlightNonMatches - // is set. - autocomplete.highlightNonMatches = "true"; - - isnot(style.getPropertyCSSValue("color").cssText, "rgb(255, 0, 0)", - "not nomatch and highlightNonMatches - should not be red"); - - autocomplete.highlightNonMatches = "false"; - - isnot(style.getPropertyCSSValue("color").cssText, "rgb(255, 0, 0)", - "not nomatch and not highlightNonMatches - should not be red"); - - is (autocomplete.popup.getAttribute("autocompleteinput"), "autocomplete", - "The popup's autocompleteinput attribute is set to the ID of the textbox"); - - setTimeout(check, 0); - } - else { - // No result was returned, so there should be nomatch attribute - is(autocomplete.getAttribute("nomatch"), "true", - "nomatch attribute not correctly set when expected"); - - // Ensure that the style is set correctly whichever way highlightNonMatches - // is set. - autocomplete.highlightNonMatches = "true"; - - is(style.getPropertyCSSValue("color").cssText, "rgb(255, 0, 0)", - "nomatch and highlightNonMatches - should be red"); - - autocomplete.highlightNonMatches = "false"; - - isnot(style.getPropertyCSSValue("color").cssText, "rgb(255, 0, 0)", - "nomatch and not highlightNonMatches - should not be red"); - - ok(!autocomplete.popup.hasAttribute("autocompleteinput"), - "autocompleteinput on popup not set when closed"); - - 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> |