summaryrefslogtreecommitdiffstats
path: root/toolkit/components/autocomplete/tests/unit/test_autocomplete_userContextId.js
blob: c98db7f8fd9f000ebc3e8a6542289070b9ee6900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"use strict";

Cu.import("resource://gre/modules/Promise.jsm");

function AutoCompleteInput(aSearches, aUserContextId) {
  this.searches = aSearches;
  this.userContextId = aUserContextId;
  this.popup.selectedIndex = -1;
}
AutoCompleteInput.prototype = Object.create(AutoCompleteInputBase.prototype);

function AutoCompleteSearch(aName) {
  this.name = aName;
}
AutoCompleteSearch.prototype = Object.create(AutoCompleteSearchBase.prototype);

add_task(function *test_userContextId() {
  let searchParam = yield doSearch("test", 1);
  Assert.equal(searchParam, " user-context-id:1");
});

function doSearch(aString, aUserContextId) {
  let deferred = Promise.defer();
  let search = new AutoCompleteSearch("test");

  search.startSearch = function (aSearchString,
                                 aSearchParam,
                                 aPreviousResult,
                                 aListener) {
    unregisterAutoCompleteSearch(search);
    deferred.resolve(aSearchParam);
  };

  registerAutoCompleteSearch(search);

  let controller = Cc["@mozilla.org/autocomplete/controller;1"].
                   getService(Ci.nsIAutoCompleteController);

  let input = new AutoCompleteInput([ search.name ], aUserContextId);
  controller.input = input;
  controller.startSearch(aString);

  return deferred.promise;
 }