OLD | NEW |
---|---|
(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 }); | |
OLD | NEW |