Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
// test for exposure events
"use strict";
// Avoid timeouts in verify mode, especially on "OS X 10.15 WebRender opt" in
// verify mode on Treeherder. This test has taken up to 275231ms on try runs in
// verify mode on that machine.
requestLongerTimeout(15);
add_setup(async function () {
await initExposureTest();
});
add_task(async function engagement() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
],
trigger: doClick,
expectedEvents: [
{ results: "adm_sponsored", terminal: "true", sap: "urlbar_newtab" },
],
});
});
add_task(async function abandonment() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
],
trigger: doBlur,
expectedEvents: [
{ results: "adm_sponsored", terminal: "true", sap: "urlbar_newtab" },
],
});
});
add_task(async function sapUrlbarHandoff() {
// Simulate handoff session.
gURLBar._isHandoffSession = true;
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_sponsored", terminal: "true", sap: "handoff" },
],
});
});
add_task(async function oneExposureResult_shown_matched() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function oneExposureResult_shown_notMatched() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "wikipedia",
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [],
});
});
add_task(async function oneExposureResult_hidden_matched() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function oneExposureResult_hidden_notMatched() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", false],
],
queries: [
{
query: "wikipedia",
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [],
});
});
add_task(async function manyExposureResults_shown_oneMatched_1() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyExposureResults_shown_oneMatched_2() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [{ results: "adm_nonsponsored", terminal: "true" }],
});
});
add_task(async function manyExposureResults_shown_manyMatched() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "amp and wikipedia",
// Only the sponsored result should be visible and recorded since this
// task shows exposures, at most one Suggest result should be shown, and
// sponsored has the higher score.
expectedVisible: ["adm_sponsored"],
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyExposureResults_hidden_oneMatched_1() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyExposureResults_hidden_oneMatched_2() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "wikipedia",
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [{ results: "adm_nonsponsored", terminal: "true" }],
});
});
add_task(async function manyExposureResults_hidden_manyMatched() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "amp and wikipedia",
expectedNotVisible: ["adm_sponsored", "adm_nonsponsored"],
},
],
// Both results should be recorded since this task hides exposures and
// there's no limit on the number of hidden-exposure Suggest results.
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "true,true" },
],
});
});
add_task(async function manyQueries_oneExposureResult_shown_terminal_1() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
},
{
query: "amp",
expectedVisible: ["adm_sponsored"],
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyQueries_oneExposureResult_shown_terminal_2() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
{
query: "amp",
expectedVisible: ["adm_sponsored"],
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyQueries_oneExposureResult_shown_nonTerminal() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "false" }],
});
});
add_task(async function manyQueries_oneExposureResult_hidden_terminal_1() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", false],
],
queries: [
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
},
{
query: "amp",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyQueries_oneExposureResult_hidden_terminal_2() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
{
query: "amp",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyQueries_oneExposureResult_hidden_nonTerminal() {
await doExposureTest({
prefs: [
["exposureResults", suggestResultType("adm_sponsored")],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "false" }],
});
});
add_task(async function manyQueries_manyExposureResults_shown_1() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
},
{
query: "amp",
expectedVisible: ["adm_sponsored"],
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "false,true" },
],
});
});
add_task(async function manyQueries_manyExposureResults_shown_2() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "true,false" },
],
});
});
add_task(async function manyQueries_manyExposureResults_shown_3() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "amp",
expectedVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedVisible: ["adm_nonsponsored"],
expectedNotVisible: ["adm_sponsored"],
},
{
query: "amp",
expectedVisible: ["adm_sponsored"],
expectedNotVisible: ["adm_nonsponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "false,true" },
],
});
});
add_task(async function manyQueries_manyExposureResults_shown_4() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "doesn't match",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
{
query: "amp and wikipedia",
// Only the sponsored result should be visible and recorded since this
// task shows exposures, at most one Suggest result should be shown, and
// sponsored has the higher score.
expectedVisible: ["adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "true" }],
});
});
add_task(async function manyQueries_manyExposureResults_shown_5() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", true],
],
queries: [
{
query: "amp and wikipedia",
// Only the sponsored result should be visible and recorded since this
// task shows exposures, at most one Suggest result should be shown, and
// sponsored has the higher score.
expectedVisible: ["adm_sponsored"],
},
{
query: "doesn't match",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [{ results: "adm_sponsored", terminal: "false" }],
});
});
add_task(async function manyQueries_manyExposureResults_hidden_1() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "wikipedia",
expectedNotVisible: ["adm_nonsponsored"],
},
{
query: "amp",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "false,true" },
],
});
});
add_task(async function manyQueries_manyExposureResults_hidden_2() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "true,false" },
],
});
});
add_task(async function manyQueries_manyExposureResults_hidden_3() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "amp",
expectedNotVisible: ["adm_sponsored"],
},
{
query: "wikipedia",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
{
query: "amp",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "false,true" },
],
});
});
add_task(async function manyQueries_manyExposureResults_hidden_4() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "doesn't match",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
{
query: "amp and wikipedia",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "true,true" },
],
});
});
add_task(async function manyQueries_manyExposureResults_hidden_5() {
await doExposureTest({
prefs: [
[
"exposureResults",
[
suggestResultType("adm_sponsored"),
suggestResultType("adm_nonsponsored"),
].join(","),
],
["showExposureResults", false],
],
queries: [
{
query: "amp and wikipedia",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
{
query: "doesn't match",
expectedNotVisible: ["adm_nonsponsored", "adm_sponsored"],
},
],
expectedEvents: [
{ results: "adm_nonsponsored,adm_sponsored", terminal: "false,false" },
],
});
});
add_task(async function suggestExposure_matched() {
await doExposureTest({
prefs: [["quicksuggest.dynamicSuggestionTypes", "test-exposure-aaa"]],
queries: [
{
query: "aaa keyword",
expectedNotVisible: ["exposure"],
},
],
expectedEvents: [{ results: "exposure", terminal: "true" }],
});
});
add_task(async function suggestExposure_notMatched() {
await doExposureTest({
prefs: [["quicksuggest.dynamicSuggestionTypes", "test-exposure-aaa"]],
queries: [
{
query: "bbb keyword",
expectedNotVisible: ["exposure"],
},
],
expectedEvents: [],
});
});
add_task(async function suggestExposure_showExposureResults() {
await doExposureTest({
prefs: [
["quicksuggest.dynamicSuggestionTypes", "test-exposure-aaa"],
["showExposureResults", true],
],
queries: [
{
query: "aaa keyword",
expectedNotVisible: ["exposure"],
},
],
expectedEvents: [{ results: "exposure", terminal: "true" }],
});
});