| 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);
|
|
|