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

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: Responded to comments 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 if (key === 'autoScanTime')
14 return 1;
15 };
16 this.switchAccessPrefs.getBooleanPref = function(key) {
17 if (key === 'enableAutoScan')
18 return false;
19 };
20 };
21
22 FakeSwitchAccess.prototype = {
23 /** @override */
24 moveToNode: function(doNext) {
25 if (doNext)
26 this.moveToNextCount += 1;
27 },
28 };
29
30 /**
31 * Test fixture for auto_scan_manager.js.
32 * @constructor
33 * @extends {testing.Test}
34 */
35 function AutoScanManagerUnitTest() {
36 testing.Test.call(this);
37 };
38
39 AutoScanManagerUnitTest.prototype = {
40 __proto__: testing.Test.prototype,
41
42 /** @override */
43 extraLibraries: [
44 'auto_scan_manager.js',
45 ],
46
47 /** @override */
48 isAsync: true,
49
50 /** @override */
51 browsePreload: DUMMY_URL,
52
53 /** @override */
54 setUp: function() {
55 // Use intervalCount and intervalDelay to check how many intervals are
56 // currently running (should be 1 at most) and what the current delay is.
57 window.intervalCount = 0;
58 window.intervalDelay = undefined;
59 window.realSetInterval = window.setInterval;
60 window.realClearInterval = window.clearInterval;
61
62 window.setInterval = function(func, delay) {
63 window.intervalCount += 1;
64 window.intervalDelay = delay;
65
66 // Set the actual delay to 1 ms to speed up the test.
67 return window.realSetInterval(func, 1);
68 };
69
70 window.clearInterval = function(intervalID) {
71 if (intervalID)
72 window.intervalCount -= 1;
73 window.realClearInterval(intervalID);
74 };
75 }
76 };
77
78 TEST_F('AutoScanManagerUnitTest', 'SetEnabled', function() {
79 let switchAccess = new FakeSwitchAccess();
80 let autoScanManager = new AutoScanManager(switchAccess);
81 assertFalse(autoScanManager.isRunning());
82 assertEquals(0, switchAccess.moveToNextCount);
83 assertEquals(0, window.intervalCount);
84
85 autoScanManager.setEnabled(true);
86 window.setTimeout(function() {
87 assertTrue(autoScanManager.isRunning());
88 assertGT(switchAccess.moveToNextCount, 1);
89 assertEquals(1, window.intervalCount);
90 testDone();
91 }, 10);
92 });
93
94 TEST_F('AutoScanManagerUnitTest', 'EnableMultiple', function() {
95 let switchAccess = new FakeSwitchAccess();
96 let autoScanManager = new AutoScanManager(switchAccess);
97 assertFalse(autoScanManager.isRunning());
98 assertEquals(0, switchAccess.moveToNextCount);
99 assertEquals(0, window.intervalCount);
100
101 autoScanManager.setEnabled(true);
102 autoScanManager.setEnabled(true);
103 autoScanManager.setEnabled(true);
104 window.setTimeout(function() {
105 assertTrue(autoScanManager.isRunning());
106 assertGT(switchAccess.moveToNextCount, 1);
107 assertEquals(1, window.intervalCount);
108 testDone();
109 }, 10);
110 });
111
112 TEST_F('AutoScanManagerUnitTest', 'EnableAndDisable', function() {
113 let switchAccess = new FakeSwitchAccess();
114 let autoScanManager = new AutoScanManager(switchAccess);
115 assertFalse(autoScanManager.isRunning());
116
117 autoScanManager.setEnabled(true);
118 assertTrue(autoScanManager.isRunning());
119
120 autoScanManager.setEnabled(false);
121 assertFalse(autoScanManager.isRunning());
122 testDone();
123 });
124
125 TEST_F('AutoScanManagerUnitTest', 'RestartMultiple', function() {
126 let switchAccess = new FakeSwitchAccess();
127 let autoScanManager = new AutoScanManager(switchAccess);
128 assertFalse(autoScanManager.isRunning());
129 assertEquals(0, switchAccess.moveToNextCount);
130 assertEquals(0, window.intervalCount);
131
132 autoScanManager.setEnabled(true);
133 autoScanManager.restartIfRunning();
134 autoScanManager.restartIfRunning();
135 autoScanManager.restartIfRunning();
136 window.setTimeout(function() {
137 assertTrue(autoScanManager.isRunning());
138 assertGT(switchAccess.moveToNextCount, 1);
139 assertEquals(1, window.intervalCount);
140 testDone();
141 }, 10);
142 });
143
144 TEST_F('AutoScanManagerUnitTest', 'RestartWhenOff', function() {
145 let switchAccess = new FakeSwitchAccess();
146 let autoScanManager = new AutoScanManager(switchAccess);
147 assertFalse(autoScanManager.isRunning());
148
149 autoScanManager.restartIfRunning();
150 assertFalse(autoScanManager.isRunning());
151 testDone();
152 });
153
154 TEST_F('AutoScanManagerUnitTest', 'SetScanTime', function() {
155 let switchAccess = new FakeSwitchAccess();
156 let autoScanManager = new AutoScanManager(switchAccess);
157 assertFalse(autoScanManager.isRunning());
158 assertEquals(1, autoScanManager.scanTime_);
159 assertEquals(undefined, window.intervalDelay);
160
161 autoScanManager.setScanTime(2);
162 assertFalse(autoScanManager.isRunning());
163 assertEquals(2, autoScanManager.scanTime_);
164 assertEquals(undefined, window.intervalDelay);
165
166 autoScanManager.setEnabled(true);
167 assertTrue(autoScanManager.isRunning());
168 assertEquals(2, autoScanManager.scanTime_);
169 assertEquals(2, window.intervalDelay);
170
171 autoScanManager.setScanTime(5);
172 assertTrue(autoScanManager.isRunning());
173 assertEquals(5, autoScanManager.scanTime_);
174 assertEquals(5, window.intervalDelay);
175 testDone();
176 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698