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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/switch_access/auto_scan_manager_unittest.gtestjs
diff --git a/chrome/browser/resources/chromeos/switch_access/auto_scan_manager_unittest.gtestjs b/chrome/browser/resources/chromeos/switch_access/auto_scan_manager_unittest.gtestjs
new file mode 100644
index 0000000000000000000000000000000000000000..d2b79fa36eebc1156423fc686b2c5b2b926f25a1
--- /dev/null
+++ b/chrome/browser/resources/chromeos/switch_access/auto_scan_manager_unittest.gtestjs
@@ -0,0 +1,176 @@
+// 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.
+
+/**
+ * @constructor
+ * @implements {SwitchAccessInterface}
+ */
+function FakeSwitchAccess() {
+ this.moveToNextCount = 0;
+ this.switchAccessPrefs = {};
+ this.switchAccessPrefs.getNumberPref = function(key) {
+ if (key === 'autoScanTime')
+ return 1;
+ };
+ this.switchAccessPrefs.getBooleanPref = function(key) {
+ if (key === 'enableAutoScan')
+ return false;
+ };
+};
+
+FakeSwitchAccess.prototype = {
+ /** @override */
+ moveToNode: function(doNext) {
+ if (doNext)
+ this.moveToNextCount += 1;
+ },
+};
+
+/**
+ * Test fixture for auto_scan_manager.js.
+ * @constructor
+ * @extends {testing.Test}
+ */
+function AutoScanManagerUnitTest() {
+ testing.Test.call(this);
+};
+
+AutoScanManagerUnitTest.prototype = {
+ __proto__: testing.Test.prototype,
+
+ /** @override */
+ extraLibraries: [
+ 'auto_scan_manager.js',
+ ],
+
+ /** @override */
+ isAsync: true,
+
+ /** @override */
+ browsePreload: DUMMY_URL,
+
+ /** @override */
+ setUp: function() {
+ // Use intervalCount and intervalDelay to check how many intervals are
+ // currently running (should be 1 at most) and what the current delay is.
+ window.intervalCount = 0;
+ window.intervalDelay = undefined;
+ window.realSetInterval = window.setInterval;
+ window.realClearInterval = window.clearInterval;
+
+ window.setInterval = function(func, delay) {
+ window.intervalCount += 1;
+ window.intervalDelay = delay;
+
+ // Set the actual delay to 1 ms to speed up the test.
+ return window.realSetInterval(func, 1);
+ };
+
+ window.clearInterval = function(intervalID) {
+ if (intervalID)
+ window.intervalCount -= 1;
+ window.realClearInterval(intervalID);
+ };
+ }
+};
+
+TEST_F('AutoScanManagerUnitTest', 'SetEnabled', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+ assertEquals(0, switchAccess.moveToNextCount);
+ assertEquals(0, window.intervalCount);
+
+ autoScanManager.setEnabled(true);
+ window.setTimeout(function() {
+ assertTrue(autoScanManager.isRunning());
+ assertGT(switchAccess.moveToNextCount, 1);
+ assertEquals(1, window.intervalCount);
+ testDone();
+ }, 10);
+});
+
+TEST_F('AutoScanManagerUnitTest', 'EnableMultiple', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+ assertEquals(0, switchAccess.moveToNextCount);
+ assertEquals(0, window.intervalCount);
+
+ autoScanManager.setEnabled(true);
+ autoScanManager.setEnabled(true);
+ autoScanManager.setEnabled(true);
+ window.setTimeout(function() {
+ assertTrue(autoScanManager.isRunning());
+ assertGT(switchAccess.moveToNextCount, 1);
+ assertEquals(1, window.intervalCount);
+ testDone();
+ }, 10);
+});
+
+TEST_F('AutoScanManagerUnitTest', 'EnableAndDisable', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+
+ autoScanManager.setEnabled(true);
+ assertTrue(autoScanManager.isRunning());
+
+ autoScanManager.setEnabled(false);
+ assertFalse(autoScanManager.isRunning());
+ testDone();
+});
+
+TEST_F('AutoScanManagerUnitTest', 'RestartMultiple', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+ assertEquals(0, switchAccess.moveToNextCount);
+ assertEquals(0, window.intervalCount);
+
+ autoScanManager.setEnabled(true);
+ autoScanManager.restartIfRunning();
+ autoScanManager.restartIfRunning();
+ autoScanManager.restartIfRunning();
+ window.setTimeout(function() {
+ assertTrue(autoScanManager.isRunning());
+ assertGT(switchAccess.moveToNextCount, 1);
+ assertEquals(1, window.intervalCount);
+ testDone();
+ }, 10);
+});
+
+TEST_F('AutoScanManagerUnitTest', 'RestartWhenOff', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+
+ autoScanManager.restartIfRunning();
+ assertFalse(autoScanManager.isRunning());
+ testDone();
+});
+
+TEST_F('AutoScanManagerUnitTest', 'SetScanTime', function() {
+ let switchAccess = new FakeSwitchAccess();
+ let autoScanManager = new AutoScanManager(switchAccess);
+ assertFalse(autoScanManager.isRunning());
+ assertEquals(1, autoScanManager.scanTime_);
+ assertEquals(undefined, window.intervalDelay);
+
+ autoScanManager.setScanTime(2);
+ assertFalse(autoScanManager.isRunning());
+ assertEquals(2, autoScanManager.scanTime_);
+ assertEquals(undefined, window.intervalDelay);
+
+ autoScanManager.setEnabled(true);
+ assertTrue(autoScanManager.isRunning());
+ assertEquals(2, autoScanManager.scanTime_);
+ assertEquals(2, window.intervalDelay);
+
+ autoScanManager.setScanTime(5);
+ assertTrue(autoScanManager.isRunning());
+ assertEquals(5, autoScanManager.scanTime_);
+ assertEquals(5, window.intervalDelay);
+ testDone();
+});

Powered by Google App Engine
This is Rietveld 408576698