| 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..5ed07b0cf1a58637d4edc55907cdaeb56ec16d8d
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/chromeos/switch_access/switch_access_unittest.gtestjs
|
| @@ -0,0 +1,135 @@
|
| +// 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() {
|
| + // root
|
| + // middle1
|
| + // leaf1
|
| + // leaf2
|
| + // leaf3
|
| + // middle2
|
| + // leaf4
|
| + // leaf5
|
| + 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();
|
| +
|
| + let order =
|
| + [tree.root, tree.middle1, tree.leaf1, tree.leaf2, tree.leaf3,
|
| + tree.middle2, tree.leaf4, tree.leaf5];
|
| + let node = tree.root;
|
| + for (let i = 0; i < order.length; i++) {
|
| + assertEquals(order[i], node);
|
| + node = tsa.getNextNode(node);
|
| + }
|
| + assertEquals(null, node);
|
| +});
|
| +
|
| +TEST_F('SwitchAccessUnitTest', 'GetPreviousNode', function() {
|
| + let tree = this.getSampleTree();
|
| + let tsa = new TestableSwitchAccess();
|
| +
|
| + let order =
|
| + [tree.leaf5, tree.leaf4, tree.middle2, tree.leaf3, tree.leaf2,
|
| + tree.leaf1, tree.middle1, tree.root];
|
| + let node = tree.leaf5;
|
| + for (let i = 0; i < order.length; i++) {
|
| + assertEquals(order[i], node);
|
| + node = tsa.getPreviousNode(node);
|
| + }
|
| + assertEquals(null, node);
|
| +});
|
| +
|
| +TEST_F('SwitchAccessUnitTest', 'GetYoungestDescendant', function() {
|
| + let tree = this.getSampleTree();
|
| + let tsa = new TestableSwitchAccess();
|
| +
|
| + assertEquals(tree.leaf5, tsa.getYoungestDescendant(tree.root));
|
| + assertEquals(tree.leaf3, tsa.getYoungestDescendant(tree.middle1));
|
| + assertEquals(tree.leaf5, tsa.getYoungestDescendant(tree.middle2));
|
| + assertEquals(null, tsa.getYoungestDescendant(tree.leaf1));
|
| + assertEquals(null, tsa.getYoungestDescendant(tree.leaf2));
|
| + assertEquals(null, tsa.getYoungestDescendant(tree.leaf3));
|
| + assertEquals(null, tsa.getYoungestDescendant(tree.leaf4));
|
| + assertEquals(null, tsa.getYoungestDescendant(tree.leaf5));
|
| +});
|
| +
|
| +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));
|
| +});
|
|
|