/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; /** * Tests browser quick suggestions. */ const TEST_URL = "http://example.com/quicksuggest"; const REMOTE_SETTINGS_RESULTS = [ { id: 1, url: `${TEST_URL}?q=frabbits`, title: "frabbits", keywords: ["fra", "frab"], click_url: "http://click.reporting.test.com/", impression_url: "http://impression.reporting.test.com/", advertiser: "TestAdvertiser", }, { id: 2, url: `${TEST_URL}?q=nonsponsored`, title: "Non-Sponsored", keywords: ["nonspon"], click_url: "http://click.reporting.test.com/nonsponsored", impression_url: "http://impression.reporting.test.com/nonsponsored", advertiser: "TestAdvertiserNonSponsored", iab_category: "5 - Education", }, ]; add_setup(async function () { await PlacesUtils.history.clear(); await PlacesUtils.bookmarks.eraseEverything(); await UrlbarTestUtils.formHistory.clear(); await QuickSuggestTestUtils.ensureQuickSuggestInit({ remoteSettingsResults: [ { type: "data", attachment: REMOTE_SETTINGS_RESULTS, }, ], }); }); // Tests a sponsored result and keyword highlighting. add_task(async function sponsored() { await UrlbarTestUtils.promiseAutocompleteResultPopup({ window, value: "fra", }); await QuickSuggestTestUtils.assertIsQuickSuggest({ window, index: 1, isSponsored: true, url: `${TEST_URL}?q=frabbits`, }); let row = await UrlbarTestUtils.waitForAutocompleteResultAt(window, 1); Assert.equal( row.querySelector(".urlbarView-title").firstChild.textContent, "fra", "The part of the keyword that matches users input is not bold." ); Assert.equal( row.querySelector(".urlbarView-title > strong").textContent, "b", "The auto completed section of the keyword is bolded." ); await UrlbarTestUtils.promisePopupClose(window); }); // Tests a non-sponsored result. add_task(async function nonSponsored() { await UrlbarTestUtils.promiseAutocompleteResultPopup({ window, value: "nonspon", }); await QuickSuggestTestUtils.assertIsQuickSuggest({ window, index: 1, isSponsored: false, url: `${TEST_URL}?q=nonsponsored`, }); await UrlbarTestUtils.promisePopupClose(window); });