summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js')
-rw-r--r--browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js221
1 files changed, 221 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js b/browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js
new file mode 100644
index 0000000000..00cbe6c4e1
--- /dev/null
+++ b/browser/components/urlbar/tests/quicksuggest/browser/browser_telemetry_gleanEmptyStrings.js
@@ -0,0 +1,221 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * This file tests that Glean handles empty request IDs properly.
+ */
+
+"use strict";
+
+ChromeUtils.defineESModuleGetters(this, {
+ CONTEXTUAL_SERVICES_PING_TYPES:
+ "resource:///modules/PartnerLinkAttribution.sys.mjs",
+});
+
+const { TELEMETRY_SCALARS } = UrlbarProviderQuickSuggest;
+
+const MERINO_RESULT = {
+ block_id: 1,
+ url: "https://example.com/sponsored",
+ title: "Sponsored suggestion",
+ keywords: ["sponsored"],
+ click_url: "https://example.com/click",
+ impression_url: "https://example.com/impression",
+ advertiser: "testadvertiser",
+ iab_category: "22 - Shopping",
+ provider: "adm",
+ is_sponsored: true,
+};
+
+const suggestion_type = "sponsored";
+const index = 1;
+const position = index + 1;
+
+// Trying to avoid timeouts in TV mode.
+requestLongerTimeout(3);
+
+add_setup(async function () {
+ await setUpTelemetryTest({
+ merinoSuggestions: [MERINO_RESULT],
+ });
+ MerinoTestUtils.server.response.body.request_id = "";
+});
+
+// sponsored
+add_task(async function sponsored() {
+ let match_type = "firefox-suggest";
+ let source = "merino";
+
+ let improve_suggest_experience_checked = true;
+
+ await doTelemetryTest({
+ index,
+ suggestion: MERINO_RESULT,
+ // impression-only
+ impressionOnly: {
+ scalars: {
+ [TELEMETRY_SCALARS.IMPRESSION_SPONSORED]: position,
+ },
+ event: {
+ category: QuickSuggest.TELEMETRY_EVENT_CATEGORY,
+ method: "engagement",
+ object: "impression_only",
+ extra: {
+ suggestion_type,
+ match_type,
+ position: position.toString(),
+ },
+ },
+ ping: {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_IMPRESSION,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ is_clicked: false,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ request_id: "",
+ },
+ },
+ },
+ // click
+ click: {
+ scalars: {
+ [TELEMETRY_SCALARS.IMPRESSION_SPONSORED]: position,
+ [TELEMETRY_SCALARS.CLICK_SPONSORED]: position,
+ },
+ event: {
+ category: QuickSuggest.TELEMETRY_EVENT_CATEGORY,
+ method: "engagement",
+ object: "click",
+ extra: {
+ suggestion_type,
+ match_type,
+ position: position.toString(),
+ },
+ },
+ pings: [
+ {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_IMPRESSION,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ is_clicked: true,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ request_id: "",
+ },
+ },
+ {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_SELECTION,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ request_id: "",
+ },
+ },
+ ],
+ },
+ commands: [
+ // dismiss
+ {
+ command: "dismiss",
+ scalars: {
+ [TELEMETRY_SCALARS.IMPRESSION_SPONSORED]: position,
+ [TELEMETRY_SCALARS.BLOCK_SPONSORED]: position,
+ },
+ event: {
+ category: QuickSuggest.TELEMETRY_EVENT_CATEGORY,
+ method: "engagement",
+ object: "block",
+ extra: {
+ suggestion_type,
+ match_type,
+ position: position.toString(),
+ },
+ },
+ pings: [
+ {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_IMPRESSION,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ is_clicked: false,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ request_id: "",
+ },
+ },
+ {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_BLOCK,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ iab_category: MERINO_RESULT.iab_category,
+ request_id: "",
+ },
+ },
+ ],
+ },
+ // help
+ {
+ command: "help",
+ scalars: {
+ [TELEMETRY_SCALARS.IMPRESSION_SPONSORED]: position,
+ [TELEMETRY_SCALARS.HELP_SPONSORED]: position,
+ },
+ event: {
+ category: QuickSuggest.TELEMETRY_EVENT_CATEGORY,
+ method: "engagement",
+ object: "help",
+ extra: {
+ suggestion_type,
+ match_type,
+ position: position.toString(),
+ },
+ },
+ pings: [
+ {
+ type: CONTEXTUAL_SERVICES_PING_TYPES.QS_IMPRESSION,
+ payload: {
+ source,
+ match_type,
+ position,
+ suggested_index: -1,
+ suggested_index_relative_to_group: true,
+ improve_suggest_experience_checked,
+ is_clicked: false,
+ block_id: MERINO_RESULT.block_id,
+ advertiser: MERINO_RESULT.advertiser,
+ request_id: "",
+ },
+ },
+ ],
+ },
+ ],
+ });
+});