Bug 1335905 - Added more intial test cases and passing all of them, fixed bug with search phrases r?jaws, r?mconley
MozReview-Commit-ID: KkM7EQWOpGj
--- a/browser/components/preferences/in-content/SearchEach.js
+++ b/browser/components/preferences/in-content/SearchEach.js
@@ -334,17 +334,17 @@ function searchFunc(event) {
* Selection tool
* @returns boolean
*/
function nodeRecursion(nodeObject, searchPhrase, findSelection) {
let foundIn = false;
if (nodeObject.childElementCount == 0) {
let leafTextNodes, otherTextNodes = [];
// List of words to search on
- let listOfWords = searchPhrase.trim().split(' ').filter(function(i){return i});
+ let listOfWords = searchPhrase.trim().split();
if (nodeObject) {
leafTextNodes = textNodesUnder(nodeObject);
}
if (nodeObject.boxObject) {
otherTextNodes = textNodesUnder(nodeObject.boxObject);
}
--- a/browser/components/preferences/in-content/tests/browser_search_within_preferences.js
+++ b/browser/components/preferences/in-content/tests/browser_search_within_preferences.js
@@ -1,17 +1,133 @@
+/*
+This file contains tests for the preferences search bar
+*/
+
+/**
+ * Tests to see if search bar is being hidden when pref is turned off
+ */
add_task(function*(){
Services.prefs.setBoolPref("browser.preference.search",false);
yield openPreferencesViaOpenPreferencesAPI("paneGeneral", undefined, {leaveOpen: true});
let mainSeachEmelemt = gBrowser.contentDocument.querySelectorAll('#searchTextIMF');
is(mainSeachEmelemt.length, 1, "There should only be one element name searchTextIMF querySelectorAll");
ok(is_hidden(mainSeachEmelemt[0]), "Search box should be hidden");
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
+
+/**
+ * Tests to see if search bar is being shown when pref is turned one
+ */
add_task(function*(){
Services.prefs.setBoolPref("browser.preference.search",true);
yield openPreferencesViaOpenPreferencesAPI("paneGeneral", undefined, {leaveOpen: true});
let mainSeachEmelemt = gBrowser.contentDocument.querySelectorAll('#searchTextIMF');
is(mainSeachEmelemt.length, 1, "There should only be one element name searchTextIMF querySelectorAll");
ok(!is_hidden(mainSeachEmelemt[0]), "Search box should be shown");
- yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ Services.prefs.setBoolPref("browser.preference.search",false);
+});
+
+/**
+ * Test for "Search Result" panel
+ */
+add_task(function*(){
+ Services.prefs.setBoolPref("browser.preference.search",true);
+ yield openPreferencesViaOpenPreferencesAPI("paneGeneral", undefined, {leaveOpen: true});
+
+ let searchResultsPane = gBrowser.contentDocument.getElementById("category-search-results");
+
+ ok(is_hidden(searchResultsPane), "Should not be in search results pane yet");
+
+ // Performs search
+ let mainSeachEmelemt = gBrowser.contentDocument.getElementById("searchTextIMF");
+ mainSeachEmelemt.click();
+ yield new Promise(resolve => setTimeout(resolve, 1000));
+ mainSeachEmelemt.value = "password";
+ mainSeachEmelemt.click();
+
+ // Checks we are in paneSearchResults
+ ok(!is_hidden(searchResultsPane), "Should be in search results pane");
+
+ // Takes search off
+ mainSeachEmelemt.value = "";
+ mainSeachEmelemt.click();
+
+ // Checks if back to normal
+ ok(is_hidden(searchResultsPane), "Should not be in search results pane");
+
+
+ yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ Services.prefs.setBoolPref("browser.preference.search",false);
+
+});
+
+/**
+ * Test for "password" case
+ * When we search "password", it should show the "passwordGroup"
+ */
+
+add_task(function*(){
+ Services.prefs.setBoolPref("browser.preference.search",true);
+ yield openPreferencesViaOpenPreferencesAPI("paneGeneral", undefined, {leaveOpen: true});
+
+ let searchResults = gBrowser.contentDocument.getElementById("passwordsGroup");
+
+ ok(is_hidden(searchResults), "Should not be in search results yet");
+
+ // Performs search
+ let mainSeachEmelemt = gBrowser.contentDocument.getElementById("searchTextIMF");
+ mainSeachEmelemt.click();
+ yield new Promise(resolve => setTimeout(resolve, 1000));
+ mainSeachEmelemt.value = "password";
+ mainSeachEmelemt.click();
+
+ // Checks we are in we have found it
+ ok(!is_hidden(searchResults), "Should be in search results");
+
+ // Takes search off
+ mainSeachEmelemt.value = "";
+ mainSeachEmelemt.click();
+
+ // Checks if back to normal
+ ok(is_hidden(searchResults), "Should not be in search results");
+
+
+ yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ Services.prefs.setBoolPref("browser.preference.search",false);
+
+});
+
+/**
+ * Test for if nothing is found
+ */
+add_task(function*(){
+ Services.prefs.setBoolPref("browser.preference.search",true);
+ yield openPreferencesViaOpenPreferencesAPI("paneGeneral", undefined, {leaveOpen: true});
+
+ let searchResults = gBrowser.contentDocument.getElementById("noResultsFound");
+
+ ok(is_hidden(searchResults), "Should not be in search results yet");
+
+ // Performs search
+ let mainSeachEmelemt = gBrowser.contentDocument.getElementById("searchTextIMF");
+ mainSeachEmelemt.click();
+ yield new Promise(resolve => setTimeout(resolve, 1000));
+ mainSeachEmelemt.value = "coach";
+ mainSeachEmelemt.click();
+
+ // Checks we are in no results found
+ ok(!is_hidden(searchResults), "Should be in search results");
+
+ // Takes search off
+ mainSeachEmelemt.value = "";
+ mainSeachEmelemt.click();
+
+ // Checks if back to normal
+ ok(is_hidden(searchResults), "Should not be in search results");
+
+
+ yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ Services.prefs.setBoolPref("browser.preference.search",false);
+
});
\ No newline at end of file