PageRenderTime 56ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/toolkit/components/search/tests/xpcshell/test_resultDomain.js

https://github.com/arthuredelstein/tor-browser
JavaScript | 79 lines | 60 code | 14 blank | 5 comment | 3 complexity | 96f1ad742ea35720e0bb4537bc839a93 MD5 | raw file
Possible License(s): BSD-2-Clause, AGPL-1.0, MPL-2.0-no-copyleft-exception, Apache-2.0, GPL-2.0, JSON, 0BSD, MPL-2.0, BSD-3-Clause, LGPL-3.0, LGPL-2.1, MIT
  1. /* Any copyright is dedicated to the Public Domain.
  2. * http://creativecommons.org/publicdomain/zero/1.0/ */
  3. /*
  4. * Tests getResultDomain API.
  5. */
  6. "use strict";
  7. const Ci = Components.interfaces;
  8. Components.utils.import("resource://testing-common/httpd.js");
  9. let waitForEngines = new Set([ "Test search engine",
  10. "A second test engine",
  11. "bacon" ]);
  12. function promiseEnginesAdded() {
  13. let deferred = Promise.defer();
  14. let observe = function observe(aSubject, aTopic, aData) {
  15. let engine = aSubject.QueryInterface(Ci.nsISearchEngine);
  16. do_print("Observer: " + aData + " for " + engine.name);
  17. if (aData != "engine-added") {
  18. return;
  19. }
  20. waitForEngines.delete(engine.name);
  21. if (waitForEngines.size > 0) {
  22. return;
  23. }
  24. let engine1 = Services.search.getEngineByName("Test search engine");
  25. do_check_eq(engine1.getResultDomain(), "google.com");
  26. do_check_eq(engine1.getResultDomain("text/html"), "google.com");
  27. do_check_eq(engine1.getResultDomain("application/x-moz-default-purpose"),
  28. "purpose.google.com");
  29. do_check_eq(engine1.getResultDomain("fake-response-type"), "");
  30. let engine2 = Services.search.getEngineByName("A second test engine");
  31. do_check_eq(engine2.getResultDomain(), "duckduckgo.com");
  32. let engine3 = Services.search.getEngineByName("bacon");
  33. do_check_eq(engine3.getResultDomain(), "bacon.moz");
  34. deferred.resolve();
  35. };
  36. Services.obs.addObserver(observe, "browser-search-engine-modified", false);
  37. do_register_cleanup(function cleanup() {
  38. Services.obs.removeObserver(observe, "browser-search-engine-modified");
  39. });
  40. return deferred.promise;
  41. }
  42. function run_test() {
  43. removeMetadata();
  44. updateAppInfo();
  45. run_next_test();
  46. }
  47. add_task(function* check_resultDomain() {
  48. let httpServer = new HttpServer();
  49. httpServer.start(-1);
  50. httpServer.registerDirectory("/", do_get_cwd());
  51. let baseUrl = "http://localhost:" + httpServer.identity.primaryPort;
  52. do_register_cleanup(function cleanup() {
  53. httpServer.stop(function() {});
  54. });
  55. let promise = promiseEnginesAdded();
  56. Services.search.addEngine(baseUrl + "/data/engine.xml",
  57. Ci.nsISearchEngine.DATA_XML,
  58. null, false);
  59. Services.search.addEngine(baseUrl + "/data/engine2.xml",
  60. Ci.nsISearchEngine.DATA_XML,
  61. null, false);
  62. Services.search.addEngineWithDetails("bacon", "", "bacon", "Search Bacon",
  63. "GET", "http://www.bacon.moz/?search={searchTerms}");
  64. yield promise;
  65. });