Bug 1335905 - Added more intial test cases and passing all of them, fixed bug with search phrases r?jaws, r?mconley draft
authormanotejmeka <manotejmeka@gmail.com>
Fri, 24 Feb 2017 14:45:30 -0500
changeset 489342 115ee5430863cbb21fc30ab4cee921d797966de2
parent 489341 662d34d51f8c77868cb7dc46dc471154f2c1a70e
child 489350 f41e86cb09d8ed53f95ffdc42a5a0bf94e0d64e6
child 489878 e396ecc3f6cbf78ce53e728a16dc64956563e654
push id46810
push userbmo:manotejmeka@gmail.com
push dateFri, 24 Feb 2017 19:49:37 +0000
reviewersjaws, mconley
bugs1335905
milestone54.0a1
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
browser/components/preferences/in-content/SearchEach.js
browser/components/preferences/in-content/tests/browser_search_within_preferences.js
--- 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