mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
0ca6ecbb33
--HG-- extra : rebase_source : 9cdf65c3570474f543a2e9cdaf9554a62e627559
177 lines
5.5 KiB
JavaScript
177 lines
5.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/*
|
|
* Test Google search plugin URLs
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
const BROWSER_SEARCH_PREF = "browser.search.";
|
|
|
|
const MOZ_PARAM_LOCALE = /\{moz:locale\}/g;
|
|
const MOZ_PARAM_DIST_ID = /\{moz:distributionID\}/g;
|
|
const MOZ_PARAM_OFFICIAL = /\{moz:official\}/g;
|
|
|
|
// Custom search parameters
|
|
#ifdef MOZ_OFFICIAL_BRANDING
|
|
const MOZ_OFFICIAL = "official";
|
|
#else
|
|
const MOZ_OFFICIAL = "unofficial";
|
|
#endif
|
|
|
|
#if MOZ_UPDATE_CHANNEL == beta
|
|
const GOOGLE_CLIENT = "firefox-beta";
|
|
#elif MOZ_UPDATE_CHANNEL == aurora
|
|
const GOOGLE_CLIENT = "firefox-aurora";
|
|
#elif MOZ_UPDATE_CHANNEL == nightly
|
|
const GOOGLE_CLIENT = "firefox-nightly";
|
|
#else
|
|
const GOOGLE_CLIENT = "firefox-a";
|
|
#endif
|
|
|
|
#expand const MOZ_DISTRIBUTION_ID = __MOZ_DISTRIBUTION_ID__;
|
|
|
|
function getLocale() {
|
|
const localePref = "general.useragent.locale";
|
|
return getLocalizedPref(localePref, Services.prefs.getCharPref(localePref));
|
|
}
|
|
|
|
/**
|
|
* Wrapper for nsIPrefBranch::getComplexValue.
|
|
* @param aPrefName
|
|
* The name of the pref to get.
|
|
* @returns aDefault if the requested pref doesn't exist.
|
|
*/
|
|
function getLocalizedPref(aPrefName, aDefault) {
|
|
try {
|
|
return Services.prefs.getComplexValue(aPrefName, Ci.nsIPrefLocalizedString).data;
|
|
} catch (ex) {
|
|
return aDefault;
|
|
}
|
|
|
|
return aDefault;
|
|
}
|
|
|
|
function test() {
|
|
let engine = Services.search.getEngineByName("Google");
|
|
ok(engine, "Google");
|
|
|
|
is(Services.search.originalDefaultEngine, engine, "Check that Google is the default search engine");
|
|
|
|
let distributionID;
|
|
try {
|
|
distributionID = Services.prefs.getCharPref(BROWSER_SEARCH_PREF + "distributionID");
|
|
} catch (ex) {
|
|
distributionID = MOZ_DISTRIBUTION_ID;
|
|
}
|
|
|
|
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;
|
|
base = base.replace(MOZ_PARAM_LOCALE, getLocale());
|
|
base = base.replace(MOZ_PARAM_DIST_ID, distributionID);
|
|
base = base.replace(MOZ_PARAM_OFFICIAL, MOZ_OFFICIAL);
|
|
|
|
let url;
|
|
|
|
// Test search URLs (including purposes).
|
|
url = engine.getSubmission("foo").uri.spec;
|
|
is(url, base, "Check search URL for 'foo'");
|
|
url = engine.getSubmission("foo", null, "contextmenu").uri.spec;
|
|
is(url, base + "&channel=rcs", "Check context menu search URL for 'foo'");
|
|
url = engine.getSubmission("foo", null, "keyword").uri.spec;
|
|
is(url, base + "&channel=fflb", "Check keyword search URL for 'foo'");
|
|
|
|
// Check search suggestion URL.
|
|
url = engine.getSubmission("foo", "application/x-suggestions+json").uri.spec;
|
|
is(url, "https://www.google.com/complete/search?client=firefox&q=foo", "Check search suggestion URL for 'foo'");
|
|
|
|
// Check all other engine properties.
|
|
const EXPECTED_ENGINE = {
|
|
name: "Google",
|
|
alias: null,
|
|
description: "Google Search",
|
|
searchForm: "https://www.google.com/",
|
|
type: Ci.nsISearchEngine.TYPE_MOZSEARCH,
|
|
hidden: false,
|
|
wrappedJSObject: {
|
|
"_iconURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABUUlEQVR42pWTzUsCYRCH9y9zu3SooCCkjhIRRLeIykXokiWCJ7PvDpZRlz6si1lIQZ3SQxQdOhREpgSm0JeQvfu0+i6I7LKLh4F5h5nnnRl+o6jTdHn8omAYbVqhXqvYFXcEBKFDwcoZZB8B4LkEB9cwGGmFKHb01A1EU9JXzfdvDYZi1lwLwBcVAIwsNWPesIwls7gDtB2Z7N9ujVe+IX2LO2AgItB1OL9vJqsmILDrOoK02IkBAdYy4FsQJC5h+VQCHQDWTqYSgo8fuHuRxS4Ae3stQ7UGE5ttAHqCUgfxC7m4ryrowOyeO6CxqHwZxtYFqtYc5+kNan/gDTsAeueEIRj7n/rmRQMwueUAGF0VAAT3rQBTC0Y3DoDOGbm00icML4oWHYSTgo0MFqjlmPpDgqMcFCuQf4erBzjOwXjcriu9qHg0uutO2+es6fl67T9ptebvFRjBVgAAAABJRU5ErkJggg==",
|
|
_urls : [
|
|
{
|
|
type: "application/x-suggestions+json",
|
|
method: "GET",
|
|
template: "https://www.google.com/complete/search?client=firefox&q={searchTerms}",
|
|
params: "",
|
|
},
|
|
{
|
|
type: "text/html",
|
|
method: "GET",
|
|
template: "https://www.google.com/search",
|
|
params: [
|
|
{
|
|
"name": "q",
|
|
"value": "{searchTerms}",
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "ie",
|
|
"value": "utf-8",
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "oe",
|
|
"value": "utf-8",
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "aq",
|
|
"value": "t",
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "rls",
|
|
"value": "{moz:distributionID}:{moz:locale}:{moz:official}",
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "client",
|
|
"value": GOOGLE_CLIENT,
|
|
"purpose": undefined,
|
|
},
|
|
{
|
|
"name": "channel",
|
|
"value": "rcs",
|
|
"purpose": "contextmenu",
|
|
},
|
|
{
|
|
"name": "channel",
|
|
"value": "fflb",
|
|
"purpose": "keyword",
|
|
},
|
|
{
|
|
"name": "channel",
|
|
"value": "np",
|
|
"purpose": "homepage",
|
|
},
|
|
{
|
|
"name": "source",
|
|
"value": "hp",
|
|
"purpose": "homepage",
|
|
},
|
|
],
|
|
mozparams: {
|
|
"client": {
|
|
"name": "client",
|
|
"falseValue": "firefox",
|
|
"trueValue": GOOGLE_CLIENT,
|
|
"condition": "defaultEngine",
|
|
"mozparam": true,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
isSubObjectOf(EXPECTED_ENGINE, engine, "Google");
|
|
}
|