| 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 * Test fixture for tree_walker.js. | 6 * Test fixture for tree_walker.js. |
| 7 * @constructor | 7 * @constructor |
| 8 * @extends {testing.Test} | 8 * @extends {testing.Test} |
| 9 */ | 9 */ |
| 10 function AutomationTreeWalkerUnitTest () { | 10 function AutomationTreeWalkerUnitTest () { |
| 11 testing.Test.call(this); | 11 testing.Test.call(this); |
| 12 }; | 12 }; |
| 13 | 13 |
| 14 AutomationTreeWalkerUnitTest.prototype = { | 14 AutomationTreeWalkerUnitTest.prototype = { |
| 15 __proto__: testing.Test.prototype, | 15 __proto__: testing.Test.prototype, |
| 16 | 16 |
| 17 /** @override */ | 17 /** @override */ |
| 18 extraLibraries: [ | 18 extraLibraries: [ |
| 19 'tree_walker.js', | 19 'tree_walker.js', |
| 20 ], | 20 ], |
| 21 | 21 |
| 22 /** @override */ | 22 /** @override */ |
| 23 browsePreload: DUMMY_URL, | 23 browsePreload: DUMMY_URL, |
| 24 | 24 |
| 25 getSampleTree: function() { | 25 getSampleTree: function() { |
| 26 let loc = {left: 0, top: 0, width: 0, height: 0}; |
| 26 // root | 27 // root |
| 27 // middle1 | 28 // middle1 |
| 28 // leaf1 | 29 // leaf1 |
| 29 // leaf2 | 30 // leaf2 |
| 30 // leaf3 | 31 // leaf3 |
| 31 // middle2 | 32 // middle2 |
| 32 // leaf4 | 33 // leaf4 |
| 33 // leaf5 | 34 // leaf5 |
| 34 let root = {}; | 35 let root = {location: loc, state: {}}; |
| 35 let middle1 = {}; | 36 let middle1 = {location: loc, state: {}}; |
| 36 let middle2 = {}; | 37 let middle2 = {location: loc, state: {}}; |
| 37 let leaf1 = {}; | 38 let leaf1 = {location: loc, state: {}}; |
| 38 let leaf2 = {}; | 39 let leaf2 = {location: loc, state: {}}; |
| 39 let leaf3 = {}; | 40 let leaf3 = {location: loc, state: {}}; |
| 40 let leaf4 = {}; | 41 let leaf4 = {location: loc, state: {}}; |
| 41 let leaf5 = {}; | 42 let leaf5 = {location: loc, state: {}}; |
| 42 | 43 |
| 43 root.firstChild = middle1; | 44 root.firstChild = middle1; |
| 44 root.lastChild = middle2; | 45 root.lastChild = middle2; |
| 45 | 46 |
| 46 middle1.parent = root; | 47 middle1.parent = root; |
| 47 middle2.parent = root; | 48 middle2.parent = root; |
| 48 middle1.nextSibling = middle2; | 49 middle1.nextSibling = middle2; |
| 49 middle2.previousSibling = middle1; | 50 middle2.previousSibling = middle1; |
| 50 middle1.firstChild = leaf1; | 51 middle1.firstChild = leaf1; |
| 51 middle1.lastChild = leaf3; | 52 middle1.lastChild = leaf3; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 72 leaf1: leaf1, | 73 leaf1: leaf1, |
| 73 leaf2: leaf2, | 74 leaf2: leaf2, |
| 74 leaf3: leaf3, | 75 leaf3: leaf3, |
| 75 leaf4: leaf4, | 76 leaf4: leaf4, |
| 76 leaf5: leaf5 | 77 leaf5: leaf5 |
| 77 }; | 78 }; |
| 78 } | 79 } |
| 79 }; | 80 }; |
| 80 | 81 |
| 81 TEST_F('AutomationTreeWalkerUnitTest', 'MoveToNode', function() { | 82 TEST_F('AutomationTreeWalkerUnitTest', 'MoveToNode', function() { |
| 83 chrome.automation = { |
| 84 RoleType: {DESKTOP: 'desktop', TAB: 'tab', TAB_LIST: 'tabList'}, |
| 85 StateType: {FOCUSABLE: 'focusable', OFFSCREEN: 'offscreen'} |
| 86 }; |
| 87 |
| 82 let t = this.getSampleTree(); | 88 let t = this.getSampleTree(); |
| 83 let treeWalker = new AutomationTreeWalker(); | 89 let treeWalker = new AutomationTreeWalker(); |
| 84 | 90 |
| 85 let interesting = {focusable: true}; | 91 let interesting = {focusable: true}; |
| 86 t.leaf1.state = interesting; | 92 t.leaf1.state = interesting; |
| 87 t.leaf2.state = interesting; | 93 t.leaf2.state = interesting; |
| 88 t.middle2.state = interesting; | 94 t.middle2.state = interesting; |
| 89 t.leaf5.state = interesting; | 95 t.leaf5.state = interesting; |
| 90 | 96 |
| 91 // Move to next node. | 97 // Move to next node. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 assertEquals(t.leaf3, treeWalker.getYoungestDescendant_(t.middle1)); | 153 assertEquals(t.leaf3, treeWalker.getYoungestDescendant_(t.middle1)); |
| 148 assertEquals(t.leaf5, treeWalker.getYoungestDescendant_(t.middle2)); | 154 assertEquals(t.leaf5, treeWalker.getYoungestDescendant_(t.middle2)); |
| 149 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf1)); | 155 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf1)); |
| 150 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf2)); | 156 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf2)); |
| 151 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf3)); | 157 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf3)); |
| 152 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf4)); | 158 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf4)); |
| 153 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf5)); | 159 assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf5)); |
| 154 }); | 160 }); |
| 155 | 161 |
| 156 TEST_F('AutomationTreeWalkerUnitTest', 'IsInteresting', function() { | 162 TEST_F('AutomationTreeWalkerUnitTest', 'IsInteresting', function() { |
| 157 let node1 = {}; | 163 chrome.automation = { |
| 158 let node2 = {state: {}}; | 164 RoleType: {DESKTOP: 'desktop', TAB: 'tab', TAB_LIST: 'tabList'}, |
| 159 let node3 = {state: {focusable: false}}; | 165 StateType: {FOCUSABLE: 'focusable', OFFSCREEN: 'offscreen'} |
| 160 let node4 = {state: {focusable: true}}; | 166 }; |
| 167 |
| 161 let treeWalker = new AutomationTreeWalker(); | 168 let treeWalker = new AutomationTreeWalker(); |
| 162 | 169 |
| 163 assertTrue(treeWalker.isInteresting_(node1) === undefined); | 170 // Testing focusable. |
| 164 assertTrue(treeWalker.isInteresting_(node2) === undefined); | 171 let loc1 = {left: 0, top: 0, width: 0, height: 0}; |
| 165 assertFalse(treeWalker.isInteresting_(node3)); | 172 let node1 = {location: loc1, state: {}}; |
| 166 assertTrue(treeWalker.isInteresting_(node4)); | 173 let node2 = {location: loc1, state: {focusable: false}}; |
| 174 let node3 = {location: loc1, state: {focusable: true}}; |
| 175 assertFalse(treeWalker.isInteresting_(node1)); |
| 176 assertFalse(treeWalker.isInteresting_(node2)); |
| 177 assertTrue(treeWalker.isInteresting_(node3)); |
| 178 |
| 179 // Testing onscreen. |
| 180 let loc2 = {left: -1, top: 0, width: 0, height: 0}; |
| 181 let loc3 = {left: 0, top: -1, width: 0, height: 0}; |
| 182 let node4 = {location: loc2, state: {focusable: true}}; |
| 183 let node5 = {location: loc3, state: {focusable: true}}; |
| 184 assertFalse(treeWalker.isInteresting_(node4)); |
| 185 assertFalse(treeWalker.isInteresting_(node5)); |
| 186 |
| 187 // Testing if tab. |
| 188 let node6 = {location: loc1, role: 'desktop', state: {}}; |
| 189 let node7 = {location: loc1, role: 'tabList', state: {}}; |
| 190 let node8 = |
| 191 {location: loc1, parent: node7, root: node6, role: 'tab', state: {}}; |
| 192 assertFalse(treeWalker.isInteresting_(node6)); |
| 193 assertFalse(treeWalker.isInteresting_(node7)); |
| 194 assertTrue(treeWalker.isInteresting_(node8)); |
| 167 }); | 195 }); |
| OLD | NEW |