summaryrefslogtreecommitdiff
path: root/toolkit/content/tests/chrome/test_autocomplete_emphasis.xul
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/chrome/test_autocomplete_emphasis.xul')
-rw-r--r--toolkit/content/tests/chrome/test_autocomplete_emphasis.xul175
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>