OLD | NEW |
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 */ |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 checkChangeChannelButton(true); | 599 checkChangeChannelButton(true); |
600 }); | 600 }); |
601 | 601 |
602 test('ChangeChannel_Disabled', function() { | 602 test('ChangeChannel_Disabled', function() { |
603 checkChangeChannelButton(false); | 603 checkChangeChannelButton(false); |
604 }); | 604 }); |
605 }); | 605 }); |
606 } | 606 } |
607 | 607 |
608 function registerChannelSwitcherDialogTests() { | 608 function registerChannelSwitcherDialogTests() { |
609 /** | |
610 * Converts an event occurrence to a promise. | |
611 * @param {string} eventType | |
612 * @param {!HTMLElement} target | |
613 * @return {!Promise} A promise firing once the event occurs. | |
614 * TODO(dpapad); Share this code with certificate_manager_page_test.js | |
615 * identical helper method. | |
616 */ | |
617 function eventToPromise(eventType, target) { | |
618 return new Promise(function(resolve, reject) { | |
619 target.addEventListener(eventType, resolve); | |
620 }); | |
621 } | |
622 | |
623 suite('ChannelSwitcherDialogTest', function() { | 609 suite('ChannelSwitcherDialogTest', function() { |
624 var dialog = null; | 610 var dialog = null; |
625 var radioButtons = null; | 611 var radioButtons = null; |
626 var browserProxy = null; | 612 var browserProxy = null; |
627 var currentChannel = BrowserChannel.BETA; | 613 var currentChannel = BrowserChannel.BETA; |
628 | 614 |
629 setup(function() { | 615 setup(function() { |
630 browserProxy = new TestAboutPageBrowserProxy(); | 616 browserProxy = new TestAboutPageBrowserProxy(); |
631 browserProxy.setChannels(currentChannel, currentChannel); | 617 browserProxy.setChannels(currentChannel, currentChannel); |
632 settings.AboutPageBrowserProxyImpl.instance_ = browserProxy; | 618 settings.AboutPageBrowserProxyImpl.instance_ = browserProxy; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 test('ChangeChannel_LessStable', function() { | 650 test('ChangeChannel_LessStable', function() { |
665 assertEquals(BrowserChannel.DEV, radioButtons.item(2).name); | 651 assertEquals(BrowserChannel.DEV, radioButtons.item(2).name); |
666 MockInteractions.tap(radioButtons.item(2)); | 652 MockInteractions.tap(radioButtons.item(2)); |
667 Polymer.dom.flush(); | 653 Polymer.dom.flush(); |
668 | 654 |
669 assertFalse(dialog.$.warning.hidden); | 655 assertFalse(dialog.$.warning.hidden); |
670 // Check that only the "Change channel" button becomes visible. | 656 // Check that only the "Change channel" button becomes visible. |
671 assertTrue(dialog.$.changeChannelAndPowerwash.hidden); | 657 assertTrue(dialog.$.changeChannelAndPowerwash.hidden); |
672 assertFalse(dialog.$.changeChannel.hidden); | 658 assertFalse(dialog.$.changeChannel.hidden); |
673 | 659 |
674 var whenTargetChannelChangedFired = eventToPromise( | 660 var whenTargetChannelChangedFired = test_util.eventToPromise( |
675 'target-channel-changed', dialog); | 661 'target-channel-changed', dialog); |
676 | 662 |
677 MockInteractions.tap(dialog.$.changeChannel); | 663 MockInteractions.tap(dialog.$.changeChannel); |
678 return browserProxy.whenCalled('setChannel').then(function(args) { | 664 return browserProxy.whenCalled('setChannel').then(function(args) { |
679 assertEquals(BrowserChannel.DEV, args[0]); | 665 assertEquals(BrowserChannel.DEV, args[0]); |
680 assertFalse(args[1]); | 666 assertFalse(args[1]); |
681 return whenTargetChannelChangedFired; | 667 return whenTargetChannelChangedFired; |
682 }).then(function(event) { | 668 }).then(function(event) { |
683 assertEquals(BrowserChannel.DEV, event.detail); | 669 assertEquals(BrowserChannel.DEV, event.detail); |
684 }); | 670 }); |
685 }); | 671 }); |
686 | 672 |
687 // Test case where user switches to a more stable channel. | 673 // Test case where user switches to a more stable channel. |
688 test('ChangeChannel_MoreStable', function() { | 674 test('ChangeChannel_MoreStable', function() { |
689 assertEquals(BrowserChannel.STABLE, radioButtons.item(0).name); | 675 assertEquals(BrowserChannel.STABLE, radioButtons.item(0).name); |
690 MockInteractions.tap(radioButtons.item(0)); | 676 MockInteractions.tap(radioButtons.item(0)); |
691 Polymer.dom.flush(); | 677 Polymer.dom.flush(); |
692 | 678 |
693 assertFalse(dialog.$.warning.hidden); | 679 assertFalse(dialog.$.warning.hidden); |
694 // Check that only the "Change channel and Powerwash" button becomes | 680 // Check that only the "Change channel and Powerwash" button becomes |
695 // visible. | 681 // visible. |
696 assertFalse(dialog.$.changeChannelAndPowerwash.hidden); | 682 assertFalse(dialog.$.changeChannelAndPowerwash.hidden); |
697 assertTrue(dialog.$.changeChannel.hidden); | 683 assertTrue(dialog.$.changeChannel.hidden); |
698 | 684 |
699 var whenTargetChannelChangedFired = eventToPromise( | 685 var whenTargetChannelChangedFired = test_util.eventToPromise( |
700 'target-channel-changed', dialog); | 686 'target-channel-changed', dialog); |
701 | 687 |
702 MockInteractions.tap(dialog.$.changeChannelAndPowerwash); | 688 MockInteractions.tap(dialog.$.changeChannelAndPowerwash); |
703 return browserProxy.whenCalled('setChannel').then(function(args) { | 689 return browserProxy.whenCalled('setChannel').then(function(args) { |
704 assertEquals(BrowserChannel.STABLE, args[0]); | 690 assertEquals(BrowserChannel.STABLE, args[0]); |
705 assertTrue(args[1]); | 691 assertTrue(args[1]); |
706 return whenTargetChannelChangedFired; | 692 return whenTargetChannelChangedFired; |
707 }).then(function(event) { | 693 }).then(function(event) { |
708 assertEquals(BrowserChannel.STABLE, event.detail); | 694 assertEquals(BrowserChannel.STABLE, event.detail); |
709 }); | 695 }); |
710 }); | 696 }); |
711 }); | 697 }); |
712 } | 698 } |
713 } | 699 } |
714 | 700 |
715 return { | 701 return { |
716 registerTests: function() { | 702 registerTests: function() { |
717 if (cr.isChromeOS) { | 703 if (cr.isChromeOS) { |
718 registerDetailedBuildInfoTests(); | 704 registerDetailedBuildInfoTests(); |
719 registerChannelSwitcherDialogTests(); | 705 registerChannelSwitcherDialogTests(); |
720 } | 706 } |
721 registerAboutPageTests(); | 707 registerAboutPageTests(); |
722 }, | 708 }, |
723 registerOfficialBuildTests: registerOfficialBuildTests, | 709 registerOfficialBuildTests: registerOfficialBuildTests, |
724 }; | 710 }; |
725 }); | 711 }); |
OLD | NEW |