summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/searchconfigs/test_amazon.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--toolkit/components/search/tests/xpcshell/searchconfigs/test_amazon.js361
1 files changed, 361 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/searchconfigs/test_amazon.js b/toolkit/components/search/tests/xpcshell/searchconfigs/test_amazon.js
new file mode 100644
index 0000000000..30d4d478f0
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/searchconfigs/test_amazon.js
@@ -0,0 +1,361 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const mainShippedRegions = [
+ "at",
+ "au",
+ "be",
+ "ca",
+ "ch",
+ "cn",
+ "de",
+ "es",
+ "fr",
+ "mc",
+ "gb",
+ "ie",
+ "it",
+ "jp",
+ "nl",
+ "pt",
+ "se",
+ "sm",
+ "us",
+ "va",
+];
+
+const amazondotcomLocales = [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "cy",
+ "da",
+ "el",
+ "en-US",
+ "en-GB",
+ "eo",
+ "es-AR",
+ "eu",
+ "fa",
+ "ga-IE",
+ "gd",
+ "gl",
+ "gn",
+ "hr",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "nb-NO",
+ "nn-NO",
+ "pt-PT",
+ "ro",
+ "si",
+ "sq",
+ "sr",
+ "th",
+ "tl",
+ "trs",
+ "uz",
+];
+
+const test = new SearchConfigTest({
+ identifier: "amazon",
+ default: {
+ // Not default anywhere.
+ },
+ available: {
+ included: [
+ {
+ // The main regions we ship Amazon to. Below this are special cases.
+ regions: mainShippedRegions,
+ },
+ {
+ // Amazon.com ships to all of these locales, excluding the ones where
+ // we ship other items, but it does not matter that they are duplicated
+ // in the available list.
+ locales: {
+ matches: amazondotcomLocales,
+ },
+ },
+ {
+ // Amazon.in
+ regions: ["in"],
+ locales: {
+ matches: ["bn", "gu-IN", "kn", "mr", "pa-IN", "ta", "te", "ur"],
+ },
+ },
+ ],
+ excluded: [
+ {
+ // Extra special case for cn as that only ships to the one locale.
+ regions: ["in"],
+ locales: {
+ matches: amazondotcomLocales,
+ },
+ },
+ ],
+ },
+ details: [
+ {
+ domain: "amazon.com.au",
+ telemetryId: "amazon-au",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["au"],
+ },
+ ],
+ suggestionUrlBase: "https://completion.amazon.com.au/search/complete",
+ suggestUrlCode: "mkt=111172",
+ },
+ {
+ domain: "amazon.ca",
+ telemetryId: "amazon-ca",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["ca"],
+ },
+ ],
+ searchUrlCode: "tag=mozillacanada-20",
+ suggestionUrlBase: "https://completion.amazon.ca/search/complete",
+ suggestUrlCode: "mkt=7",
+ },
+ {
+ domain: "amazon.cn",
+ telemetryId: "amazondotcn",
+ included: [
+ {
+ regions: ["cn"],
+ },
+ ],
+ searchUrlCode: "ix=sunray",
+ noSuggestionsURL: true,
+ },
+ {
+ domain: "amazon.co.jp",
+ telemetryId: "amazon-jp",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["jp"],
+ },
+ ],
+ searchUrlCode: "tag=mozillajapan-fx-22",
+ suggestionUrlBase: "https://completion.amazon.co.jp/search/complete",
+ suggestUrlCode: "mkt=6",
+ },
+ {
+ domain: "amazon.co.uk",
+ telemetryId: "amazon-en-GB",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["gb", "ie"],
+ },
+ ],
+ searchUrlCode: "tag=firefox-uk-21",
+ suggestionUrlBase: "https://completion.amazon.co.uk/search/complete",
+ suggestUrlCode: "mkt=3",
+ },
+ {
+ domain: "amazon.com",
+ telemetryId: "amazondotcom-us",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["us"],
+ },
+ ],
+ searchUrlCode: "tag=moz-us-20",
+ },
+ {
+ domain: "amazon.com",
+ telemetryId: "amazondotcom",
+ aliases: ["@amazon"],
+ included: [
+ {
+ locales: {
+ matches: amazondotcomLocales,
+ },
+ },
+ ],
+ excluded: [{ regions: mainShippedRegions }],
+ searchUrlCode: "tag=mozilla-20",
+ },
+ {
+ domain: "amazon.de",
+ telemetryId: "amazon-de",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["at", "ch", "de"],
+ },
+ ],
+ searchUrlCode: "tag=firefox-de-21",
+ suggestionUrlBase: "https://completion.amazon.de/search/complete",
+ suggestUrlCode: "mkt=4",
+ },
+ {
+ domain: "amazon.es",
+ telemetryId: "amazon-es",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["es", "pt"],
+ },
+ ],
+ searchUrlCode: "tag=mozillaspain-21",
+ suggestionUrlBase: "https://completion.amazon.es/search/complete",
+ suggestUrlCode: "mkt=44551",
+ },
+ {
+ domain: "amazon.fr",
+ telemetryId: "amazon-france",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["fr", "mc"],
+ },
+ {
+ regions: ["be"],
+ locales: {
+ matches: ["fr"],
+ },
+ },
+ ],
+ searchUrlCode: "tag=firefox-fr-21",
+ suggestionUrlBase: "https://completion.amazon.fr/search/complete",
+ suggestUrlCode: "mkt=5",
+ },
+ {
+ domain: "amazon.in",
+ telemetryId: "amazon-in",
+ aliases: ["@amazon"],
+ included: [
+ {
+ locales: {
+ matches: ["bn", "gu-IN", "kn", "mr", "pa-IN", "ta", "te", "ur"],
+ },
+ regions: ["in"],
+ },
+ ],
+ suggestionUrlBase: "https://completion.amazon.in/search/complete",
+ suggestUrlCode: "mkt=44571",
+ },
+ {
+ domain: "amazon.it",
+ telemetryId: "amazon-it",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["it", "sm", "va"],
+ },
+ ],
+ searchUrlCode: "tag=firefoxit-21",
+ suggestionUrlBase: "https://completion.amazon.it/search/complete",
+ suggestUrlCode: "mkt=35691",
+ },
+ {
+ domain: "amazon.nl",
+ telemetryId: "amazon-nl",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["nl"],
+ },
+ ],
+ searchUrlCode: "tag=mozillanether-21",
+ suggestionUrlBase: "https://completion.amazon.nl/search/complete",
+ suggestUrlCode: "mkt=328451",
+ },
+ {
+ domain: "amazon.nl",
+ telemetryId: "amazon-nl",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["be"],
+ },
+ ],
+ excluded: [
+ {
+ locales: {
+ matches: ["fr"],
+ },
+ },
+ ],
+ searchUrlCode: "tag=mozillanether-21",
+ suggestionUrlBase: "https://completion.amazon.nl/search/complete",
+ suggestUrlCode: "mkt=328451",
+ },
+ {
+ domain: "amazon.se",
+ telemetryId: "amazon-se",
+ aliases: ["@amazon"],
+ included: [
+ {
+ regions: ["se"],
+ },
+ ],
+ searchUrlCode: "tag=mozillasweede-21",
+ suggestionUrlBase: "https://completion.amazon.se/search/complete",
+ suggestUrlCode: "mkt=704403121",
+ },
+ ],
+});
+
+add_task(async function setup() {
+ // We only need to do setup on one of the tests.
+ await test.setup("89.0");
+});
+
+add_task(async function test_searchConfig_amazon() {
+ await test.run();
+});
+
+add_task(async function test_searchConfig_amazon_pre89() {
+ AddonTestUtils.createAppInfo(
+ "xpcshell@tests.mozilla.org",
+ "XPCShell",
+ "88.0",
+ "88.0"
+ );
+ // For pre-89, Amazon has a slightly different config.
+ let details = test._config.details.find(
+ d => d.telemetryId == "amazondotcom-us"
+ );
+ details.telemetryId = "amazondotcom";
+ details.searchUrlCode = "tag=mozilla-20";
+
+ // nl not present due to urls that don't work.
+ let availableIn = test._config.available.included;
+ availableIn[0].regions = availableIn[0].regions.filter(
+ r => r != "be" && r != "nl"
+ );
+ availableIn.push({
+ regions: ["be"],
+ locales: {
+ matches: ["fr"],
+ },
+ });
+ // Due to the way the exclusions work, no Amazon present in nl/be in the
+ // dot com locales for pre-89.
+ test._config.available.excluded[0].regions.push("be", "nl");
+ test._config.details = test._config.details.filter(
+ d => d.telemetryId != "amazon-nl"
+ );
+
+ await test.run();
+});