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

Side by Side Diff: ash/system/tiles/tray_tiles_unittest.cc

Issue 2821363002: cros: Disable system tray help/lock buttons during supervised user creation (Closed)
Patch Set: fix browser test 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 unified diff | Download patch
« no previous file with comments | « ash/system/tiles/tray_tiles.cc ('k') | ash/system/tray/tray_details_view.h » ('j') | 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 #include "ash/system/tiles/tray_tiles.h" 5 #include "ash/system/tiles/tray_tiles.h"
6 6
7 #include "ash/session/session_state_delegate.h"
8 #include "ash/shell_port.h"
9 #include "ash/system/tiles/tiles_default_view.h" 7 #include "ash/system/tiles/tiles_default_view.h"
10 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ash/test/test_session_controller_client.h"
11 #include "ui/views/controls/button/custom_button.h" 10 #include "ui/views/controls/button/custom_button.h"
12 #include "ui/views/view.h" 11 #include "ui/views/view.h"
13 12
13 using views::Button;
14
14 namespace ash { 15 namespace ash {
15 16
16 class TrayTilesTest : public test::AshTestBase { 17 // Tests manually control their session state.
18 class TrayTilesTest : public test::NoSessionAshTestBase {
17 public: 19 public:
18 TrayTilesTest() {} 20 TrayTilesTest() {}
19 ~TrayTilesTest() override {} 21 ~TrayTilesTest() override {}
20 22
21 void SetUp() override { 23 void SetUp() override {
22 test::AshTestBase::SetUp(); 24 test::NoSessionAshTestBase::SetUp();
23 tray_tiles_.reset(new TrayTiles(GetPrimarySystemTray())); 25 tray_tiles_.reset(new TrayTiles(GetPrimarySystemTray()));
24 } 26 }
25 27
26 void TearDown() override { 28 void TearDown() override {
27 tray_tiles_.reset(); 29 tray_tiles_.reset();
28 test::AshTestBase::TearDown(); 30 test::NoSessionAshTestBase::TearDown();
29 } 31 }
30 32
31 views::CustomButton* GetSettingsButton() { 33 views::CustomButton* GetSettingsButton() {
32 return tray_tiles()->default_view_->settings_button_; 34 return tray_tiles()->default_view_->settings_button_;
33 } 35 }
34 36
35 views::CustomButton* GetHelpButton() { 37 views::CustomButton* GetHelpButton() {
36 return tray_tiles()->default_view_->help_button_; 38 return tray_tiles()->default_view_->help_button_;
37 } 39 }
38 40
39 views::CustomButton* GetLockButton() { 41 views::CustomButton* GetLockButton() {
40 return tray_tiles()->default_view_->lock_button_; 42 return tray_tiles()->default_view_->lock_button_;
41 } 43 }
42 44
43 views::CustomButton* GetPowerButton() { 45 views::CustomButton* GetPowerButton() {
44 return tray_tiles()->default_view_->power_button_; 46 return tray_tiles()->default_view_->power_button_;
45 } 47 }
46 48
47 TrayTiles* tray_tiles() { return tray_tiles_.get(); } 49 TrayTiles* tray_tiles() { return tray_tiles_.get(); }
48 50
49 private: 51 private:
50 std::unique_ptr<TrayTiles> tray_tiles_; 52 std::unique_ptr<TrayTiles> tray_tiles_;
51 53
52 DISALLOW_COPY_AND_ASSIGN(TrayTilesTest); 54 DISALLOW_COPY_AND_ASSIGN(TrayTilesTest);
53 }; 55 };
54 56
55 TEST_F(TrayTilesTest, ButtonStatesWithAddingUser) { 57 // Settings buttons are disabled before login.
58 TEST_F(TrayTilesTest, ButtonStatesNotLoggedIn) {
59 std::unique_ptr<views::View> default_view(
60 tray_tiles()->CreateDefaultViewForTesting());
61 EXPECT_EQ(Button::STATE_DISABLED, GetSettingsButton()->state());
62 EXPECT_EQ(Button::STATE_DISABLED, GetHelpButton()->state());
63 EXPECT_EQ(Button::STATE_DISABLED, GetLockButton()->state());
64 EXPECT_EQ(Button::STATE_NORMAL, GetPowerButton()->state());
65 }
66
67 // All buttons are enabled after login.
68 TEST_F(TrayTilesTest, ButtonStatesLoggedIn) {
69 SetSessionStarted(true);
70 std::unique_ptr<views::View> default_view(
71 tray_tiles()->CreateDefaultViewForTesting());
72 EXPECT_EQ(Button::STATE_NORMAL, GetSettingsButton()->state());
73 EXPECT_EQ(Button::STATE_NORMAL, GetHelpButton()->state());
74 EXPECT_EQ(Button::STATE_NORMAL, GetLockButton()->state());
75 EXPECT_EQ(Button::STATE_NORMAL, GetPowerButton()->state());
76 }
77
78 // Settings buttons are disabled at the lock screen.
79 TEST_F(TrayTilesTest, ButtonStatesLockScreen) {
80 BlockUserSession(BLOCKED_BY_LOCK_SCREEN);
81 std::unique_ptr<views::View> default_view(
82 tray_tiles()->CreateDefaultViewForTesting());
83 EXPECT_EQ(Button::STATE_DISABLED, GetSettingsButton()->state());
84 EXPECT_EQ(Button::STATE_DISABLED, GetHelpButton()->state());
85 EXPECT_EQ(Button::STATE_DISABLED, GetLockButton()->state());
86 EXPECT_EQ(Button::STATE_NORMAL, GetPowerButton()->state());
87 }
88
89 // Settings buttons are disabled when adding a second multiprofile user.
90 TEST_F(TrayTilesTest, ButtonStatesAddingUser) {
56 SetUserAddingScreenRunning(true); 91 SetUserAddingScreenRunning(true);
57 std::unique_ptr<views::View> default_view( 92 std::unique_ptr<views::View> default_view(
58 tray_tiles()->CreateDefaultViewForTesting(LoginStatus::USER)); 93 tray_tiles()->CreateDefaultViewForTesting());
59 EXPECT_EQ(GetSettingsButton()->state(), views::Button::STATE_DISABLED); 94 EXPECT_EQ(Button::STATE_DISABLED, GetSettingsButton()->state());
60 EXPECT_EQ(GetHelpButton()->state(), views::Button::STATE_DISABLED); 95 EXPECT_EQ(Button::STATE_DISABLED, GetHelpButton()->state());
61 EXPECT_EQ(GetLockButton()->state(), views::Button::STATE_DISABLED); 96 EXPECT_EQ(Button::STATE_DISABLED, GetLockButton()->state());
62 EXPECT_EQ(GetPowerButton()->state(), views::Button::STATE_NORMAL); 97 EXPECT_EQ(Button::STATE_NORMAL, GetPowerButton()->state());
63 } 98 }
64 99
65 TEST_F(TrayTilesTest, ButtonStatesWithLoginStatusNotLoggedIn) { 100 // Settings buttons are disabled when adding a supervised user.
101 TEST_F(TrayTilesTest, ButtonStatesSupervisedUserFlow) {
102 // Simulate a supervised user session with disabled settings.
103 const bool enable_settings = false;
104 GetSessionControllerClient()->AddUserSession("foo@example.com",
105 enable_settings);
66 std::unique_ptr<views::View> default_view( 106 std::unique_ptr<views::View> default_view(
67 tray_tiles()->CreateDefaultViewForTesting(LoginStatus::NOT_LOGGED_IN)); 107 tray_tiles()->CreateDefaultViewForTesting());
68 EXPECT_EQ(GetSettingsButton()->state(), views::Button::STATE_DISABLED); 108 EXPECT_EQ(Button::STATE_DISABLED, GetSettingsButton()->state());
69 EXPECT_EQ(GetHelpButton()->state(), views::Button::STATE_DISABLED); 109 EXPECT_EQ(Button::STATE_DISABLED, GetHelpButton()->state());
70 EXPECT_EQ(GetLockButton()->state(), views::Button::STATE_DISABLED); 110 EXPECT_EQ(Button::STATE_DISABLED, GetLockButton()->state());
71 EXPECT_EQ(GetPowerButton()->state(), views::Button::STATE_NORMAL); 111 EXPECT_EQ(Button::STATE_NORMAL, GetPowerButton()->state());
72 }
73
74 TEST_F(TrayTilesTest, ButtonStatesWithLoginStatusLocked) {
75 std::unique_ptr<views::View> default_view(
76 tray_tiles()->CreateDefaultViewForTesting(LoginStatus::LOCKED));
77 EXPECT_EQ(GetSettingsButton()->state(), views::Button::STATE_DISABLED);
78 EXPECT_EQ(GetHelpButton()->state(), views::Button::STATE_DISABLED);
79 EXPECT_EQ(GetLockButton()->state(), views::Button::STATE_DISABLED);
80 EXPECT_EQ(GetPowerButton()->state(), views::Button::STATE_NORMAL);
81 }
82
83 TEST_F(TrayTilesTest, ButtonStatesWithLoginStatusUser) {
84 std::unique_ptr<views::View> default_view(
85 tray_tiles()->CreateDefaultViewForTesting(LoginStatus::USER));
86 EXPECT_EQ(GetSettingsButton()->state(), views::Button::STATE_NORMAL);
87 EXPECT_EQ(GetHelpButton()->state(), views::Button::STATE_NORMAL);
88 EXPECT_EQ(GetLockButton()->state(), views::Button::STATE_NORMAL);
89 EXPECT_EQ(GetPowerButton()->state(), views::Button::STATE_NORMAL);
90 } 112 }
91 113
92 } // namespace ash 114 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/tiles/tray_tiles.cc ('k') | ash/system/tray/tray_details_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698