diff options
Diffstat (limited to 'toolkit/content/tests/chrome/test_autocomplete_emphasis.xul')
-rw-r--r-- | toolkit/content/tests/chrome/test_autocomplete_emphasis.xul | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/toolkit/content/tests/chrome/test_autocomplete_emphasis.xul b/toolkit/content/tests/chrome/test_autocomplete_emphasis.xul deleted file mode 100644 index b162742f12..0000000000 --- a/toolkit/content/tests/chrome/test_autocomplete_emphasis.xul +++ /dev/null @@ -1,175 +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 emphasis test" - 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="richautocomplete" type="autocomplete" - autocompletesearch="simple" - onsearchcomplete="checkSearchCompleted();" - autocompletepopup="richpopup"/> -<panel id="richpopup" type="autocomplete-richlistbox" noautofocus="true"/> - -<script class="testbody" type="application/javascript"> -<![CDATA[ - -const ACR = Components.interfaces.nsIAutoCompleteResult; - -// A global variable to hold the search result for the current search. -var resultText = ""; - -// This result can't be constructed in-line, because otherwise we leak memory. -function nsAutoCompleteSimpleResult(aString) -{ - this.searchString = aString; - this.searchResult = ACR.RESULT_SUCCESS; - this.matchCount = 1; -} - -nsAutoCompleteSimpleResult.prototype = { - searchString: null, - searchResult: ACR.RESULT_FAILURE, - defaultIndex: -1, - errorDescription: null, - matchCount: 0, - getValueAt: function() { return resultText; }, - getCommentAt: function() { return this.getValueAt(); }, - getStyleAt: function() { return null; }, - getImageAt: function() { return null; }, - getFinalCompleteValueAt: function() { return this.getValueAt(); }, - getLabelAt: function() { return this.getValueAt(); }, - removeValueAt: function() {} -}; - -// A basic autocomplete implementation that returns the string contained in 'resultText'. -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); - -SimpleTest.waitForExplicitFinish(); -setTimeout(nextTest, 0); - -/* Test cases have the following attributes: - * - search: A search string, to be emphasized in the result. - * - result: A fixed result string, so we can hardcode the expected emphasis. - * - emphasis: A list of chunks that should be emphasized or not, in strict alternation. - * - emphasizeFirst: Whether the first element of 'emphasis' should be emphasized; - * The emphasis of the other elements is defined by the strict alternation rule. - */ -let testcases = [ - { search: "test", - result: "A test string", - emphasis: ["A ", "test", " string"], - emphasizeFirst: false - }, - { search: "tea two", - result: "Tea for two, and two for tea...", - emphasis: ["Tea", " for ", "two", ", and ", "two", " for ", "tea", "..."], - emphasizeFirst: true - }, - { search: "tat", - result: "tatatat", - emphasis: ["tatatat"], - emphasizeFirst: true - }, - { search: "cheval valise", - result: "chevalise", - emphasis: ["chevalise"], - emphasizeFirst: true - } -]; -let test = -1; -let currentTest = null; - -function nextTest() { - test++; - - if (test >= testcases.length) { - // Unregister the factory so that we don't get in the way of other tests - componentManager.unregisterFactory(autoCompleteSimpleID, autoCompleteSimple); - SimpleTest.finish(); - return; - } - - // blur the field to ensure that the popup is closed and that the previous - // search has stopped, then start a new search. - let autocomplete = $("richautocomplete"); - autocomplete.blur(); - autocomplete.focus(); - - currentTest = testcases[test]; - resultText = currentTest.result; - autocomplete.value = currentTest.search; - synthesizeKey("VK_DOWN", {}); -} - -function checkSearchCompleted() { - let autocomplete = $("richautocomplete"); - let result = autocomplete.popup.richlistbox.firstChild; - - for (let attribute of [result._titleText, result._urlText]) { - is(attribute.childNodes.length, currentTest.emphasis.length, - "The element should have the expected number of children."); - for (let i = 0; i < currentTest.emphasis.length; i++) { - let node = attribute.childNodes[i]; - // Emphasized parts strictly alternate. - if ((i % 2 == 0) == currentTest.emphasizeFirst) { - // Check that this part is correctly emphasized. - is(node.nodeName, "span", ". That child should be a span node"); - ok(node.classList.contains("ac-emphasize-text"), ". That child should be emphasized"); - is(node.textContent, currentTest.emphasis[i], ". That emphasis should be as expected."); - } else { - // Check that this part is _not_ emphasized. - is(node.nodeName, "#text", ". That child should be a text node"); - is(node.textContent, currentTest.emphasis[i], ". That text should be as expected."); - } - } - } - - setTimeout(nextTest, 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> |