OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 suite('<bookmarks-store>', function() { | 5 suite('<bookmarks-store>', function() { |
6 var store; | 6 var store; |
7 var TEST_TREE; | 7 var TEST_TREE; |
8 | 8 |
9 function replaceStore() { | 9 function replaceStore() { |
10 store = document.createElement('bookmarks-store'); | 10 store = document.createElement('bookmarks-store'); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 | 147 |
148 // Closing an ancestor folder of a selected folder selects the ancestor. | 148 // Closing an ancestor folder of a selected folder selects the ancestor. |
149 store.fire('selected-folder-changed', '3'); | 149 store.fire('selected-folder-changed', '3'); |
150 store.fire('folder-open-changed', {id: '1', open: false}); | 150 store.fire('folder-open-changed', {id: '1', open: false}); |
151 assertFalse(store.idToNodeMap_['1'].isOpen); | 151 assertFalse(store.idToNodeMap_['1'].isOpen); |
152 assertEquals('1', store.selectedId); | 152 assertEquals('1', store.selectedId); |
153 assertTrue(store.idToNodeMap_['1'].isSelectedFolder); | 153 assertTrue(store.idToNodeMap_['1'].isSelectedFolder); |
154 assertFalse(store.idToNodeMap_['3'].isSelectedFolder); | 154 assertFalse(store.idToNodeMap_['3'].isSelectedFolder); |
155 }); | 155 }); |
156 | 156 |
| 157 test('parent folder opens when descendant folder is selected', function() { |
| 158 store.idToNodeMap_['0'].isOpen = false; |
| 159 store.idToNodeMap_['1'].isOpen = false; |
| 160 store.idToNodeMap_['3'].isOpen = false; |
| 161 store.fire('selected-folder-changed', '3'); |
| 162 assertTrue(store.idToNodeMap_['0'].isOpen); |
| 163 assertTrue(store.idToNodeMap_['1'].isOpen); |
| 164 assertFalse(store.idToNodeMap_['3'].isOpen); |
| 165 }); |
| 166 |
157 test('deleting a node updates the tree', function() { | 167 test('deleting a node updates the tree', function() { |
158 TEST_TREE.children.splice(1, 1); | 168 TEST_TREE.children.splice(1, 1); |
159 overrideBookmarksGetSubTree([TEST_TREE]); | 169 overrideBookmarksGetSubTree([TEST_TREE]); |
160 // Remove an empty folder/bookmark. | 170 // Remove an empty folder/bookmark. |
161 store.onBookmarkRemoved_('4', {parentId: '0', index: 1}); | 171 store.onBookmarkRemoved_('4', {parentId: '0', index: 1}); |
162 | 172 |
163 // Check the tree is correct. | 173 // Check the tree is correct. |
164 assertEquals('5', store.rootNode.children[1].id); | 174 assertEquals('5', store.rootNode.children[1].id); |
165 | 175 |
166 // idToNodeMap_ has been updated. | 176 // idToNodeMap_ has been updated. |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 store.fire( | 497 store.fire( |
488 'select-item', {item: store.displayedList[2], add: true, range: false}); | 498 'select-item', {item: store.displayedList[2], add: true, range: false}); |
489 store.fire( | 499 store.fire( |
490 'select-item', {item: store.displayedList[4], add: true, range: true}); | 500 'select-item', {item: store.displayedList[4], add: true, range: true}); |
491 assertDeepEquals( | 501 assertDeepEquals( |
492 [true, false, true, true, true], | 502 [true, false, true, true, true], |
493 store.displayedList.map(i => i.isSelectedItem)); | 503 store.displayedList.map(i => i.isSelectedItem)); |
494 assertEquals(2, store.anchorIndex_); | 504 assertEquals(2, store.anchorIndex_); |
495 }); | 505 }); |
496 }); | 506 }); |
OLD | NEW |