Chromium Code Reviews| Index: chrome/test/data/webui/md_bookmarks/folder_node_test.js |
| diff --git a/chrome/test/data/webui/md_bookmarks/folder_node_test.js b/chrome/test/data/webui/md_bookmarks/folder_node_test.js |
| index 49e080bc14ba7894c7988030723da8d12c190ed0..c13157f9dd81f0e7287030e358a07f0cc845a601 100644 |
| --- a/chrome/test/data/webui/md_bookmarks/folder_node_test.js |
| +++ b/chrome/test/data/webui/md_bookmarks/folder_node_test.js |
| @@ -6,6 +6,10 @@ suite('<bookmarks-folder-node>', function() { |
| var rootNode; |
| var store; |
| + function getFolderNode(id) { |
| + return findFolderNode(rootNode, id); |
| + } |
| + |
| setup(function() { |
| store = new bookmarks.TestStore({ |
| nodes: testTree( |
| @@ -21,6 +25,7 @@ suite('<bookmarks-folder-node>', function() { |
| createItem('5'), |
| ]), |
| createFolder('7', [])), |
| + selectedFolder: '1', |
| }); |
| bookmarks.Store.instance_ = store; |
| @@ -75,9 +80,6 @@ suite('<bookmarks-folder-node>', function() { |
| test('doesn\'t highlight selected folder while searching', function() { |
| var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); |
| - store.data.selectedFolder = '1'; |
| - store.notifyObservers(); |
| - |
| assertEquals('1', rootFolders['0'].itemId); |
| assertTrue(rootFolders['0'].isSelectedFolder_); |
| @@ -90,4 +92,100 @@ suite('<bookmarks-folder-node>', function() { |
| assertFalse(rootFolders['0'].isSelectedFolder_); |
| }); |
| + |
| + test('last visible descendant', function() { |
| + assertEquals('7', rootNode.getLastVisibleDescendant_().itemId); |
| + assertEquals('4', getFolderNode('1').getLastVisibleDescendant_().itemId); |
| + |
| + store.data.closedFolders = new Set('2'); |
| + store.notifyObservers(); |
| + |
| + assertEquals('2', getFolderNode('1').getLastVisibleDescendant_().itemId); |
| + }); |
| + |
| + test('next/previous folder nodes', function() { |
| + function getNextVisibleFolderNode(parentId, targetId, reverse) { |
| + return getFolderNode(parentId).getNextVisibleFolderNode_( |
| + reverse, getFolderNode(targetId)); |
| + } |
| + |
| + // Forwards. |
| + assertEquals('2', getNextVisibleFolderNode('1', '1', false).itemId); |
| + assertEquals('4', getNextVisibleFolderNode('2', '3', false).itemId); |
| + assertEquals(null, getNextVisibleFolderNode('2', '4', false)); |
| + |
| + // Backwards. |
| + assertEquals('1', getNextVisibleFolderNode('1', '2', true).itemId); |
| + assertEquals('3', getNextVisibleFolderNode('2', '4', true).itemId); |
| + assertEquals('4', getNextVisibleFolderNode('0', '7', true).itemId); |
| + |
| + // Skips closed folders. |
| + store.data.closedFolders = new Set('2'); |
| + store.notifyObservers(); |
| + |
| + assertEquals(null, getNextVisibleFolderNode('1', '2', false)); |
| + assertEquals(null, getNextVisibleFolderNode('2', '2', false)); |
| + assertEquals('2', getNextVisibleFolderNode('0', '7', true).itemId); |
| + }); |
| + |
| + test('keyboard selection', function() { |
|
tsergeant
2017/04/19 07:32:18
I think it would make a lot of sense to use an int
calamity
2017/04/28 06:15:47
Yeah, ok.
|
| + function changeKeyboardFocus(direction, targetId, activeElementId) { |
| + return getFolderNode(targetId).changeKeyboardSelection_( |
| + direction, getFolderNode(activeElementId)); |
| + } |
| + |
| + store.data.closedFolders = new Set('2'); |
| + store.notifyObservers(); |
| + |
| + // The selected folder is focus enabled on attach. |
| + assertEquals('0', getFolderNode('1').$.container.getAttribute('tabindex')); |
| + |
| + // Only the selected folder should be focusable. |
| + assertEquals('-1', getFolderNode('2').$.container.getAttribute('tabindex')); |
| + |
| + // Move down into child. |
| + assertTrue(changeKeyboardFocus(1, '1', '1')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); |
| + store.data.selectedFolder = '2'; |
| + store.notifyObservers(); |
| + |
| + assertEquals('-1', getFolderNode('1').$.container.getAttribute('tabindex')); |
| + assertEquals('0', getFolderNode('2').$.container.getAttribute('tabindex')); |
| + |
| + // Move down past closed folders. |
| + assertFalse(changeKeyboardFocus(1, '2', '2')); |
|
tsergeant
2017/04/19 07:32:18
I think this is testing slightly the wrong thing?
calamity
2017/04/28 06:15:47
Yeah, you're right. Fixed.
|
| + assertFalse(changeKeyboardFocus(1, '1', '2')); |
| + assertTrue(changeKeyboardFocus(1, '0', '1')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('7'), store.lastAction); |
| + store.data.selectedFolder = '7'; |
| + store.notifyObservers(); |
| + |
| + // Move down past end of list. |
| + assertFalse(changeKeyboardFocus(1, '7', '7')); |
| + assertFalse(changeKeyboardFocus(1, '0', '7')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('7'), store.lastAction); |
| + store.data.selectedFolder = '7'; |
| + store.notifyObservers(); |
| + |
| + // Move up past closed folders. |
| + assertFalse(changeKeyboardFocus(-1, '7', '7')); |
| + assertTrue(changeKeyboardFocus(-1, '0', '7')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); |
| + store.data.selectedFolder = '2'; |
| + store.notifyObservers(); |
| + |
| + // Move up into parent. |
| + assertFalse(changeKeyboardFocus(-1, '2', '2')); |
| + assertTrue(changeKeyboardFocus(-1, '1', '2')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('1'), store.lastAction); |
| + store.data.selectedFolder = '1'; |
| + store.notifyObservers(); |
| + |
| + // Move up past start of list. |
| + assertFalse(changeKeyboardFocus(-1, '1', '1')); |
| + assertTrue(changeKeyboardFocus(-1, '0', '1')); |
| + assertDeepEquals(bookmarks.actions.selectFolder('1'), store.lastAction); |
| + store.data.selectedFolder = '1'; |
| + store.notifyObservers(); |
| + }); |
| }); |