toolkit/components/places/tests/unit/test_priorityUrlProvider.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 Cu.import("resource://gre/modules/PriorityUrlProvider.jsm");
     7 function run_test() {
     8   run_next_test();
     9 }
    11 add_task(function* search_engine_match() {
    12   let engine = yield promiseDefaultSearchEngine();
    13   let token = engine.getResultDomain();
    14   let match = yield PriorityUrlProvider.getMatch(token.substr(0, 1));
    15   do_check_eq(match.url, engine.searchForm);
    16   do_check_eq(match.title, engine.name);
    17   do_check_eq(match.iconUrl, engine.iconURI ? engine.iconURI.spec : null);
    18   do_check_eq(match.reason, "search");
    19 });
    21 add_task(function* no_match() {
    22   do_check_eq(null, yield PriorityUrlProvider.getMatch("test"));
    23 });
    25 add_task(function* hide_search_engine_nomatch() {
    26   let engine = yield promiseDefaultSearchEngine();
    27   let token = engine.getResultDomain();
    28   let promiseTopic = promiseSearchTopic("engine-changed");
    29   Services.search.removeEngine(engine);
    30   yield promiseTopic;
    31   do_check_true(engine.hidden);
    32   do_check_eq(null, yield PriorityUrlProvider.getMatch(token.substr(0, 1)));
    33 });
    35 add_task(function* add_search_engine_match() {
    36   let promiseTopic = promiseSearchTopic("engine-added");
    37   do_check_eq(null, yield PriorityUrlProvider.getMatch("bacon"));
    38   Services.search.addEngineWithDetails("bacon", "", "bacon", "Search Bacon",
    39                                        "GET", "http://www.bacon.moz/?search={searchTerms}");
    40   yield promiseSearchTopic;
    41   let match = yield PriorityUrlProvider.getMatch("bacon");
    42   do_check_eq(match.url, "http://www.bacon.moz");
    43   do_check_eq(match.title, "bacon");
    44   do_check_eq(match.iconUrl, null);
    45   do_check_eq(match.reason, "search");
    46 });
    48 add_task(function* remove_search_engine_nomatch() {
    49   let engine = Services.search.getEngineByName("bacon");
    50   let promiseTopic = promiseSearchTopic("engine-removed");
    51   Services.search.removeEngine(engine);
    52   yield promiseTopic;
    53   do_check_eq(null, yield PriorityUrlProvider.getMatch("bacon"));
    54 });
    56 function promiseDefaultSearchEngine() {
    57   let deferred = Promise.defer();
    58   Services.search.init( () => {
    59     deferred.resolve(Services.search.defaultEngine);
    60   });
    61   return deferred.promise;
    62 }
    64 function promiseSearchTopic(expectedVerb) {
    65   let deferred = Promise.defer();
    66   Services.obs.addObserver( function observe(subject, topic, verb) {
    67     do_log_info("browser-search-engine-modified: " + verb);
    68     if (verb == expectedVerb) {
    69       Services.obs.removeObserver(observe, "browser-search-engine-modified");
    70       deferred.resolve();
    71     }
    72   }, "browser-search-engine-modified", false);
    73   return deferred.promise;
    74 }

mercurial