test_internalsearchenginesservice.js
Go to the documentation of this file.
1 /*
2 //
3 // BEGIN NIGHTINGALE GPL
4 //
5 // This file is part of the Nightingale web player.
6 //
7 // http://getnightingale.com
8 //
9 // This file may be licensed under the terms of of the
10 // GNU General Public License Version 2 (the "GPL").
11 //
12 // Software distributed under the License is distributed
13 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
14 // express or implied. See the GPL for the specific language
15 // governing rights and limitations.
16 //
17 // You should have received a copy of the GPL along with this
18 // program. If not, go to http://www.gnu.org/licenses/gpl.html
19 // or write to the Free Software Foundation, Inc.,
20 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 //
22 // END NIGHTINGALE GPL
23 //
24 */
25 
30 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
31 
32 if (typeof(Cc) == "undefined")
33  this.Cc = Components.classes;
34 if (typeof(Ci) == "undefined")
35  this.Ci = Components.interfaces;
36 
37 const testEngine1 = {
38  name: "test_engine-1",
39  contractId: "songbird-internal-search",
40  url: "http://google.com/?q="
41 };
42 
43 function runTest() {
44  var iseService = Cc["@getnightingale.com/Nightingale/internal-search-service;1"].getService(Ci.ngIInternalSearchEnginesService);
45  var searchService = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
46  assertTrue(iseService, "Couldn't get an instance of the Internal Search Service");
47  //assertTrue(searchService.isInitialized, "Search service not inititalized");
48 
49  assertTrue(!searchService.getEngineByName(testEngine1.name), "Engine already exists, please check your build configuration");
50 
51  var thrown = false;
52  try {
53  iseService.registerInternalSearchEngine(testEngine1.name, "doesnt-exist");
54  }
55  catch(error) {
56  thrown = true;
57  }
58  assertTrue(thrown, "Even though the given contractID doesn't implement sbISearchEngine, no error was thrown");
59  assertEqual(iseService.getInternalSearchEngine(testEngine1.name), null, "Engine was registered even though the registration shouldn't have taken place");
60 
61  assertTrue(!iseService.registerInternalSearchEngine(testEngine1.name, testEngine1.contractId), "Internal Search Engine could be registered, even though no engine with those properties has been registered");
62  assertEqual(iseService.getInternalSearchEngine(testEngine1.name), null, "Engine was registered even though the registration supposedly failed");
63 
64  searchService.addEngineWithDetails(testEngine1.name, null, null, testEngine1.name, "get", testEngine1.url);
65  assertTrue(searchService.getEngineByName(testEngine1.name), "Test engine was not registered in browser search provider");
66 
67  assertTrue(iseService.registerInternalSearchEngine(testEngine1.name, testEngine1.contractId), "Internal Search Engine could not be registered, even though the given engine exists");
68  assertTrue(!iseService.registerInternalSearchEngine(testEngine1.name, testEngine1.contractId), "Could reregister internal search engine, even though it has just been registered");
69 
70  assertTrue(iseService.getInternalSearchEngine(testEngine1.name), "Test Engine was not found, even though successfull registered");
71 
72  var internalSearchEngine, querySuccessfull = true;
73  try {
74  internalSearchEngine = iseService.getInternalSearchEngine(testEngine1.name).QueryInterface(Ci.ngIInternalSearchEngine);
75  }
76  catch(e) {
77  querySuccessfull = false;
78  }
79  assertTrue(querySuccessfull, "Could not get Internal Search Engine from getInernalSearchEngine return value");
80  assertEqual(internalSearchEngine.contractID, testEngine1.contractId, "ContracID of registered test engine does not match");
81  assertTrue(!internalSearchEngine.liveSeach, "Live search is enabled, even though it should default to false");
82 
83  iseService.unregisterInternalSearchEngine(testEngine1.name);
84  assertEqual(iseService.getInternalSearchEngine(testEngine1.name), null, "Internal Search Engine still registered, even though it has been unregistered");
85 
86  assertTrue(iseService.registerInternalSearchEngine(testEngine1.name, testEngine1.contractId, true), "Internal Search Engine could not be registered");
87  assertTrue(iseService.getInternalSearchEngine(testEngine1.name).QueryInterface(Ci.ngIInternalSearchEngine).liveSearch, "Live seach is false, even though it has been set to true");
88 
89  iseService.unregisterInternalSearchEngine(testEngine1.name);
90  searchService.removeEngine(searchService.getEngineByName(testEngine1.name));
91 
92  return;
93 }
const Cc
function assertTrue(aTest, aMessage)
function assertEqual(aExpected, aActual, aMessage)
return null
Definition: FeedWriter.js:1143
function runTest()
Advanced DataRemote unit tests.
function url(spec)
const Ci