Index: chrome/browser/resources/chromeos/switch_access/switch_access_unittest.gtestjs |
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_unittest.gtestjs b/chrome/browser/resources/chromeos/switch_access/switch_access_unittest.gtestjs |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c181fcb0468401f673f7421564bc428d6059af84 |
--- /dev/null |
+++ b/chrome/browser/resources/chromeos/switch_access/switch_access_unittest.gtestjs |
@@ -0,0 +1,125 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * Test fixture for switch_access.js. |
+ * @constructor |
+ * @extends {testing.Test} |
+ */ |
+function SwitchAccessUnitTest () { |
+ testing.Test.call(this); |
+}; |
+ |
+SwitchAccessUnitTest.prototype = { |
+ __proto__: testing.Test.prototype, |
+ |
+ /** @override */ |
+ extraLibraries: [ |
+ 'test_support.js', |
+ 'switch_access.js', |
+ 'testable_switch_access.js', |
+ ], |
+ |
+ getSampleTree: function() { |
dmazzoni
2017/03/14 16:08:49
To make it easier to understand, I recommend a bit
elichtenberg
2017/03/14 17:36:49
Done. Do I need an extra line above the comment, o
|
+ let root = {}; |
+ let middle1 = {}; |
+ let middle2 = {}; |
+ let leaf1 = {}; |
+ let leaf2 = {}; |
+ let leaf3 = {}; |
+ let leaf4 = {}; |
+ let leaf5 = {}; |
+ |
+ root.firstChild = middle1; |
+ root.lastChild = middle2; |
+ |
+ middle1.parent = root; |
+ middle2.parent = root; |
+ middle1.nextSibling = middle2; |
+ middle2.previousSibling = middle1; |
+ middle1.firstChild = leaf1; |
+ middle1.lastChild = leaf3; |
+ middle2.firstChild = leaf4; |
+ middle2.lastChild = leaf5; |
+ |
+ leaf1.parent = middle1; |
+ leaf2.parent = middle1; |
+ leaf3.parent = middle1; |
+ leaf1.nextSibling = leaf2; |
+ leaf2.previousSibling = leaf1; |
+ leaf2.nextSibling = leaf3; |
+ leaf3.previousSibling = leaf2; |
+ |
+ leaf4.parent = middle2; |
+ leaf5.parent = middle2; |
+ leaf4.nextSibling = leaf5; |
+ leaf5.previousSibling = leaf4; |
+ |
+ return { |
+ root: root, |
+ middle1: middle1, |
+ middle2: middle2, |
+ leaf1: leaf1, |
+ leaf2: leaf2, |
+ leaf3: leaf3, |
+ leaf4: leaf4, |
+ leaf5: leaf5 |
+ }; |
+ } |
+}; |
+ |
+TEST_F('SwitchAccessUnitTest', 'GetNextNode', function() { |
+ let tree = this.getSampleTree(); |
+ let tsa = new TestableSwitchAccess(); |
+ |
+ assertTrue(tsa.getNextNode(tree.root) === tree.middle1); |
dmazzoni
2017/03/14 16:08:49
An alternative idea for readability:
var inOrder
elichtenberg
2017/03/14 17:36:49
Done. Did it slightly differently but with the sam
|
+ assertTrue(tsa.getNextNode(tree.middle1) === tree.leaf1); |
+ assertTrue(tsa.getNextNode(tree.leaf1) === tree.leaf2); |
+ assertTrue(tsa.getNextNode(tree.leaf2) === tree.leaf3); |
+ assertTrue(tsa.getNextNode(tree.leaf3) === tree.middle2); |
+ assertTrue(tsa.getNextNode(tree.middle2) === tree.leaf4); |
+ assertTrue(tsa.getNextNode(tree.leaf4) === tree.leaf5); |
+ assertTrue(tsa.getNextNode(tree.leaf5) === null); |
+}); |
+ |
+TEST_F('SwitchAccessUnitTest', 'GetPreviousNode', function() { |
+ let tree = this.getSampleTree(); |
+ let tsa = new TestableSwitchAccess(); |
+ |
+ assertTrue(tsa.getPreviousNode(tree.leaf5) === tree.leaf4); |
+ assertTrue(tsa.getPreviousNode(tree.leaf4) === tree.middle2); |
+ assertTrue(tsa.getPreviousNode(tree.middle2) === tree.leaf3); |
+ assertTrue(tsa.getPreviousNode(tree.leaf3) === tree.leaf2); |
+ assertTrue(tsa.getPreviousNode(tree.leaf2) === tree.leaf1); |
+ assertTrue(tsa.getPreviousNode(tree.leaf1) === tree.middle1); |
+ assertTrue(tsa.getPreviousNode(tree.middle1) === tree.root); |
+ assertTrue(tsa.getPreviousNode(tree.root) === null); |
+}); |
+ |
+TEST_F('SwitchAccessUnitTest', 'GetYoungestDescendant', function() { |
+ let tree = this.getSampleTree(); |
+ let tsa = new TestableSwitchAccess(); |
+ |
+ assertTrue(tsa.getYoungestDescendant(tree.root) === tree.leaf5); |
+ assertTrue(tsa.getYoungestDescendant(tree.middle1) === tree.leaf3); |
+ assertTrue(tsa.getYoungestDescendant(tree.middle2) === tree.leaf5); |
+ assertTrue(tsa.getYoungestDescendant(tree.leaf1) === null); |
+ assertTrue(tsa.getYoungestDescendant(tree.leaf2) === null); |
+ assertTrue(tsa.getYoungestDescendant(tree.leaf3) === null); |
+ assertTrue(tsa.getYoungestDescendant(tree.leaf4) === null); |
+ assertTrue(tsa.getYoungestDescendant(tree.leaf5) === null); |
+}); |
+ |
+TEST_F('SwitchAccessUnitTest', 'IsInteresting', function() { |
+ let node1 = {}; |
+ let node2 = {state: {}}; |
+ let node3 = {state: {focusable: false}}; |
+ let node4 = {state: {focusable: true}}; |
+ let tsa = new TestableSwitchAccess(); |
+ |
+ assertTrue(tsa.isInteresting(node1) === undefined); |
+ assertTrue(tsa.isInteresting(node2) === undefined); |
+ assertFalse(tsa.isInteresting(node3)); |
+ assertTrue(tsa.isInteresting(node4)); |
+}); |