summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/test_autocomplete4.xul
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/chrome/test_autocomplete4.xul')
-rw-r--r--toolkit/content/tests/chrome/test_autocomplete4.xul280
1 files changed, 0 insertions, 280 deletions
diff --git a/toolkit/content/tests/chrome/test_autocomplete4.xul b/toolkit/content/tests/chrome/test_autocomplete4.xul
deleted file mode 100644
index 007e95661..000000000
--- a/toolkit/content/tests/chrome/test_autocomplete4.xul
+++ /dev/null
@@ -1,280 +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 4"
- 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"
- completedefaultindex="true"
-
- onsearchcomplete="searchComplete();"
- autocompletesearch="simple"/>
-
-<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(nextTest, 0);
-
-var currentTest = null;
-
-// Note the entries for these tests (key) are incremental.
-const tests = [
- {
- desc: "HOME key remove selection",
- key: "VK_HOME",
- removeSelection: true,
- result: "re",
- start: 0, end: 0
- },
- {
- desc: "LEFT key remove selection",
- key: "VK_LEFT",
- removeSelection: true,
- result: "re",
- start: 1, end: 1
- },
- { desc: "RIGHT key remove selection",
- key: "VK_RIGHT",
- removeSelection: true,
- result: "re",
- start: 2, end: 2
- },
- { desc: "ENTER key remove selection",
- key: "VK_RETURN",
- removeSelection: true,
- result: "re",
- start: 2, end: 2
- },
- {
- desc: "HOME key",
- key: "VK_HOME",
- removeSelection: false,
- result: "Result",
- start: 0, end: 0
- },
- {
- desc: "LEFT key",
- key: "VK_LEFT",
- removeSelection: false,
- result: "Result",
- start: 5, end: 5
- },
- { desc: "RIGHT key",
- key: "VK_RIGHT",
- removeSelection: false,
- result: "Result",
- start: 6, end: 6
- },
- { desc: "RETURN key",
- key: "VK_RETURN",
- removeSelection: false,
- result: "Result",
- start: 6, end: 6
- },
- { desc: "TAB key should confirm suggestion when forcecomplete is set",
- key: "VK_TAB",
- removeSelection: false,
- forceComplete: true,
- result: "Result",
- start: 6, end: 6
- },
-
- { desc: "RIGHT key complete from middle",
- key: "VK_RIGHT",
- forceComplete: true,
- completeFromMiddle: true,
- result: "Result",
- start: 6, end: 6
- },
- {
- desc: "RIGHT key w/ minResultsForPopup=2",
- key: "VK_RIGHT",
- removeSelection: false,
- minResultsForPopup: 2,
- result: "Result",
- start: 6, end: 6
- },
-];
-
-function nextTest() {
- if (!tests.length) {
- // No more tests to run, finish.
- setTimeout(function() {
- // Unregister the factory so that we don't get in the way of other tests
- componentManager.unregisterFactory(autoCompleteSimpleID, autoCompleteSimple);
- SimpleTest.finish();
- }, 0);
- return;
- }
-
- var autocomplete = $("autocomplete");
- autocomplete.value = "";
- currentTest = tests.shift();
-
- // HOME key works differently on Mac, so we skip tests using it.
- if (currentTest.key == "VK_HOME" && navigator.platform.indexOf("Mac") != -1)
- nextTest();
- else
- setTimeout(runCurrentTest, 0);
-}
-
-function runCurrentTest() {
- var autocomplete = $("autocomplete");
- if ("minResultsForPopup" in currentTest)
- autocomplete.setAttribute("minresultsforpopup", currentTest.minResultsForPopup)
- else
- autocomplete.removeAttribute("minresultsforpopup");
-
- autocomplete.focus();
-
- if (!currentTest.completeFromMiddle) {
- synthesizeKey("r", {});
- synthesizeKey("e", {});
- }
- else {
- synthesizeKey("l", {});
- synthesizeKey("t", {});
- }
-}
-
-function searchComplete() {
- var autocomplete = $("autocomplete");
- autocomplete.setAttribute("forcecomplete", currentTest.forceComplete ? true : false);
-
- if (currentTest.completeFromMiddle) {
- if (!currentTest.forceComplete) {
- synthesizeKey(currentTest.key, {});
- }
- else if (!/ >> /.test(autocomplete.value)) {
- // At this point we should have a value like "lt >> Result" showing.
- throw new Error("Expected an middle-completed value, got " + autocomplete.value);
- }
-
- // For forceComplete a blur should cause a value from the results to get
- // completed to. E.g. "lt >> Result" will turn into "Result".
- if (currentTest.forceComplete)
- autocomplete.blur();
-
- checkResult();
- return;
- }
-
- is(autocomplete.value, "result",
- "Test '" + currentTest.desc + "': autocomplete.value should equal 'result'");
-
- if (autocomplete.selectionStart == 2) { // Finished inserting "re" string.
- if (currentTest.removeSelection) {
- // remove current selection
- synthesizeKey("VK_DELETE", {});
- }
-
- synthesizeKey(currentTest.key, {});
-
- checkResult();
- }
-}
-
-function checkResult() {
- var autocomplete = $("autocomplete");
-
- is(autocomplete.value, currentTest.result,
- "Test '" + currentTest.desc + "': autocomplete.value should equal '" +
- currentTest.result + "'");
-
- is(autocomplete.selectionStart, currentTest.start,
- "Test '" + currentTest.desc + "': autocomplete selection should start at " +
- currentTest.start);
-
- is(autocomplete.selectionEnd, currentTest.end,
- "Test '" + currentTest.desc + "': autocomplete selection should end at " +
- currentTest.end);
-
- 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>