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

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

Issue 2583743002: Add mac-only "Set Up Automatic Updates..." button to the new about page. (Closed)
Patch Set: add back nullptr check Created 4 years 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/about_handler.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('settings_about_page', function() { 5 cr.define('settings_about_page', function() {
6 /** 6 /**
7 * @constructor 7 * @constructor
8 * @implements {settings.AboutPageBrowserProxy} 8 * @implements {settings.AboutPageBrowserProxy}
9 * @extends {settings.TestBrowserProxy} 9 * @extends {settings.TestBrowserProxy}
10 */ 10 */
11 var TestAboutPageBrowserProxy = function() { 11 var TestAboutPageBrowserProxy = function() {
12 var methodNames = [ 12 var methodNames = [
13 'pageReady', 13 'pageReady',
14 'refreshUpdateStatus', 14 'refreshUpdateStatus',
15 'openHelpPage', 15 'openHelpPage',
16 'openFeedbackDialog', 16 'openFeedbackDialog',
17 ]; 17 ];
18 18
19 if (cr.isChromeOS) { 19 if (cr.isChromeOS) {
20 methodNames.push( 20 methodNames.push(
21 'getChannelInfo', 21 'getChannelInfo',
22 'getVersionInfo', 22 'getVersionInfo',
23 'getRegulatoryInfo', 23 'getRegulatoryInfo',
24 'setChannel'); 24 'setChannel');
25 } 25 }
26 26
27 if (cr.isMac)
28 methodNames.push('promoteUpdater');
29
27 settings.TestBrowserProxy.call(this, methodNames); 30 settings.TestBrowserProxy.call(this, methodNames);
28 31
29 /** @private {!UpdateStatus} */ 32 /** @private {!UpdateStatus} */
30 this.updateStatus_ = UpdateStatus.UPDATED; 33 this.updateStatus_ = UpdateStatus.UPDATED;
31 34
32 if (cr.isChromeOS) { 35 if (cr.isChromeOS) {
33 /** @private {!VersionInfo} */ 36 /** @private {!VersionInfo} */
34 this.versionInfo_ = { 37 this.versionInfo_ = {
35 arcVersion: '', 38 arcVersion: '',
36 osFirmware: '', 39 osFirmware: '',
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 openFeedbackDialog: function() { 78 openFeedbackDialog: function() {
76 this.methodCalled('openFeedbackDialog'); 79 this.methodCalled('openFeedbackDialog');
77 }, 80 },
78 81
79 /** @override */ 82 /** @override */
80 openHelpPage: function() { 83 openHelpPage: function() {
81 this.methodCalled('openHelpPage'); 84 this.methodCalled('openHelpPage');
82 }, 85 },
83 }; 86 };
84 87
88 if (cr.isMac) {
89 /** @override */
90 TestAboutPageBrowserProxy.prototype.promoteUpdater = function() {
91 this.methodCalled('promoteUpdater');
92 };
93 }
94
85 if (cr.isChromeOS) { 95 if (cr.isChromeOS) {
86 /** @param {!VersionInfo} */ 96 /** @param {!VersionInfo} */
87 TestAboutPageBrowserProxy.prototype.setVersionInfo = function(versionInfo) { 97 TestAboutPageBrowserProxy.prototype.setVersionInfo = function(versionInfo) {
88 this.versionInfo_ = versionInfo; 98 this.versionInfo_ = versionInfo;
89 }; 99 };
90 100
91 /** @param {boolean} canChangeChannel */ 101 /** @param {boolean} canChangeChannel */
92 TestAboutPageBrowserProxy.prototype.setCanChangeChannel = function( 102 TestAboutPageBrowserProxy.prototype.setCanChangeChannel = function(
93 canChangeChannel) { 103 canChangeChannel) {
94 this.channelInfo_.canChangeChannel = canChangeChannel; 104 this.channelInfo_.canChangeChannel = canChangeChannel;
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 PolymerTest.clearBody(); 560 PolymerTest.clearBody();
551 page = document.createElement('settings-about-page'); 561 page = document.createElement('settings-about-page');
552 document.body.appendChild(page); 562 document.body.appendChild(page);
553 }); 563 });
554 564
555 test('ReportAnIssue', function() { 565 test('ReportAnIssue', function() {
556 assertTrue(!!page.$.reportIssue); 566 assertTrue(!!page.$.reportIssue);
557 MockInteractions.tap(page.$.reportIssue); 567 MockInteractions.tap(page.$.reportIssue);
558 return browserProxy.whenCalled('openFeedbackDialog'); 568 return browserProxy.whenCalled('openFeedbackDialog');
559 }); 569 });
570
571 if (cr.isMac) {
572 /**
573 * A list of possible scenarios for the promoteUpdater.
574 * @enum {!PromoteUpdaterStatus}
575 */
576 var PromoStatusScenarios = {
577 CANT_PROMOTE: {
578 hidden: true,
579 disabled: true,
580 actionable: false,
581 },
582 CAN_PROMOTE: {
583 hidden: false,
584 disabled: false,
585 actionable: true,
586 },
587 IN_BETWEEN: {
588 hidden: false,
589 disabled: true,
590 actionable: true,
591 },
592 PROMOTED: {
593 hidden: false,
594 disabled: true,
595 actionable: false,
596 },
597 };
598
599 /**
600 * @param {!PromoteUpdaterStatus} status
601 */
602 function firePromoteUpdaterStatusChanged(status) {
603 cr.webUIListenerCallback('promotion-state-changed', status);
604 }
605
606 /**
607 * Tests that the button's states are wired up to the status correctly.
608 */
609 test('PromoteUpdaterButtonCorrectStates', function() {
610 var item = page.$$('#promoteUpdater');
611 var arrow = page.$$('#promoteUpdater button');
612 assertFalse(!!item);
613 assertFalse(!!arrow);
614
615 firePromoteUpdaterStatusChanged(PromoStatusScenarios.CANT_PROMOTE);
616 Polymer.dom.flush();
617 item = page.$$('#promoteUpdater');
618 arrow = page.$$('#promoteUpdater button');
619 assertFalse(!!item);
620 assertFalse(!!arrow);
621
622 firePromoteUpdaterStatusChanged(PromoStatusScenarios.CAN_PROMOTE);
623 Polymer.dom.flush();
624
625 item = page.$$('#promoteUpdater');
626 assertTrue(!!item);
627 assertFalse(item.hasAttribute('disabled'));
628 assertTrue(item.hasAttribute('actionable'));
629
630 arrow = page.$$('#promoteUpdater button');
631 assertTrue(!!arrow);
632 assertFalse(arrow.hidden);
633 assertFalse(arrow.hasAttribute('disabled'));
634
635 firePromoteUpdaterStatusChanged(PromoStatusScenarios.IN_BETWEEN);
636 Polymer.dom.flush();
637 item = page.$$('#promoteUpdater');
638 assertTrue(!!item);
639 assertTrue(item.hasAttribute('disabled'));
640 assertTrue(item.hasAttribute('actionable'));
641
642 arrow = page.$$('#promoteUpdater button');
643 assertTrue(!!arrow);
644 assertFalse(arrow.hidden);
645 assertTrue(arrow.hasAttribute('disabled'));
646
647 firePromoteUpdaterStatusChanged(PromoStatusScenarios.PROMOTED);
648 Polymer.dom.flush();
649 item = page.$$('#promoteUpdater');
650 assertTrue(!!item);
651 assertTrue(item.hasAttribute('disabled'));
652 assertFalse(item.hasAttribute('actionable'));
653
654 arrow = page.$$('#promoteUpdater button');
655 assertTrue(!!arrow);
656 assertTrue(arrow.hidden);
657 assertTrue(arrow.hasAttribute('disabled'));
658 });
659
660 test('PromoteUpdaterButtonWorksWhenEnabled', function() {
661 firePromoteUpdaterStatusChanged(PromoStatusScenarios.CAN_PROMOTE);
662 Polymer.dom.flush();
663 var item = page.$$('#promoteUpdater');
664 assertTrue(!!item);
665
666 MockInteractions.tap(item);
667
668 return browserProxy.whenCalled('promoteUpdater');
669 });
670 }
560 }); 671 });
561 } 672 }
562 673
563 if (cr.isChromeOS) { 674 if (cr.isChromeOS) {
564 function registerDetailedBuildInfoTests() { 675 function registerDetailedBuildInfoTests() {
565 suite('DetailedBuildInfoTest', function() { 676 suite('DetailedBuildInfoTest', function() {
566 var page = null; 677 var page = null;
567 var browserProxy = null; 678 var browserProxy = null;
568 679
569 setup(function() { 680 setup(function() {
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 registerTests: function() { 840 registerTests: function() {
730 if (cr.isChromeOS) { 841 if (cr.isChromeOS) {
731 registerDetailedBuildInfoTests(); 842 registerDetailedBuildInfoTests();
732 registerChannelSwitcherDialogTests(); 843 registerChannelSwitcherDialogTests();
733 } 844 }
734 registerAboutPageTests(); 845 registerAboutPageTests();
735 }, 846 },
736 registerOfficialBuildTests: registerOfficialBuildTests, 847 registerOfficialBuildTests: registerOfficialBuildTests,
737 }; 848 };
738 }); 849 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/about_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698