Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Side by Side Diff: chrome/browser/resources/chromeos/switch_access/auto_scan_manager_unittest.gtestjs

Issue 2793073002: Added unit tests for auto_scan_manager. Created switch access test target. (Closed)
Patch Set: Finished auto_scan_manager_unittest and made separate target for switch access tests. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 /**
6 * @constructor
7 * @implements {SwitchAccessInterface}
8 */
9 function FakeSwitchAccess() {
10 this.moveToNextCount = 0;
11 this.switchAccessPrefs = {};
12 this.switchAccessPrefs.getNumberPref = function(key) {
13 return 1;
dmazzoni 2017/04/07 15:54:34 Does this set the time delay to 1 for tests? I'd
elichtenberg 2017/04/07 23:06:30 Good point, sorry I didn't make it clear earlier.
14 };
15 this.switchAccessPrefs.getBooleanPref = function(key) {
16 return false;
17 };
18 };
19
20 FakeSwitchAccess.prototype = {
21 /** @override */
22 moveToNode: function(doNext) {
23 if (doNext)
24 this.moveToNextCount += 1;
25 },
26 };
27
28 /**
29 * Test fixture for auto_scan_manager.js.
30 * @constructor
31 * @extends {testing.Test}
32 */
33 function AutoScanManagerUnitTest() {
34 testing.Test.call(this);
35 };
36
37 AutoScanManagerUnitTest.prototype = {
38 __proto__: testing.Test.prototype,
39
40 /** @override */
41 extraLibraries: [
42 'auto_scan_manager.js',
43 ],
44
45 /** @override */
46 isAsync: true,
47
48 /** @override */
49 browsePreload: DUMMY_URL,
50
51 /** @override */
52 setUp: function() {
53 // Use intervalCount and intervalDelay to check how many intervals are
54 // currently running (should be 1 at most) and what the current delay is.
55 window.intervalCount = 0;
56 window.intervalDelay = undefined;
57 window.realSetInterval = window.setInterval;
58 window.realClearInterval = window.clearInterval;
59
60 window.setInterval = function(func, delay) {
61 window.intervalCount += 1;
62 window.intervalDelay = delay;
63 return window.realSetInterval(func, delay);
dmazzoni 2017/04/07 15:54:34 Would it work to set the "real" delay to something
elichtenberg 2017/04/07 23:06:30 Yes that would work. I'm just testing that autoSca
64 };
65
66 window.clearInterval = function(intervalID) {
67 if (intervalID)
68 window.intervalCount -= 1;
69 window.realClearInterval(intervalID);
70 };
71 }
72 };
73
74 TEST_F('AutoScanManagerUnitTest', 'SetEnabled', function() {
75 let switchAccess = new FakeSwitchAccess();
76 let autoScanManager = new AutoScanManager(switchAccess);
77 assertFalse(autoScanManager.isRunning());
78 assertEquals(0, switchAccess.moveToNextCount);
79 assertEquals(0, window.intervalCount);
80
81 autoScanManager.setEnabled(true);
82 window.setTimeout(function() {
83 assertTrue(autoScanManager.isRunning());
84 assertGT(switchAccess.moveToNextCount, 1);
85 assertEquals(1, window.intervalCount);
86 testDone();
87 }, 10);
88 });
89
90 TEST_F('AutoScanManagerUnitTest', 'EnableMultiple', function() {
91 let switchAccess = new FakeSwitchAccess();
92 let autoScanManager = new AutoScanManager(switchAccess);
93 assertFalse(autoScanManager.isRunning());
94 assertEquals(0, switchAccess.moveToNextCount);
95 assertEquals(0, window.intervalCount);
96
97 autoScanManager.setEnabled(true);
98 autoScanManager.setEnabled(true);
99 autoScanManager.setEnabled(true);
100 window.setTimeout(function() {
101 assertTrue(autoScanManager.isRunning());
102 assertGT(switchAccess.moveToNextCount, 1);
103 assertEquals(1, window.intervalCount);
104 testDone();
105 }, 10);
106 });
107
108 TEST_F('AutoScanManagerUnitTest', 'EnableAndDisable', function() {
109 let switchAccess = new FakeSwitchAccess();
110 let autoScanManager = new AutoScanManager(switchAccess);
111 assertFalse(autoScanManager.isRunning());
112
113 autoScanManager.setEnabled(true);
114 assertTrue(autoScanManager.isRunning());
115
116 autoScanManager.setEnabled(false);
117 assertFalse(autoScanManager.isRunning());
118 testDone();
119 });
120
121 TEST_F('AutoScanManagerUnitTest', 'RestartMultiple', function() {
122 let switchAccess = new FakeSwitchAccess();
123 let autoScanManager = new AutoScanManager(switchAccess);
124 assertFalse(autoScanManager.isRunning());
125 assertEquals(0, switchAccess.moveToNextCount);
126 assertEquals(0, window.intervalCount);
127
128 autoScanManager.setEnabled(true);
129 autoScanManager.restartIfRunning();
130 autoScanManager.restartIfRunning();
131 autoScanManager.restartIfRunning();
132 window.setTimeout(function() {
133 assertTrue(autoScanManager.isRunning());
134 assertGT(switchAccess.moveToNextCount, 1);
135 assertEquals(1, window.intervalCount);
136 testDone();
137 }, 10);
138 });
139
140 TEST_F('AutoScanManagerUnitTest', 'RestartWhenOff', function() {
141 let switchAccess = new FakeSwitchAccess();
142 let autoScanManager = new AutoScanManager(switchAccess);
143 assertFalse(autoScanManager.isRunning());
144
145 autoScanManager.restartIfRunning();
146 assertFalse(autoScanManager.isRunning());
147 testDone();
148 });
149
150 TEST_F('AutoScanManagerUnitTest', 'SetScanTime', function() {
151 let switchAccess = new FakeSwitchAccess();
152 let autoScanManager = new AutoScanManager(switchAccess);
153 assertFalse(autoScanManager.isRunning());
154 assertEquals(1, autoScanManager.scanTime_);
155 assertEquals(undefined, window.intervalDelay);
156
157 autoScanManager.setScanTime(2);
158 assertFalse(autoScanManager.isRunning());
159 assertEquals(2, autoScanManager.scanTime_);
160 assertEquals(undefined, window.intervalDelay);
161
162 autoScanManager.setEnabled(true);
163 assertTrue(autoScanManager.isRunning());
164 assertEquals(2, autoScanManager.scanTime_);
165 assertEquals(2, window.intervalDelay);
166
167 autoScanManager.setScanTime(5);
168 assertTrue(autoScanManager.isRunning());
169 assertEquals(5, autoScanManager.scanTime_);
170 assertEquals(5, window.intervalDelay);
171 testDone();
172 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698