forked from mirrors/gecko-dev
MozReview-Commit-ID: HM6HPLM5wPj --HG-- extra : rebase_source : 951570dc5680a9463a40d507ae3df5f4335fb1d7
241 lines
8.2 KiB
JavaScript
241 lines
8.2 KiB
JavaScript
/*
|
|
* This file contains tests for the Preferences search bar.
|
|
*/
|
|
|
|
requestLongerTimeout(2);
|
|
|
|
/**
|
|
* Tests to see if search bar is being hidden when pref is turned off
|
|
*/
|
|
add_task(async function() {
|
|
await SpecialPowers.pushPrefEnv({"set": [["browser.preferences.search", false]]});
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
let searchInput = gBrowser.contentDocument.querySelectorAll("#searchInput");
|
|
is(searchInput.length, 1, "There should only be one element name searchInput querySelectorAll");
|
|
is_element_hidden(searchInput[0], "Search box should be hidden");
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
await SpecialPowers.popPrefEnv();
|
|
});
|
|
|
|
// Enabling Searching functionatily. Will display search bar form this testcase forward.
|
|
add_task(async function() {
|
|
await SpecialPowers.pushPrefEnv({"set": [["browser.preferences.search", true]]});
|
|
});
|
|
|
|
/**
|
|
* Tests to see if search bar is being shown when pref is turned on
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
is_element_visible(searchInput, "Search box should be shown");
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for "Search Result" panel.
|
|
* After it runs a search, it tests if the "Search Results" panel is the only selected category.
|
|
* The search is then cleared, it then tests if the "General" panel is the only selected category.
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
|
|
// Performs search
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
searchInput.focus();
|
|
searchInput.value = "password";
|
|
searchInput.doCommand();
|
|
|
|
let categoriesList = gBrowser.contentDocument.getElementById("categories");
|
|
|
|
for (let i = 0; i < categoriesList.childElementCount; i++) {
|
|
let child = categoriesList.children[i]
|
|
if (child.id == "category-search-results") {
|
|
is(child.selected, true, "Search results panel should be selected");
|
|
} else if (child.id) {
|
|
is(child.selected, false, "No other panel should be selected");
|
|
}
|
|
}
|
|
// Takes search off
|
|
searchInput.value = "";
|
|
searchInput.doCommand();
|
|
|
|
// Checks if back to generalPane
|
|
for (let i = 0; i < categoriesList.childElementCount; i++) {
|
|
let child = categoriesList.children[i]
|
|
if (child.id == "category-general") {
|
|
is(child.selected, true, "General panel should be selected");
|
|
} else if (child.id) {
|
|
is(child.selected, false, "No other panel should be selected");
|
|
}
|
|
}
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for "password" case. When we search "password", it should show the "passwordGroup"
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
|
|
// Performs search
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
searchInput.focus();
|
|
searchInput.value = "password";
|
|
searchInput.doCommand();
|
|
|
|
let mainPrefTag = gBrowser.contentDocument.getElementById("mainPrefPane");
|
|
|
|
for (let i = 0; i < mainPrefTag.childElementCount; i++) {
|
|
let child = mainPrefTag.children[i]
|
|
if (child.id == "passwordsGroup" ||
|
|
child.id == "weavePrefsDeck" ||
|
|
child.id == "header-searchResults" ||
|
|
child.id == "certSelection" ||
|
|
child.id == "connectionGroup") {
|
|
is_element_visible(child, "Should be in search results");
|
|
} else if (child.id) {
|
|
is_element_hidden(child, "Should not be in search results");
|
|
}
|
|
}
|
|
|
|
// Takes search off
|
|
searchInput.value = "";
|
|
searchInput.doCommand();
|
|
|
|
// Checks if back to generalPane
|
|
for (let i = 0; i < mainPrefTag.childElementCount; i++) {
|
|
let child = mainPrefTag.children[i]
|
|
if (child.id == "startupGroup"
|
|
|| child.id == "defaultEngineGroup"
|
|
|| child.id == "oneClickSearchProvidersGroup"
|
|
|| child.id == "paneGeneral"
|
|
|| child.id == "accessibilityGroup"
|
|
|| child.id == "languagesGroup"
|
|
|| child.id == "fontsGroup"
|
|
|| child.id == "browsingGroup"
|
|
|| child.id == "performanceGroup"
|
|
|| child.id == "header-general") {
|
|
is_element_visible(child, "Should be in general tab");
|
|
} else if (child.id) {
|
|
is_element_hidden(child, "Should not be in general tab");
|
|
}
|
|
}
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for if nothing is found
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
|
|
let noResultsEl = gBrowser.contentDocument.querySelector(".no-results-message");
|
|
|
|
is_element_hidden(noResultsEl, "Should not be in search results yet");
|
|
|
|
// Performs search
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
searchInput.focus();
|
|
searchInput.value = "coach";
|
|
searchInput.doCommand();
|
|
|
|
is_element_visible(noResultsEl, "Should be in search results");
|
|
|
|
// Takes search off
|
|
searchInput.value = "";
|
|
searchInput.doCommand();
|
|
|
|
is_element_hidden(noResultsEl, "Should not be in search results");
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for if we go back to general tab after search case
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("privacy", {leaveOpen: true});
|
|
let generalPane = gBrowser.contentDocument.getElementById("header-general");
|
|
|
|
is_element_hidden(generalPane, "Should not be in general");
|
|
|
|
// Performs search
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
searchInput.focus();
|
|
searchInput.value = "password";
|
|
searchInput.doCommand();
|
|
|
|
// Takes search off
|
|
searchInput.value = "";
|
|
searchInput.doCommand();
|
|
|
|
// Checks if back to normal
|
|
is_element_visible(generalPane, "Should be in generalPane");
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for "Site Data" case, verifying elements with data-hidden-from-search = true
|
|
* are hidden in search result.
|
|
*/
|
|
add_task(async function() {
|
|
await SpecialPowers.pushPrefEnv({"set": [["browser.storageManager.enabled", false]]});
|
|
await openPreferencesViaOpenPreferencesAPI("privacy", {leaveOpen: true});
|
|
let generalPane = gBrowser.contentDocument.getElementById("header-general");
|
|
|
|
is_element_hidden(generalPane, "Should not be in general");
|
|
|
|
// Performs search
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
searchInput.focus();
|
|
searchInput.value = "site data";
|
|
searchInput.doCommand();
|
|
|
|
let mainPrefTag = gBrowser.contentDocument.getElementById("mainPrefPane");
|
|
|
|
let child = mainPrefTag.querySelector("#siteDataGroup");
|
|
is_element_hidden(child, "Should be hidden in search results");
|
|
|
|
// Takes search off
|
|
searchInput.value = "";
|
|
searchInput.doCommand();
|
|
|
|
// Checks if back to normal
|
|
is_element_visible(generalPane, "Should be in generalPane");
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|
|
|
|
/**
|
|
* Test for if we go to another tab after searching
|
|
*/
|
|
add_task(async function() {
|
|
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {leaveOpen: true});
|
|
let searchInput = gBrowser.contentDocument.getElementById("searchInput");
|
|
let searchResultsCategory = gBrowser.contentDocument.getElementById("category-search-results");
|
|
searchInput.focus();
|
|
searchInput.value = "password";
|
|
searchInput.doCommand();
|
|
is(searchResultsCategory.hidden, false, "search results category should be shown");
|
|
is(searchResultsCategory.selected, true, "search results category should be selected");
|
|
|
|
let privacyCategory = gBrowser.contentDocument.getElementById("category-privacy");
|
|
privacyCategory.click();
|
|
is(searchResultsCategory.hidden, true, "search results category should not be shown");
|
|
is(searchInput.value, "", "search input should be empty");
|
|
let categoriesList = gBrowser.contentDocument.getElementById("categories");
|
|
for (let i = 0; i < categoriesList.childElementCount; i++) {
|
|
let child = categoriesList.children[i]
|
|
if (child.id == "category-privacy") {
|
|
is(child.selected, true, "Privacy panel should be selected");
|
|
} else if (child.id) {
|
|
is(child.selected, false, "No other panel should be selected");
|
|
}
|
|
}
|
|
|
|
await BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|