From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../preferences/tests/browser_searchsuggestions.js | 231 +++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 browser/components/preferences/tests/browser_searchsuggestions.js (limited to 'browser/components/preferences/tests/browser_searchsuggestions.js') diff --git a/browser/components/preferences/tests/browser_searchsuggestions.js b/browser/components/preferences/tests/browser_searchsuggestions.js new file mode 100644 index 0000000000..6aca310eb2 --- /dev/null +++ b/browser/components/preferences/tests/browser_searchsuggestions.js @@ -0,0 +1,231 @@ +const SUGGEST_PREF_NAME = "browser.search.suggest.enabled"; +const URLBAR_SUGGEST_PREF_NAME = "browser.urlbar.suggest.searches"; +const PRIVATE_PREF_NAME = "browser.search.suggest.enabled.private"; +const SEARCHBAR_PREF_NAME = "browser.search.widget.inNavBar"; + +let initialUrlbarSuggestValue; +let initialSuggestionsInPrivateValue; + +add_setup(async function () { + const originalSuggest = Services.prefs.getBoolPref(SUGGEST_PREF_NAME); + initialUrlbarSuggestValue = Services.prefs.getBoolPref( + URLBAR_SUGGEST_PREF_NAME + ); + initialSuggestionsInPrivateValue = + Services.prefs.getBoolPref(PRIVATE_PREF_NAME); + + registerCleanupFunction(() => { + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, originalSuggest); + Services.prefs.setBoolPref( + PRIVATE_PREF_NAME, + initialSuggestionsInPrivateValue + ); + }); +}); + +async function toggleElement( + id, + prefName, + element, + initialCheckboxValue, + initialPrefValue, + descCheckbox, + descPref, + shouldUpdatePref = false +) { + await BrowserTestUtils.synthesizeMouseAtCenter( + `#${id}`, + {}, + gBrowser.selectedBrowser + ); + is( + element.checked, + !initialCheckboxValue, + `Should have flipped the ${descCheckbox} checkbox` + ); + let expectedPrefValue = shouldUpdatePref + ? !initialPrefValue + : initialPrefValue; + let prefValue = Services.prefs.getBoolPref(prefName); + + is( + prefValue, + expectedPrefValue, + `Should ${ + shouldUpdatePref ? "" : "not" + } have updated the ${descPref} preference value` + ); + + await BrowserTestUtils.synthesizeMouseAtCenter( + `#${id}`, + {}, + gBrowser.selectedBrowser + ); + is( + element.checked, + initialCheckboxValue, + `Should have flipped the ${descCheckbox} checkbox back to the original value` + ); + prefValue = Services.prefs.getBoolPref(prefName); + expectedPrefValue = shouldUpdatePref ? !expectedPrefValue : initialPrefValue; + is( + prefValue, + expectedPrefValue, + `Should ${ + shouldUpdatePref ? "" : "not" + } have updated the ${descPref} preference value` + ); +} + +// Open with suggestions enabled +add_task(async function test_suggestions_start_enabled() { + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, true); + Services.prefs.setBoolPref(SEARCHBAR_PREF_NAME, true); + + await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true }); + + let doc = gBrowser.selectedBrowser.contentDocument; + let urlbarBox = doc.getElementById("urlBarSuggestion"); + let privateBox = doc.getElementById("showSearchSuggestionsPrivateWindows"); + ok(!urlbarBox.disabled, "Should have enabled the urlbar checkbox"); + ok( + !privateBox.disabled, + "Should have enabled the private mode suggestions checkbox" + ); + is( + urlbarBox.checked, + initialUrlbarSuggestValue, + "Should have the correct value for the urlbar checkbox" + ); + is( + privateBox.checked, + initialSuggestionsInPrivateValue, + "Should have the correct value for the private mode suggestions checkbox" + ); + + await toggleElement( + "urlBarSuggestion", + URLBAR_SUGGEST_PREF_NAME, + urlbarBox, + initialUrlbarSuggestValue, + initialUrlbarSuggestValue, + "urlbar", + "urlbar", + true + ); + + await toggleElement( + "showSearchSuggestionsPrivateWindows", + PRIVATE_PREF_NAME, + privateBox, + initialSuggestionsInPrivateValue, + initialSuggestionsInPrivateValue, + "private suggestion", + "private suggestion", + true + ); + + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, false); + ok(!urlbarBox.checked, "Should have unchecked the urlbar box"); + ok(urlbarBox.disabled, "Should have disabled the urlbar box"); + Services.prefs.setBoolPref(SEARCHBAR_PREF_NAME, false); + ok(urlbarBox.hidden, "Should have hidden the urlbar box"); + ok(!privateBox.checked, "Should have unchecked the private suggestions box"); + ok(privateBox.disabled, "Should have disabled the private suggestions box"); + + gBrowser.removeCurrentTab(); +}); + +// Open with suggestions disabled +add_task(async function test_suggestions_start_disabled() { + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, false); + + await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true }); + + let doc = gBrowser.selectedBrowser.contentDocument; + let urlbarBox = doc.getElementById("urlBarSuggestion"); + ok(urlbarBox.disabled, "Should have the urlbar box disabled"); + let privateBox = doc.getElementById("showSearchSuggestionsPrivateWindows"); + ok(privateBox.disabled, "Should have the private suggestions box disabled"); + + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, true); + + ok(!urlbarBox.disabled, "Should have enabled the urlbar box"); + ok(!privateBox.disabled, "Should have enabled the private suggestions box"); + + gBrowser.removeCurrentTab(); +}); + +add_task(async function test_sync_search_suggestions_prefs() { + info("Adding the search bar to the toolbar"); + Services.prefs.setBoolPref(SEARCHBAR_PREF_NAME, true); + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, true); + Services.prefs.setBoolPref(URLBAR_SUGGEST_PREF_NAME, false); + await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true }); + + let doc = gBrowser.selectedBrowser.contentDocument; + let suggestionsInSearchFieldsCheckbox = doc.getElementById( + "suggestionsInSearchFieldsCheckbox" + ); + + is( + suggestionsInSearchFieldsCheckbox.checked, + true, + "Should have the correct value for the search suggestions checkbox" + ); + + is( + Services.prefs.getBoolPref(SUGGEST_PREF_NAME), + true, + `${SUGGEST_PREF_NAME} should be enabled` + ); + is( + Services.prefs.getBoolPref(URLBAR_SUGGEST_PREF_NAME), + false, + `${URLBAR_SUGGEST_PREF_NAME} should be disabled` + ); + + await toggleElement( + "suggestionsInSearchFieldsCheckbox", + URLBAR_SUGGEST_PREF_NAME, + suggestionsInSearchFieldsCheckbox, + suggestionsInSearchFieldsCheckbox.checked, + false, + "search suggestion", + "urlbar suggest" + ); + + info("Removing the search bar from the toolbar"); + Services.prefs.setBoolPref(SEARCHBAR_PREF_NAME, false); + + const suggestsPref = [true, false]; + const urlbarSuggestsPref = [true, false]; + + for (let suggestState of suggestsPref) { + for (let urlbarSuggestsState of urlbarSuggestsPref) { + Services.prefs.setBoolPref(SUGGEST_PREF_NAME, suggestState); + Services.prefs.setBoolPref(URLBAR_SUGGEST_PREF_NAME, urlbarSuggestsState); + + if (suggestState && urlbarSuggestsState) { + ok( + suggestionsInSearchFieldsCheckbox.checked, + "Should have checked the suggestions checkbox" + ); + } else { + ok( + !suggestionsInSearchFieldsCheckbox.checked, + "Should have unchecked the suggestions checkbox" + ); + } + ok( + !suggestionsInSearchFieldsCheckbox.disabled, + "Should have the suggestions checkbox enabled" + ); + } + } + + gBrowser.removeCurrentTab(); + Services.prefs.clearUserPref(SEARCHBAR_PREF_NAME); + Services.prefs.clearUserPref(URLBAR_SUGGEST_PREF_NAME); + Services.prefs.clearUserPref(SUGGEST_PREF_NAME); +}); -- cgit v1.2.3