Chromium Code Reviews| 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 |