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

Side by Side Diff: chrome/test/data/webui/settings/device_page_tests.js

Issue 2853113004: chromeos: Add settings to control power management prefs. (Closed)
Patch Set: switch back from aria-labelledby to aria-label Created 3 years, 6 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
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_ui.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('device_page_tests', function() { 5 cr.define('device_page_tests', function() {
6 /** @enum {string} */ 6 /** @enum {string} */
7 var TestNames = { 7 var TestNames = {
8 DevicePage: 'device page', 8 DevicePage: 'device page',
9 Display: 'display', 9 Display: 'display',
10 Keyboard: 'keyboard', 10 Keyboard: 'keyboard',
11 Pointers: 'pointers', 11 Pointers: 'pointers',
12 Power: 'power', 12 Power: 'power',
13 Stylus: 'stylus', 13 Stylus: 'stylus',
14 }; 14 };
15 15
16 /** 16 /**
17 * @constructor 17 * @constructor
18 * @implements {settings.DevicePageBrowserProxy} 18 * @implements {settings.DevicePageBrowserProxy}
19 */ 19 */
20 function TestDevicePageBrowserProxy() { 20 function TestDevicePageBrowserProxy() {
21 this.keyboardShortcutsOverlayShown_ = 0; 21 this.keyboardShortcutsOverlayShown_ = 0;
22 this.updatePowerStatusCalled_ = 0; 22 this.updatePowerStatusCalled_ = 0;
23 this.requestPowerManagementSettingsCalled_ = 0;
23 this.onNoteTakingAppsUpdated_ = null; 24 this.onNoteTakingAppsUpdated_ = null;
24 this.requestNoteTakingApps_ = 0; 25 this.requestNoteTakingApps_ = 0;
25 this.setPreferredNoteTakingApp_ = ''; 26 this.setPreferredNoteTakingApp_ = '';
26 } 27 }
27 28
28 TestDevicePageBrowserProxy.prototype = { 29 TestDevicePageBrowserProxy.prototype = {
29 /** override */ 30 /** override */
30 initializePointers: function() { 31 initializePointers: function() {
31 // Enable mouse and touchpad. 32 // Enable mouse and touchpad.
32 cr.webUIListenerCallback('has-mouse-changed', true); 33 cr.webUIListenerCallback('has-mouse-changed', true);
(...skipping 26 matching lines...) Expand all
59 updatePowerStatus: function() { 60 updatePowerStatus: function() {
60 this.updatePowerStatusCalled_++; 61 this.updatePowerStatusCalled_++;
61 }, 62 },
62 63
63 /** @override */ 64 /** @override */
64 setPowerSource: function(powerSourceId) { 65 setPowerSource: function(powerSourceId) {
65 this.powerSourceId_ = powerSourceId; 66 this.powerSourceId_ = powerSourceId;
66 }, 67 },
67 68
68 /** @override */ 69 /** @override */
70 requestPowerManagementSettings: function() {
71 this.requestPowerManagementSettingsCalled_++;
72 },
73
74 /** @override */
75 setIdleBehavior: function(behavior) {
76 this.idleBehavior_ = behavior;
77 },
78
79 /** @override */
80 setLidClosedBehavior: function(behavior) {
81 this.lidClosedBehavior_ = behavior;
82 },
83
84 /** @override */
69 setNoteTakingAppsUpdatedCallback: function(callback) { 85 setNoteTakingAppsUpdatedCallback: function(callback) {
70 this.onNoteTakingAppsUpdated_ = callback; 86 this.onNoteTakingAppsUpdated_ = callback;
71 }, 87 },
72 88
73 /** @override */ 89 /** @override */
74 requestNoteTakingApps: function() { 90 requestNoteTakingApps: function() {
75 this.requestNoteTakingApps_++; 91 this.requestNoteTakingApps_++;
76 }, 92 },
77 93
78 /** @override */ 94 /** @override */
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 'neon-animation-finish', resolve); 251 'neon-animation-finish', resolve);
236 MockInteractions.tap(row); 252 MockInteractions.tap(row);
237 }).then(function() { 253 }).then(function() {
238 assertEquals(expectedRoute, settings.getCurrentRoute()); 254 assertEquals(expectedRoute, settings.getCurrentRoute());
239 var page = devicePage.$$('settings-' + subpage); 255 var page = devicePage.$$('settings-' + subpage);
240 return assert(page); 256 return assert(page);
241 }); 257 });
242 }; 258 };
243 259
244 /** 260 /**
261 * @param {settings.IdleBehavior} idleBehavior
262 * @param {boolean} idleControlled
263 * @param {settings.LidClosedBehavior} lidClosedBehavior
264 * @param {boolean} lidClosedControlled
265 * @param {boolean} hasLid
266 */
267 function sendPowerManagementSettings(idleBehavior, idleControlled,
268 lidClosedBehavior, lidClosedControlled,
269 hasLid) {
270 cr.webUIListenerCallback(
271 'power-management-settings-changed',
272 {
273 idleBehavior: idleBehavior,
274 idleControlled: idleControlled,
275 lidClosedBehavior: lidClosedBehavior,
276 lidClosedControlled: lidClosedControlled,
277 hasLid: hasLid,
278 });
279 Polymer.dom.flush();
280 };
281
282 /**
283 * @param {!HTMLElement} select
284 * @param {!value} string
285 */
286 function selectValue(select, value) {
287 select.value = value;
288 select.dispatchEvent(new CustomEvent('change'));
289 Polymer.dom.flush();
290 }
291
292 /**
245 * @param {!HTMLElement} pointersPage 293 * @param {!HTMLElement} pointersPage
246 * @param {boolean} expected 294 * @param {boolean} expected
247 */ 295 */
248 function expectNaturalScrollValue(pointersPage, expected) { 296 function expectNaturalScrollValue(pointersPage, expected) {
249 var naturalScrollOff = 297 var naturalScrollOff =
250 pointersPage.$$('paper-radio-button[name="false"]'); 298 pointersPage.$$('paper-radio-button[name="false"]');
251 var naturalScrollOn = 299 var naturalScrollOn =
252 pointersPage.$$('paper-radio-button[name="true"]'); 300 pointersPage.$$('paper-radio-button[name="true"]');
253 assertTrue(!!naturalScrollOff); 301 assertTrue(!!naturalScrollOff);
254 assertTrue(!!naturalScrollOn); 302 assertTrue(!!naturalScrollOn);
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 */ 634 */
587 function setPowerSources(sources, powerSourceId, isLowPowerCharger) { 635 function setPowerSources(sources, powerSourceId, isLowPowerCharger) {
588 var sourcesCopy = sources.map(function(source) { 636 var sourcesCopy = sources.map(function(source) {
589 return Object.assign({}, source); 637 return Object.assign({}, source);
590 }); 638 });
591 cr.webUIListenerCallback('power-sources-changed', 639 cr.webUIListenerCallback('power-sources-changed',
592 sourcesCopy, powerSourceId, isLowPowerCharger); 640 sourcesCopy, powerSourceId, isLowPowerCharger);
593 } 641 }
594 642
595 suite('no power settings', function() { 643 suite('no power settings', function() {
644 suiteSetup(function() {
645 // Never show power settings.
646 loadTimeData.overrideValues({
647 enablePowerSettings: false,
648 });
649 });
650
596 test('power row hidden', function() { 651 test('power row hidden', function() {
597 assertEquals(null, devicePage.$$('#powerRow')); 652 assertEquals(null, devicePage.$$('#powerRow'));
598 assertEquals(0, 653 assertEquals(0,
599 settings.DevicePageBrowserProxyImpl.getInstance() 654 settings.DevicePageBrowserProxyImpl.getInstance()
600 .updatePowerStatusCalled_); 655 .updatePowerStatusCalled_);
601 }); 656 });
602 }); 657 });
603 658
604 suite('power settings', function() { 659 suite('power settings', function() {
605 var powerPage; 660 var powerPage;
606 var powerSourceRow; 661 var powerSourceRow;
607 var powerSourceWrapper; 662 var powerSourceWrapper;
608 var powerSourceSelect; 663 var powerSourceSelect;
664 var idleSelect;
665 var lidClosedSelect;
609 666
610 suiteSetup(function() { 667 suiteSetup(function() {
611 // Always show power settings. 668 // Always show power settings.
612 loadTimeData.overrideValues({ 669 loadTimeData.overrideValues({
613 enablePowerSettings: true, 670 enablePowerSettings: true,
614 }); 671 });
615 }); 672 });
616 673
617 setup(function() { 674 setup(function() {
618 return showAndGetDeviceSubpage('power', settings.Route.POWER) 675 return showAndGetDeviceSubpage('power', settings.Route.POWER)
619 .then(function(page) { 676 .then(function(page) {
620 powerPage = page; 677 powerPage = page;
621 powerSourceRow = assert(powerPage.$$('#powerSourceRow')); 678 powerSourceRow = assert(powerPage.$$('#powerSourceRow'));
622 powerSourceWrapper = 679 powerSourceWrapper =
623 assert(powerSourceRow.querySelector('.md-select-wrapper')); 680 assert(powerSourceRow.querySelector('.md-select-wrapper'));
624 powerSourceSelect = assert(powerPage.$$('#powerSource')); 681 powerSourceSelect = assert(powerPage.$$('#powerSource'));
625 assertEquals( 682 assertEquals(
626 1, 683 1,
627 settings.DevicePageBrowserProxyImpl.getInstance() 684 settings.DevicePageBrowserProxyImpl.getInstance()
628 .updatePowerStatusCalled_); 685 .updatePowerStatusCalled_);
686
687 idleSelect = assert(powerPage.$$('#idleSelect'));
688 lidClosedSelect = assert(powerPage.$$('#lidClosedSelect'));
689
690 assertEquals(
691 1,
692 settings.DevicePageBrowserProxyImpl.getInstance()
693 .requestPowerManagementSettingsCalled_);
694 sendPowerManagementSettings(
695 settings.IdleBehavior.DISPLAY_OFF_SLEEP,
696 false /* idleControlled */,
697 settings.LidClosedBehavior.SUSPEND,
698 false /* lidClosedControlled */, true /* hasLid */);
629 }); 699 });
630 }); 700 });
631 701
632 test('power sources', function() { 702 test('power sources', function() {
633 var batteryStatus = { 703 var batteryStatus = {
634 charging: false, 704 charging: false,
635 calculating: false, 705 calculating: false,
636 percent: 50, 706 percent: 50,
637 statusText: '5 hours left', 707 statusText: '5 hours left',
638 }; 708 };
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 // Attach a dual-role USB device. 756 // Attach a dual-role USB device.
687 var powerSource = { 757 var powerSource = {
688 id: '3', 758 id: '3',
689 type: settings.PowerDeviceType.DUAL_ROLE_USB, 759 type: settings.PowerDeviceType.DUAL_ROLE_USB,
690 description: 'USB-C device', 760 description: 'USB-C device',
691 }; 761 };
692 setPowerSources([powerSource], '', false); 762 setPowerSources([powerSource], '', false);
693 Polymer.dom.flush(); 763 Polymer.dom.flush();
694 764
695 // Select the device. 765 // Select the device.
696 powerSourceSelect.value = powerSourceSelect.children[1].value; 766 selectValue(powerSourceSelect, powerSourceSelect.children[1].value);
697 powerSourceSelect.dispatchEvent(new CustomEvent('change'));
698 Polymer.dom.flush();
699 expectEquals( 767 expectEquals(
700 powerSource.id, 768 powerSource.id,
701 settings.DevicePageBrowserProxyImpl.getInstance().powerSourceId_); 769 settings.DevicePageBrowserProxyImpl.getInstance().powerSourceId_);
702 }); 770 });
771
772 test('set idle behavior', function() {
773 selectValue(idleSelect, settings.IdleBehavior.DISPLAY_ON);
774 expectEquals(
775 settings.IdleBehavior.DISPLAY_ON,
776 settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_);
777
778 selectValue(idleSelect, settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE);
779 expectEquals(
780 settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE,
781 settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_);
782 });
783
784 test('set lid behavior', function() {
785 selectValue(lidClosedSelect, settings.LidClosedBehavior.DO_NOTHING);
786 expectEquals(
787 settings.LidClosedBehavior.DO_NOTHING,
788 settings.DevicePageBrowserProxyImpl.getInstance()
789 .lidClosedBehavior_);
790
791 selectValue(lidClosedSelect, settings.LidClosedBehavior.SUSPEND);
792 expectEquals(
793 settings.LidClosedBehavior.SUSPEND,
794 settings.DevicePageBrowserProxyImpl.getInstance()
795 .lidClosedBehavior_);
796 });
797
798 test('display idle and lid behavior', function() {
799 return new Promise(function(resolve) {
800 sendPowerManagementSettings(
801 settings.IdleBehavior.DISPLAY_ON, false /* idleControlled */,
802 settings.LidClosedBehavior.DO_NOTHING,
803 false /* lidClosedControlled */, true /* hasLid */);
804 powerPage.async(resolve);
805 }).then(function() {
806 expectEquals(
807 settings.IdleBehavior.DISPLAY_ON.toString(), idleSelect.value);
808 expectFalse(idleSelect.disabled);
809 expectEquals(null, powerPage.$$('#idleControlledIndicator'));
810 expectEquals(
811 settings.LidClosedBehavior.DO_NOTHING.toString(),
812 lidClosedSelect.value);
813 expectFalse(lidClosedSelect.disabled);
814 expectEquals(null, powerPage.$$('#lidClosedControlledIndicator'));
815 }).then(function() {
816 sendPowerManagementSettings(
817 settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE,
818 false /* idleControlled */, settings.LidClosedBehavior.SUSPEND,
819 false /* lidClosedControlled */, true /* hasLid */);
820 return new Promise(function(resolve) { powerPage.async(resolve); });
821 }).then(function() {
822 expectEquals(
823 settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE.toString(),
824 idleSelect.value);
825 expectFalse(idleSelect.disabled);
826 expectEquals(null, powerPage.$$('#idleControlledIndicator'));
827 expectEquals(
828 settings.LidClosedBehavior.SUSPEND.toString(),
829 lidClosedSelect.value);
830 expectFalse(lidClosedSelect.disabled);
831 expectEquals(null, powerPage.$$('#lidClosedControlledIndicator'));
832 });
833 });
834
835 test('display controlled idle and lid behavior', function() {
836 // When settings are controlled, the selects should be disabled and
837 // the indicators should be shown.
838 return new Promise(function(resolve) {
839 sendPowerManagementSettings(
840 settings.IdleBehavior.OTHER, true /* idleControlled */,
841 settings.LidClosedBehavior.SUSPEND,
842 true /* lidClosedControlled */, true /* hasLid */);
843 powerPage.async(resolve);
844 }).then(function() {
845 expectEquals(
846 settings.IdleBehavior.OTHER.toString(), idleSelect.value);
847 expectTrue(idleSelect.disabled);
848 expectNotEquals(null, powerPage.$$('#idleControlledIndicator'));
849 expectEquals(
850 settings.LidClosedBehavior.SUSPEND.toString(),
851 lidClosedSelect.value);
852 expectTrue(lidClosedSelect.disabled);
853 expectNotEquals(
854 null, powerPage.$$('#lidClosedControlledIndicator'));
855 });
856 });
857
858 test('hide lid behavior when lid not present', function() {
859 return new Promise(function(resolve) {
860 expectFalse(powerPage.$$('#lidClosedRow').hidden);
861 sendPowerManagementSettings(
862 settings.IdleBehavior.DISPLAY_OFF_SLEEP,
863 false /* idleControlled */, settings.LidClosedBehavior.SUSPEND,
864 false /* lidClosedControlled */, false /* hasLid */);
865 powerPage.async(resolve);
866 }).then(function() {
867 expectTrue(powerPage.$$('#lidClosedRow').hidden);
868 });
869 });
703 }); 870 });
704 }); 871 });
705 872
706 suite(assert(TestNames.Stylus), function() { 873 suite(assert(TestNames.Stylus), function() {
707 var stylusPage; 874 var stylusPage;
708 var appSelector; 875 var appSelector;
709 var browserProxy; 876 var browserProxy;
710 var noAppsDiv; 877 var noAppsDiv;
711 var waitingDiv; 878 var waitingDiv;
712 var selectAppDiv; 879 var selectAppDiv;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 .value); 1144 .value);
978 }); 1145 });
979 }); 1146 });
980 }); 1147 });
981 }); 1148 });
982 1149
983 return { 1150 return {
984 TestNames: TestNames 1151 TestNames: TestNames
985 }; 1152 };
986 }); 1153 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_ui.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698