browser/components/search/test/browser_google.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /*
     5  * Test Google search plugin URLs
     6  */
     8 "use strict";
    10 const BROWSER_SEARCH_PREF      = "browser.search.";
    12 const MOZ_PARAM_LOCALE         = /\{moz:locale\}/g;
    13 const MOZ_PARAM_DIST_ID        = /\{moz:distributionID\}/g;
    14 const MOZ_PARAM_OFFICIAL       = /\{moz:official\}/g;
    16 let runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
    17 // Custom search parameters
    18 const MOZ_OFFICIAL = runtime.isOfficialBranding ? "official" : "unofficial";
    20 var google_client;
    21 switch (runtime.defaultUpdateChannel) {
    22 case "beta":
    23   google_client = "firefox-beta";
    24   break;
    25 case "aurora":
    26   google_client = "firefox-aurora";
    27   break;
    28 case "nightly":
    29   google_client = "firefox-nightly";
    30   break;
    31 default:
    32   google_client = "firefox-a";
    33   break;
    34 }
    36 const GOOGLE_CLIENT = google_client;
    37 const MOZ_DISTRIBUTION_ID = runtime.distributionID;
    39 function test() {
    40   let engine = Services.search.getEngineByName("Google");
    41   ok(engine, "Google");
    43   is(Services.search.defaultEngine, engine, "Check that Google is the default search engine");
    45   let distributionID;
    46   try {
    47     distributionID = Services.prefs.getCharPref(BROWSER_SEARCH_PREF + "distributionID");
    48   } catch (ex) {
    49     distributionID = MOZ_DISTRIBUTION_ID;
    50   }
    52   let base = "https://www.google.com/search?q=foo&ie=utf-8&oe=utf-8&aq=t&rls={moz:distributionID}:{moz:locale}:{moz:official}&client=" + GOOGLE_CLIENT;
    53   base = base.replace(MOZ_PARAM_LOCALE, getLocale());
    54   base = base.replace(MOZ_PARAM_DIST_ID, distributionID);
    55   base = base.replace(MOZ_PARAM_OFFICIAL, MOZ_OFFICIAL);
    57   let url;
    59   // Test search URLs (including purposes).
    60   url = engine.getSubmission("foo").uri.spec;
    61   is(url, base, "Check search URL for 'foo'");
    62   url = engine.getSubmission("foo", null, "contextmenu").uri.spec;
    63   is(url, base + "&channel=rcs", "Check context menu search URL for 'foo'");
    64   url = engine.getSubmission("foo", null, "keyword").uri.spec;
    65   is(url, base + "&channel=fflb", "Check keyword search URL for 'foo'");
    66   url = engine.getSubmission("foo", null, "searchbar").uri.spec;
    67   is(url, base + "&channel=sb", "Check search bar search URL for 'foo'");
    68   url = engine.getSubmission("foo", null, "homepage").uri.spec;
    69   is(url, base + "&channel=np&source=hp", "Check homepage search URL for 'foo'");
    70   url = engine.getSubmission("foo", null, "newtab").uri.spec;
    71   is(url, base + "&channel=nts", "Check newtab search URL for 'foo'");
    73   // Check search suggestion URL.
    74   url = engine.getSubmission("foo", "application/x-suggestions+json").uri.spec;
    75   is(url, "https://www.google.com/complete/search?client=firefox&q=foo", "Check search suggestion URL for 'foo'");
    77   // Check all other engine properties.
    78   const EXPECTED_ENGINE = {
    79     name: "Google",
    80     alias: null,
    81     description: "Google Search",
    82     searchForm: "https://www.google.com/",
    83     type: Ci.nsISearchEngine.TYPE_MOZSEARCH,
    84     hidden: false,
    85     wrappedJSObject: {
    86       queryCharset: "UTF-8",
    87       "_iconURL": "data:image/x-icon;base64,AAABAAIAEBAAAAAAAAB9AQAAJgAAACAgAAAAAAAA8gIAAKMBAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAFESURBVDjLpZNJSwNBEIXnt4lE4kHxovgT9BDwJHqPy0HEEOJBiAuCRg+KUdC4QS4KrpC4gCBGE3NQ48JsnZ6eZ3UOM6gjaePhQU93v6+qq2q0pqgeJj2S8EdJT1hr0OxBtKCD5iEd8QxDYpvhvOBAuMDKURX9C9aPu4GA1GEVkzvMg10UBfYveWAWgYAP00V01fa+R9M2bA51wJvhIn3qR+ybt3D3JNQBE5sMjCIOLFpoHzOwdsLRO22qA6R6kiZiWwxUvy/PUQZIhYZ1vFM9cvcOOsYNdcBgysISdSJBnZjJMlR0Fw8vAp0xoz5gao/h+NZBy4i/10XGwrPA+hmvDyhVRG2Avu/LwcrkFADZa16L1h330w1RNgc3DiJzCpPYRm1bpveXX11clQR28xwblHpk1vq1iP/5mcoS0CoXDZiL0vsJ+dzfl+3T/VYAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAK5SURBVFjDxVfrSxRRFJ9/Jta/oyWjF5XQm6D6EkHRgygIIgjUTcueVgqVWSRRkppEUQYWWB8ye1iGWilWlo/Ude489s7M6Zw7D9dlt53dmd29cFiWvXvO77x+51xpaaUsoSxBaUWZQ4ECy5xji2xKZDyCMlMEw6lCNiOSgwZKJK1SkcKeSealfP64t0mBjl4Ow39MkDUL0p2RSROOtqhZdeUEYM1pBl39XCg/fEeFtWcY7G9W4csvUxjlBkCsQ4Nt9QyWVfvT6RsAKXw3aoDGATZeYIt+W1kjw7cJG0RctWDTRebbKd8A6h5pwsDb70ba3w/eUr3wt/cmwgfw6Yft4TNMQaY7o1P2ncm4FT4ANQH/jQBJ2xv7kqIXEADDql8eS3+n8bku7oxNm+EDIM/dU92upb3T/NJGeaNbDx/AsbsLRUY5Xn92caWXY5d8RV6gWllxSg4fAEnTC90DQW13BLlgXR2D3dcUeDVkwOthA1bXspxILWcm3HdThcfvufB26LcJpkOEAz9NKI/lzqpSEC7feol5EWnpSeSlIxCALUkApmULdjUqxQVAQnl3D/X/yQda4QBEq2TYc12By091MQ17Bg3R88nHKlQbVmHvj89awNBLYrwT9zXY2aBAxTkGFdiSxP/Jp6FLDw+AS7GfsdJTJ2EqSO5khD43nGfBARy/ZxOQgZHe7GPM1jzUvChUtmnBAXQPcKGMJp3fdFGq6NByEhiAO4b/YptFfQJwNyQ/bZkVQGcf90Ja25ndIyrKBOa/f8wIpwi3X1G8UcxNu7ozUS7tiH0jBswwS3RIaF1w6LYKU/ML2+8sGnjygQswtKrVIy/Qd9qQP6LnO64q4fPAKpxyZIymHo1jWk6p1ag2BsdNwQMHcC+M5kHFJX+YlPxpVlbCx2mZ5DzPI04k4kUwHHdskU3pH76iftG8yWlkAAAAAElFTkSuQmCC",
    88       _urls : [
    89         {
    90           type: "application/x-suggestions+json",
    91           method: "GET",
    92           template: "https://www.google.com/complete/search?client=firefox&q={searchTerms}",
    93           params: "",
    94         },
    95         {
    96           type: "text/html",
    97           method: "GET",
    98           template: "https://www.google.com/search",
    99           params: [
   100             {
   101               "name": "q",
   102               "value": "{searchTerms}",
   103               "purpose": undefined,
   104             },
   105             {
   106               "name": "ie",
   107               "value": "utf-8",
   108               "purpose": undefined,
   109             },
   110             {
   111               "name": "oe",
   112               "value": "utf-8",
   113               "purpose": undefined,
   114             },
   115             {
   116               "name": "aq",
   117               "value": "t",
   118               "purpose": undefined,
   119             },
   120             {
   121               "name": "rls",
   122               "value": "{moz:distributionID}:{moz:locale}:{moz:official}",
   123               "purpose": undefined,
   124             },
   125             {
   126               "name": "client",
   127               "value": GOOGLE_CLIENT,
   128               "purpose": undefined,
   129             },
   130             {
   131               "name": "channel",
   132               "value": "rcs",
   133               "purpose": "contextmenu",
   134             },
   135             {
   136               "name": "channel",
   137               "value": "fflb",
   138               "purpose": "keyword",
   139             },
   140             {
   141               "name": "channel",
   142               "value": "sb",
   143               "purpose": "searchbar",
   144             },
   145             {
   146               "name": "channel",
   147               "value": "np",
   148               "purpose": "homepage",
   149             },
   150             {
   151               "name": "channel",
   152               "value": "nts",
   153               "purpose": "newtab",
   154             },
   155             {
   156               "name": "source",
   157               "value": "hp",
   158               "purpose": "homepage",
   159             },
   160           ],
   161           mozparams: {
   162             "client": {
   163               "name": "client",
   164               "falseValue": "firefox",
   165               "trueValue": GOOGLE_CLIENT,
   166               "condition": "defaultEngine",
   167               "mozparam": true,
   168             },
   169           },
   170         },
   171         {
   172           type: "text/html",
   173           method: "GET",
   174           template: "https://www.google.com/",
   175         },
   176       ],
   177     },
   178   };
   180   isSubObjectOf(EXPECTED_ENGINE, engine, "Google");
   181 }

mercurial