Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3418)

Unified Diff: chrome/test/data/webui/md_bookmarks/store_test.js

Issue 2645273002: [MD Bookmarks] Modify search to retain the previously selected folder. (Closed)
Patch Set: Rebase and update test to use selectFolder. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/webui/md_bookmarks/sidebar_test.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/md_bookmarks/store_test.js
diff --git a/chrome/test/data/webui/md_bookmarks/store_test.js b/chrome/test/data/webui/md_bookmarks/store_test.js
index 554c23a06b7e00e10c5ff058a3557f17053d6909..12be91b8cb51b271f6e45c1a69a182c9da80813b 100644
--- a/chrome/test/data/webui/md_bookmarks/store_test.js
+++ b/chrome/test/data/webui/md_bookmarks/store_test.js
@@ -93,38 +93,24 @@ suite('<bookmarks-store>', function() {
//////////////////////////////////////////////////////////////////////////////
// editing bookmarks tree tests:
- test('changing selectedId changes the displayedList', function() {
- store.selectedId = '0';
- assertEquals(TEST_TREE.children, store.displayedList);
- store.selectedId = '1';
- assertEquals(TEST_TREE.children[0].children, store.displayedList);
- store.selectedId = '3';
- assertEquals(
- TEST_TREE.children[0].children[1].children, store.displayedList);
-
- // Selecting an item selects the default folder.
- store.selectedId = '5';
- assertEquals(TEST_TREE.children[0].children, store.displayedList);
- });
-
test('store updates on selected event', function() {
// First child of root is selected by default.
assertEquals('1', store.selectedId);
assertTrue(store.idToNodeMap_['1'].isSelectedFolder);
// Selecting a selected folder doesn't deselect it.
- store.fire('selected-folder-changed', '1');
+ store.fire('selected-folder-changed', {id: '1', clearSearch: true});
assertEquals('1', store.selectedId);
assertTrue(store.idToNodeMap_['1'].isSelectedFolder);
// Select a deeply nested descendant.
- store.fire('selected-folder-changed', '3');
+ store.fire('selected-folder-changed', {id: '3', clearSearch: true});
assertEquals('3', store.selectedId);
assertTrue(store.idToNodeMap_['3'].isSelectedFolder);
assertFalse(store.idToNodeMap_['1'].isSelectedFolder);
// Select a folder in separate subtree.
- store.fire('selected-folder-changed', '8');
+ store.fire('selected-folder-changed', {id: '8', clearSearch: true});
assertEquals('8', store.selectedId);
assertTrue(store.idToNodeMap_['8'].isSelectedFolder);
assertFalse(store.idToNodeMap_['3'].isSelectedFolder);
@@ -146,7 +132,7 @@ suite('<bookmarks-store>', function() {
store.fire('folder-open-changed', {id: '1', open: true});
// Closing an ancestor folder of a selected folder selects the ancestor.
- store.fire('selected-folder-changed', '3');
+ store.selectFolder('3');
store.fire('folder-open-changed', {id: '1', open: false});
assertFalse(store.idToNodeMap_['1'].isOpen);
assertEquals('1', store.selectedId);
@@ -158,8 +144,7 @@ suite('<bookmarks-store>', function() {
store.idToNodeMap_['0'].isOpen = false;
store.idToNodeMap_['1'].isOpen = false;
store.idToNodeMap_['3'].isOpen = false;
- store.fire('selected-folder-changed', '3');
- assertTrue(store.idToNodeMap_['0'].isOpen);
+ store.selectFolder('3');
assertTrue(store.idToNodeMap_['1'].isOpen);
assertFalse(store.idToNodeMap_['3'].isOpen);
});
@@ -223,7 +208,7 @@ suite('<bookmarks-store>', function() {
test('selectedId updates after removing a selected folder', function() {
// Selected folder gets removed.
- store.selectedId = '8';
+ store.selectFolder('8');
removeChild(TEST_TREE, 3);
overrideBookmarksGetSubTree([TEST_TREE]);
@@ -232,7 +217,7 @@ suite('<bookmarks-store>', function() {
assertEquals('0', store.selectedId);
// A folder with selected folder in it gets removed.
- store.selectedId = '3';
+ store.selectFolder('3');
removeChild(TEST_TREE, 0);
overrideBookmarksGetSubTree([TEST_TREE]);
@@ -277,19 +262,19 @@ suite('<bookmarks-store>', function() {
createItem('3', {title: 'paris'}),
];
overrideBookmarksSearch(SEARCH_RESULTS);
+ var prevFolder = store.idToNodeMap_[store.selectedId];
// Search for a non-empty string.
store.searchTerm = 'a';
- assertFalse(store.rootNode.children[0].isSelectedFolder);
- assertEquals(null, store.selectedId);
+ assertFalse(prevFolder.isSelectedFolder);
+ assertEquals(prevFolder.id, store.selectedId);
assertEquals(SEARCH_RESULTS, store.displayedList);
- // Clear the searchTerm.
+ // Clearing search sets the displayed list to the previous folder.
store.searchTerm = '';
- var defaultFolder = store.rootNode.children[0];
- assertTrue(defaultFolder.isSelectedFolder);
- assertEquals(defaultFolder.id, store.selectedId);
- assertEquals(defaultFolder.children, store.displayedList);
+ assertTrue(prevFolder.isSelectedFolder);
+ assertEquals(prevFolder.id, store.selectedId);
+ assertEquals(prevFolder.children, store.displayedList);
// Search with no bookmarks returned.
overrideBookmarksSearch([]);
@@ -302,9 +287,26 @@ suite('<bookmarks-store>', function() {
test('search updates from route', function() {
overrideBookmarksSearch([]);
+
+ // Route with basic search.
searchTerm = 'Pond';
navigateTo('/?q=' + searchTerm);
assertEquals(searchTerm, store.searchTerm);
+ assertEquals(store.rootNode.children[0].id, store.selectedId);
+
+ // Route with selected folder and search.
+ var selectedId = '3';
+ searchTerm = 'Fish';
+ navigateTo('/?id=' + selectedId + '&q=' + searchTerm);
+ assertEquals(searchTerm, store.searchTerm);
+ assertEquals(selectedId, store.selectedId);
+
+ // Route with invalid selected folder and search.
+ selectedId = 'bar';
+ searchTerm = 'foo';
+ navigateTo('/?q=' + searchTerm + '&id=' + selectedId);
+ assertEquals(searchTerm, store.searchTerm);
+ assertEquals(store.rootNode.children[0].id, store.selectedId);
});
test('search updates from route on setup', function() {
@@ -317,9 +319,21 @@ suite('<bookmarks-store>', function() {
test('route updates from search', function() {
overrideBookmarksSearch([]);
+ var prevFolderId = '3';
+ store.selectFolder(prevFolderId);
+
+ // Searching sets the previous folder and searchTerm as the URL parameters.
var searchTerm = 'Boat24';
store.searchTerm = searchTerm;
- assertEquals('chrome://bookmarks/?q=' + searchTerm, window.location.href);
+ assertEquals(
+ 'chrome://bookmarks/?id=' + prevFolderId + '&q=' + searchTerm,
+ window.location.href);
+
+ // Search parameter is removed from the URL when search is cleared.
+ searchTerm = '';
+ store.searchTerm = searchTerm;
+ assertEquals(
+ 'chrome://bookmarks/?id=' + prevFolderId, window.location.href);
});
test('selectedId updates from route', function() {
@@ -373,7 +387,7 @@ suite('<bookmarks-store>', function() {
assertEquals(1, store.anchorIndex_);
// Deleting the selected item will unselect everything.
- store.selectedId = '1';
+ store.selectFolder('1');
store.fire('select-item', {item: store.idToNodeMap_['2']});
removeChild(TEST_TREE.children[0], 0);
overrideBookmarksGetSubTree([TEST_TREE.children[0]]);
@@ -385,7 +399,7 @@ suite('<bookmarks-store>', function() {
// Changing the selected folder will remove the select status of the
// bookmark.
- store.selectedId = '3';
+ store.selectFolder('3');
assertDeepEquals(
[false, false, false],
store.idToNodeMap_['1'].children.map(i => i.isSelectedItem));
@@ -454,7 +468,7 @@ suite('<bookmarks-store>', function() {
createItem('5', {url: 'link5'}),
]);
- store.selectedId = '1';
+ store.selectFolder('1');
store.fire('select-item', {item: store.idToNodeMap_['3']});
store.searchTerm = 'a';
assertFalse(store.idToNodeMap_['3'].isSelectedItem);
« no previous file with comments | « chrome/test/data/webui/md_bookmarks/sidebar_test.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698