| 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..a3f703e04f1a021c82ffc54208c634c61afe3023 100644
|
| --- a/chrome/test/data/webui/md_bookmarks/folder_node_test.js
|
| +++ b/chrome/test/data/webui/md_bookmarks/folder_node_test.js
|
| @@ -5,6 +5,11 @@
|
| suite('<bookmarks-folder-node>', function() {
|
| var rootNode;
|
| var store;
|
| + var focusedNode;
|
| +
|
| + function getFolderNode(id) {
|
| + return findFolderNode(rootNode, id);
|
| + }
|
|
|
| setup(function() {
|
| store = new bookmarks.TestStore({
|
| @@ -21,12 +26,16 @@ suite('<bookmarks-folder-node>', function() {
|
| createItem('5'),
|
| ]),
|
| createFolder('7', [])),
|
| + selectedFolder: '1',
|
| });
|
| bookmarks.Store.instance_ = store;
|
|
|
| rootNode = document.createElement('bookmarks-folder-node');
|
| rootNode.itemId = '0';
|
| rootNode.depth = -1;
|
| + rootNode.addEventListener('folder-node-focus-changed', (e) => {
|
| + focusedNode = e.detail;
|
| + });
|
| replaceBody(rootNode);
|
| Polymer.dom.flush();
|
| });
|
| @@ -75,9 +84,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 +96,94 @@ 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() {
|
| + var focusedId;
|
| +
|
| + function changeKeyboardFocus(direction, targetId, activeElementId) {
|
| + return getFolderNode(targetId ? targetId : focusedId)
|
| + .changeKeyboardSelection_(
|
| + direction,
|
| + activeElementId ? getFolderNode(activeElementId) :
|
| + getFolderNode(focusedId).$.container);
|
| + }
|
| +
|
| + store.data.closedFolders = new Set('2');
|
| + store.notifyObservers();
|
| +
|
| + // The selected folder is focus enabled on attach.
|
| + focusedId = '1';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move down into child.
|
| + assertTrue(changeKeyboardFocus(1));
|
| + focusedId = '2';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move down past closed folders.
|
| + assertFalse(changeKeyboardFocus(1));
|
| + assertFalse(changeKeyboardFocus(1, '1', '2'));
|
| + assertTrue(changeKeyboardFocus(1, '0', '1'));
|
| + focusedId = '7';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move down past end of list.
|
| + assertFalse(changeKeyboardFocus(1));
|
| + assertFalse(changeKeyboardFocus(1, '0', '7'));
|
| + focusedId = '7';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move up past closed folders.
|
| + assertFalse(changeKeyboardFocus(-1));
|
| + assertTrue(changeKeyboardFocus(-1, '0', '7'));
|
| + focusedId = '2';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move up into parent.
|
| + assertFalse(changeKeyboardFocus(-1));
|
| + assertTrue(changeKeyboardFocus(-1, '1', '2'));
|
| + focusedId = '1';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| +
|
| + // Move up past start of list.
|
| + assertFalse(changeKeyboardFocus(-1));
|
| + assertTrue(changeKeyboardFocus(-1, '0', '1'));
|
| + focusedId = '1';
|
| + assertEquals(focusedId, focusedNode.itemId);
|
| + });
|
| });
|
|
|