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 /** | 5 /** |
6 * @fileoverview Tests for MD Bookmarks which are run as interactive ui tests. | 6 * @fileoverview Tests for MD Bookmarks which are run as interactive ui tests. |
7 * Should be used for tests which care about focus. | 7 * Should be used for tests which care about focus. |
8 */ | 8 */ |
9 | 9 |
10 var ROOT_PATH = '../../../../../'; | 10 var ROOT_PATH = '../../../../../'; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
90 // Only the selected folder should be focusable. | 90 // Only the selected folder should be focusable. |
91 assertEquals('', getFolderNode('2').$.container.getAttribute('tabindex')); | 91 assertEquals('', getFolderNode('2').$.container.getAttribute('tabindex')); |
92 | 92 |
93 // Give keyboard focus to the first item. | 93 // Give keyboard focus to the first item. |
94 getFolderNode('1').$.container.focus(); | 94 getFolderNode('1').$.container.focus(); |
95 | 95 |
96 // Move down into child. | 96 // Move down into child. |
97 keydown('1', 'ArrowDown'); | 97 keydown('1', 'ArrowDown'); |
98 | 98 |
99 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); | 99 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); |
100 store.data.selectedFolder = '2'; | |
101 store.notifyObservers(); | |
102 | |
103 assertEquals('', getFolderNode('1').$.container.getAttribute('tabindex')); | |
104 assertEquals( | |
105 '0', getFolderNode('2').$.container.getAttribute('tabindex')); | |
100 assertFocused('1', '2'); | 106 assertFocused('1', '2'); |
101 | 107 |
102 // Move down past closed folders. | 108 // Move down past closed folders. |
103 keydown('2', 'ArrowDown'); | 109 keydown('2', 'ArrowDown'); |
104 assertDeepEquals(bookmarks.actions.selectFolder('7'), store.lastAction); | 110 assertDeepEquals(bookmarks.actions.selectFolder('7'), store.lastAction); |
105 assertFocused('2', '7'); | 111 assertFocused('2', '7'); |
106 | 112 |
107 // Move down past end of list. | 113 // Move down past end of list. |
108 store.resetLastAction(); | 114 store.resetLastAction(); |
109 keydown('7', 'ArrowDown'); | 115 keydown('7', 'ArrowDown'); |
110 assertDeepEquals(null, store.lastAction); | 116 assertDeepEquals(null, store.lastAction); |
111 | 117 |
112 // Move up past closed folders. | 118 // Move up past closed folders. |
113 keydown('7', 'ArrowUp'); | 119 keydown('7', 'ArrowUp'); |
114 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); | 120 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); |
115 assertFocused('7', '2'); | 121 assertFocused('7', '2'); |
116 | 122 |
117 // Move up into parent. | 123 // Move up into parent. |
118 keydown('2', 'ArrowUp'); | 124 keydown('2', 'ArrowUp'); |
119 assertDeepEquals(bookmarks.actions.selectFolder('1'), store.lastAction); | 125 assertDeepEquals(bookmarks.actions.selectFolder('1'), store.lastAction); |
120 assertFocused('2', '1'); | 126 assertFocused('2', '1'); |
121 | 127 |
122 // Move up past start of list. | 128 // Move up past start of list. |
123 store.resetLastAction(); | 129 store.resetLastAction(); |
124 keydown('1', 'ArrowUp'); | 130 keydown('1', 'ArrowUp'); |
125 assertDeepEquals(null, store.lastAction); | 131 assertDeepEquals(null, store.lastAction); |
126 }); | 132 }); |
133 | |
134 test('keyboard left/right', function() { | |
135 store.data.closedFolders = new Set('2'); | |
136 store.notifyObservers(); | |
137 | |
138 // Give keyboard focus to the first item. | |
139 getFolderNode('1').$.container.focus(); | |
140 | |
141 // Pressing right descends into first child. | |
142 keydown('1', 'ArrowRight'); | |
143 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); | |
144 | |
145 // Pressing right on a closed folder opens that folder | |
146 keydown('2', 'ArrowRight'); | |
147 assertDeepEquals( | |
148 bookmarks.actions.changeFolderOpen('2', true), store.lastAction); | |
149 | |
150 // Pressing right again descends into first child. | |
151 keydown('2', 'ArrowRight'); | |
152 assertDeepEquals(bookmarks.actions.selectFolder('3'), store.lastAction); | |
153 | |
154 // Pressing right on a folder with no children does nothing. | |
155 store.resetLastAction(); | |
156 keydown('3', 'ArrowRight'); | |
157 assertDeepEquals(null, store.lastAction); | |
158 | |
159 // Pressing left on a folder with no children ascends to parent. | |
160 keydown('3', 'ArrowDown'); | |
161 keydown('4', 'ArrowLeft'); | |
162 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); | |
163 | |
164 // Pressing left again closes the parent. | |
165 keydown('2', 'ArrowLeft'); | |
166 assertDeepEquals( | |
167 bookmarks.actions.changeFolderOpen('2', false), store.lastAction); | |
168 | |
169 // RTL flips left and right. | |
170 document.body.style.direction = 'rtl'; | |
tsergeant
2017/05/09 04:43:42
Nit: oh boy we'd better reset this after the test
calamity
2017/05/11 04:09:30
Done.
| |
171 keydown('2', 'ArrowLeft'); | |
172 assertDeepEquals( | |
173 bookmarks.actions.changeFolderOpen('2', true), store.lastAction); | |
174 | |
175 keydown('2', 'ArrowRight'); | |
176 assertDeepEquals( | |
177 bookmarks.actions.changeFolderOpen('2', false), store.lastAction); | |
178 }); | |
127 }); | 179 }); |
128 | 180 |
129 mocha.run(); | 181 mocha.run(); |
130 }); | 182 }); |
OLD | NEW |