Index: chrome/test/data/webui/settings/device_page_tests.js |
diff --git a/chrome/test/data/webui/settings/device_page_tests.js b/chrome/test/data/webui/settings/device_page_tests.js |
index 227fcfeb362b998d64f4a9bfefae064d592f2c51..c7e678b6e3710afd86212056819a0d343088a087 100644 |
--- a/chrome/test/data/webui/settings/device_page_tests.js |
+++ b/chrome/test/data/webui/settings/device_page_tests.js |
@@ -20,6 +20,7 @@ cr.define('device_page_tests', function() { |
function TestDevicePageBrowserProxy() { |
this.keyboardShortcutsOverlayShown_ = 0; |
this.updatePowerStatusCalled_ = 0; |
+ this.requestPowerManagementSettingsCalled_ = 0; |
this.onNoteTakingAppsUpdated_ = null; |
this.requestNoteTakingApps_ = 0; |
this.setPreferredNoteTakingApp_ = ''; |
@@ -65,6 +66,21 @@ cr.define('device_page_tests', function() { |
this.powerSourceId_ = powerSourceId; |
}, |
+ /** @override */ |
+ requestPowerManagementSettings: function() { |
+ this.requestPowerManagementSettingsCalled_++; |
+ }, |
+ |
+ /** @override */ |
+ setIdleBehavior: function(behavior) { |
+ this.idleBehavior_ = behavior; |
+ }, |
+ |
+ /** @override */ |
+ setLidClosedBehavior: function(behavior) { |
+ this.lidClosedBehavior_ = behavior; |
+ }, |
+ |
/** @override */ |
setNoteTakingAppsUpdatedCallback: function(callback) { |
this.onNoteTakingAppsUpdated_ = callback; |
@@ -241,6 +257,27 @@ cr.define('device_page_tests', function() { |
}); |
}; |
+ /** |
+ * @param {settings.IdleBehavior} idleBehavior |
+ * @param {boolean} idleManaged |
+ * @param {settings.LidClosedBehavior} lidClosedBehavior |
+ * @param {boolean} lidClosedManaged |
+ * @param {boolean} hasLid |
+ */ |
+ function sendPowerManagementSettings(idleBehavior, idleManaged, |
+ lidClosedBehavior, lidClosedManaged, |
+ hasLid) { |
+ cr.webUIListenerCallback( |
+ 'power-management-settings-changed', |
+ { |
+ idleBehavior: idleBehavior, |
+ idleManaged: idleManaged, |
+ lidClosedBehavior: lidClosedBehavior, |
+ lidClosedManaged: lidClosedManaged, |
+ hasLid: hasLid, |
+ }); |
michaelpg
2017/06/16 01:35:01
after changing the handler to this.async (prior co
|
+ }; |
+ |
/** |
* @param {!HTMLElement} pointersPage |
* @param {boolean} expected |
@@ -593,6 +630,13 @@ cr.define('device_page_tests', function() { |
} |
suite('no power settings', function() { |
+ suiteSetup(function() { |
+ // Never show power settings. |
+ loadTimeData.overrideValues({ |
+ enablePowerSettings: false, |
+ }); |
+ }); |
+ |
test('power row hidden', function() { |
assertEquals(null, devicePage.$$('#powerRow')); |
assertEquals(0, |
@@ -606,6 +650,8 @@ cr.define('device_page_tests', function() { |
var powerSourceRow; |
var powerSourceWrapper; |
var powerSourceSelect; |
+ var idleSelect; |
+ var lidClosedSelect; |
suiteSetup(function() { |
// Always show power settings. |
@@ -626,6 +672,17 @@ cr.define('device_page_tests', function() { |
1, |
settings.DevicePageBrowserProxyImpl.getInstance() |
.updatePowerStatusCalled_); |
+ |
+ idleSelect = assert(powerPage.$$('#idleSelect')); |
+ lidClosedSelect = assert(powerPage.$$('#lidClosedSelect')); |
+ |
+ assertEquals( |
+ 1, |
+ settings.DevicePageBrowserProxyImpl.getInstance() |
+ .requestPowerManagementSettingsCalled_); |
michaelpg
2017/06/16 01:35:00
nit: make this not private (no underscore), or add
Daniel Erat
2017/06/16 02:34:25
Acknowledged.
|
+ sendPowerManagementSettings( |
+ settings.IdleBehavior.DISPLAY_OFF_SLEEP, false, |
michaelpg
2017/06/16 01:35:00
nit: add comments for parameter names for these bo
Daniel Erat
2017/06/16 02:34:25
Done.
|
+ settings.LidClosedBehavior.SUSPEND, false, true); |
}); |
}); |
@@ -700,6 +757,84 @@ cr.define('device_page_tests', function() { |
powerSource.id, |
settings.DevicePageBrowserProxyImpl.getInstance().powerSourceId_); |
}); |
+ |
+ test('set idle behavior', function() { |
+ idleSelect.value = settings.IdleBehavior.DISPLAY_ON; |
+ idleSelect.dispatchEvent(new CustomEvent('change')); |
michaelpg
2017/06/16 01:35:00
maybe make a helper function selectValue(selectId,
Daniel Erat
2017/06/16 02:34:25
Done.
|
+ Polymer.dom.flush(); |
+ expectEquals( |
+ settings.IdleBehavior.DISPLAY_ON, |
+ settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_); |
+ |
+ idleSelect.value = settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE; |
+ idleSelect.dispatchEvent(new CustomEvent('change')); |
+ Polymer.dom.flush(); |
+ expectEquals( |
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE, |
+ settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_); |
+ }); |
+ |
+ test('set lid behavior', function() { |
+ lidClosedSelect.value = settings.LidClosedBehavior.DO_NOTHING; |
+ lidClosedSelect.dispatchEvent(new CustomEvent('change')); |
+ Polymer.dom.flush(); |
+ expectEquals( |
+ settings.LidClosedBehavior.DO_NOTHING, |
+ settings.DevicePageBrowserProxyImpl.getInstance() |
+ .lidClosedBehavior_); |
+ |
+ lidClosedSelect.value = settings.LidClosedBehavior.SUSPEND; |
+ lidClosedSelect.dispatchEvent(new CustomEvent('change')); |
+ Polymer.dom.flush(); |
+ expectEquals( |
+ settings.LidClosedBehavior.SUSPEND, |
+ settings.DevicePageBrowserProxyImpl.getInstance() |
+ .lidClosedBehavior_); |
+ }); |
+ |
+ test('display idle and lid behavior', function() { |
+ sendPowerManagementSettings( |
+ settings.IdleBehavior.DISPLAY_ON, false, |
+ settings.LidClosedBehavior.DO_NOTHING, false, true); |
+ expectEquals( |
+ settings.IdleBehavior.DISPLAY_ON.toString(), idleSelect.value); |
+ expectFalse(idleSelect.disabled); |
+ expectEquals(null, powerPage.$$('#idleManagedIndicator')); |
+ expectEquals( |
+ settings.LidClosedBehavior.DO_NOTHING.toString(), |
+ lidClosedSelect.value); |
+ expectFalse(lidClosedSelect.disabled); |
+ expectEquals(null, powerPage.$$('#lidClosedManagedIndicator')); |
+ |
+ sendPowerManagementSettings( |
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE, false, |
+ settings.LidClosedBehavior.SUSPEND, false, true); |
+ expectEquals( |
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE.toString(), |
+ idleSelect.value); |
+ expectFalse(idleSelect.disabled); |
+ expectEquals(null, powerPage.$$('#idleManagedIndicator')); |
+ expectEquals( |
+ settings.LidClosedBehavior.SUSPEND.toString(), |
+ lidClosedSelect.value); |
+ expectFalse(lidClosedSelect.disabled); |
+ expectEquals(null, powerPage.$$('#lidClosedManagedIndicator')); |
+ |
+ // When settings are managed, the selects should be disabled and the |
+ // indicators should be shown. |
+ sendPowerManagementSettings( |
+ settings.IdleBehavior.OTHER, true, |
+ settings.LidClosedBehavior.SUSPEND, true, true); |
+ expectEquals( |
+ settings.IdleBehavior.OTHER.toString(), idleSelect.value); |
+ expectTrue(idleSelect.disabled); |
+ expectTrue(powerPage.$$('#idleManagedIndicator') != null); |
michaelpg
2017/06/16 01:35:00
expectNotEquals (or often we just expectTrue(!!foo
Daniel Erat
2017/06/16 02:34:25
Done.
|
+ expectEquals( |
+ settings.LidClosedBehavior.SUSPEND.toString(), |
+ lidClosedSelect.value); |
+ expectTrue(lidClosedSelect.disabled); |
+ expectTrue(powerPage.$$('#lidClosedManagedIndicator') != null); |
+ }); |
}); |
}); |