| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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('selection state', function() { | 5 suite('selection state', function() { |
| 6 var state; | 6 var state; |
| 7 var action; | 7 var action; |
| 8 | 8 |
| 9 function select(items, anchor, add) { | 9 function select(items, anchor, add) { |
| 10 return { | 10 return { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 assertDeepEquals({}, state.items); | 79 assertDeepEquals({}, state.items); |
| 80 }); | 80 }); |
| 81 }); | 81 }); |
| 82 | 82 |
| 83 suite('closed folder state', function() { | 83 suite('closed folder state', function() { |
| 84 var nodes; | 84 var nodes; |
| 85 var state; | 85 var state; |
| 86 var action; | 86 var action; |
| 87 | 87 |
| 88 setup(function() { | 88 setup(function() { |
| 89 nodes = testTree(createFolder('1', [ | 89 nodes = testTree( |
| 90 createFolder('2', []), | 90 createFolder( |
| 91 ])); | 91 '1', |
| 92 [ |
| 93 createFolder('2', []), |
| 94 createItem('3'), |
| 95 ]), |
| 96 createFolder('4', [])); |
| 92 state = {}; | 97 state = {}; |
| 93 }); | 98 }); |
| 94 | 99 |
| 95 test('toggle folder open state', function() { | 100 test('toggle folder open state', function() { |
| 96 action = bookmarks.actions.changeFolderOpen('2', false); | 101 action = bookmarks.actions.changeFolderOpen('2', false); |
| 97 state = | 102 state = |
| 98 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); | 103 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); |
| 99 assertFalse(!!state['1']); | 104 assertFalse(!!state['1']); |
| 100 assertTrue(state['2']); | 105 assertTrue(state['2']); |
| 101 }); | 106 }); |
| 102 | 107 |
| 103 test('select folder with closed parent', function() { | 108 test('select folder with closed parent', function() { |
| 104 // Close '1' | 109 // Close '1' |
| 105 action = bookmarks.actions.changeFolderOpen('1', false); | 110 action = bookmarks.actions.changeFolderOpen('1', false); |
| 106 state = | 111 state = |
| 107 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); | 112 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); |
| 108 assertTrue(state['1']); | 113 assertTrue(state['1']); |
| 109 assertFalse(!!state['2']); | 114 assertFalse(!!state['2']); |
| 110 | 115 |
| 111 // Should re-open when '2' is selected. | 116 // Should re-open when '2' is selected. |
| 112 action = bookmarks.actions.selectFolder('2'); | 117 action = bookmarks.actions.selectFolder('2'); |
| 113 state = | 118 state = |
| 114 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); | 119 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); |
| 115 assertFalse(!!state['1']); | 120 assertFalse(!!state['1']); |
| 116 }); | 121 }); |
| 122 |
| 123 test('move nodes in a closed folder', function() { |
| 124 // Moving bookmark items should not open folders. |
| 125 state = {'1': true}; |
| 126 action = bookmarks.actions.moveBookmark('3', '1', 1, '1', 0); |
| 127 state = |
| 128 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); |
| 129 |
| 130 assertTrue(state['1']); |
| 131 |
| 132 // Moving folders should open their parents. |
| 133 state = {'1': true, '2': true}; |
| 134 action = bookmarks.actions.moveBookmark('4', '2', 0, '0', 1); |
| 135 state = |
| 136 bookmarks.ClosedFolderState.updateClosedFolders(state, action, nodes); |
| 137 assertFalse(!!state['1']); |
| 138 assertFalse(!!state['2']); |
| 139 }); |
| 117 }); | 140 }); |
| 118 | 141 |
| 119 suite('selected folder', function() { | 142 suite('selected folder', function() { |
| 120 var nodes; | 143 var nodes; |
| 121 var state; | 144 var state; |
| 122 var action; | 145 var action; |
| 123 | 146 |
| 124 setup(function() { | 147 setup(function() { |
| 125 nodes = testTree(createFolder('1', [ | 148 nodes = testTree(createFolder('1', [ |
| 126 createFolder('2', []), | 149 createFolder('2', []), |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 | 216 |
| 194 test('updates when a node is deleted', function() { | 217 test('updates when a node is deleted', function() { |
| 195 action = bookmarks.actions.removeBookmark('3', '1', 1); | 218 action = bookmarks.actions.removeBookmark('3', '1', 1); |
| 196 state = bookmarks.NodeState.updateNodes(state, action); | 219 state = bookmarks.NodeState.updateNodes(state, action); |
| 197 | 220 |
| 198 assertDeepEquals(['2', '4'], state['1'].children); | 221 assertDeepEquals(['2', '4'], state['1'].children); |
| 199 | 222 |
| 200 // TODO(tsergeant): Deleted nodes should be removed from the nodes map | 223 // TODO(tsergeant): Deleted nodes should be removed from the nodes map |
| 201 // entirely. | 224 // entirely. |
| 202 }); | 225 }); |
| 226 |
| 227 test('updates when a node is moved', function() { |
| 228 // Move within the same folder backwards. |
| 229 action = bookmarks.actions.moveBookmark('3', '1', 0, '1', 1); |
| 230 state = bookmarks.NodeState.updateNodes(state, action); |
| 231 |
| 232 assertDeepEquals(['3', '2', '4'], state['1'].children); |
| 233 |
| 234 // Move within the same folder forwards. |
| 235 action = bookmarks.actions.moveBookmark('3', '1', 2, '1', 0); |
| 236 state = bookmarks.NodeState.updateNodes(state, action); |
| 237 |
| 238 assertDeepEquals(['2', '4', '3'], state['1'].children); |
| 239 |
| 240 // Move between different folders. |
| 241 action = bookmarks.actions.moveBookmark('4', '5', 0, '1', 1); |
| 242 state = bookmarks.NodeState.updateNodes(state, action); |
| 243 |
| 244 assertDeepEquals(['2', '3'], state['1'].children); |
| 245 assertDeepEquals(['4'], state['5'].children); |
| 246 }); |
| 203 }); | 247 }); |
| 204 | 248 |
| 205 suite('search state', function() { | 249 suite('search state', function() { |
| 206 var state; | 250 var state; |
| 207 | 251 |
| 208 setup(function() { | 252 setup(function() { |
| 209 // Search touches a few different things, so we test using the entire state: | 253 // Search touches a few different things, so we test using the entire state: |
| 210 state = bookmarks.util.createEmptyState(); | 254 state = bookmarks.util.createEmptyState(); |
| 211 state.nodes = testTree(createFolder('1', [ | 255 state.nodes = testTree(createFolder('1', [ |
| 212 createFolder( | 256 createFolder( |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 // Case 2: Clear search by selecting a new folder. | 299 // Case 2: Clear search by selecting a new folder. |
| 256 action = bookmarks.actions.selectFolder('2'); | 300 action = bookmarks.actions.selectFolder('2'); |
| 257 var selectedState = bookmarks.reduceAction(searchedState, action); | 301 var selectedState = bookmarks.reduceAction(searchedState, action); |
| 258 | 302 |
| 259 assertEquals('2', selectedState.selectedFolder); | 303 assertEquals('2', selectedState.selectedFolder); |
| 260 assertDeepEquals(['3'], bookmarks.util.getDisplayedList(selectedState)); | 304 assertDeepEquals(['3'], bookmarks.util.getDisplayedList(selectedState)); |
| 261 assertEquals('', selectedState.search.term); | 305 assertEquals('', selectedState.search.term); |
| 262 assertDeepEquals([], selectedState.search.results); | 306 assertDeepEquals([], selectedState.search.results); |
| 263 }); | 307 }); |
| 264 }); | 308 }); |
| OLD | NEW |