Chromium Code Reviews| Index: chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| index 6751783ca658398053b08936ae5ec590a8e63ace..f35a7f4b983f4ed55353d23d7f5b6ec5f664543f 100644 |
| --- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| +++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| @@ -23,6 +23,7 @@ |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
| #include "chrome/common/chrome_switches.h" |
| +#include "chrome/common/pref_names.h" |
| #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| #include "components/signin/core/browser/signin_manager.h" |
| #include "components/signin/core/common/profile_management_switches.h" |
| @@ -376,20 +377,14 @@ TEST_F(ProfileChooserControllerTest, AccountManagementLayout) { |
| // There should be three buttons and two separators in the option |
| // buttons view. |
| NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; |
| - ASSERT_EQ(5U, [buttonSubviews count]); |
| - |
| - // There should be a lock button. |
| - NSButton* lockButton = |
| - base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
| - EXPECT_EQ(@selector(lockProfile:), [lockButton action]); |
| - EXPECT_EQ(controller(), [lockButton target]); |
| + ASSERT_EQ(3U, [buttonSubviews count]); |
| // There should be a separator. |
| EXPECT_TRUE([[buttonSubviews objectAtIndex:1] isKindOfClass:[NSBox class]]); |
| // There should be an incognito button. |
| NSButton* incognitoButton = |
| - base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:2]); |
| + base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
| EXPECT_EQ(@selector(goIncognito:), [incognitoButton action]); |
| EXPECT_EQ(controller(), [incognitoButton target]); |
| @@ -398,7 +393,7 @@ TEST_F(ProfileChooserControllerTest, AccountManagementLayout) { |
| // There should be a user switcher button. |
| NSButton* userSwitcherButton = |
| - base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:4]); |
| + base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:2]); |
| EXPECT_EQ(@selector(showUserManager:), [userSwitcherButton action]); |
| EXPECT_EQ(controller(), [userSwitcherButton target]); |
| @@ -459,3 +454,70 @@ TEST_F(ProfileChooserControllerTest, AccountManagementLayout) { |
| EXPECT_EQ(@selector(hideAccountManagement:), [link action]); |
| EXPECT_EQ(controller(), [link target]); |
| } |
| + |
| +TEST_F(ProfileChooserControllerTest, SignedInProfileLockDisabled) { |
| + switches::EnableNewProfileManagementForTesting( |
| + CommandLine::ForCurrentProcess()); |
| + // Sign in the first profile. |
| + ProfileInfoCache* cache = testing_profile_manager()->profile_info_cache(); |
| + cache->SetUserNameOfProfileAtIndex(0, base::ASCIIToUTF16(kEmail)); |
| + // The preference, not the email, determines whether the profile can lock. |
| + browser()->profile()->GetPrefs()->SetString( |
| + prefs::kGoogleServicesHostedDomain, "chromium.org"); |
| + |
| + StartProfileChooserController(); |
| + NSArray* subviews = [[[controller() window] contentView] subviews]; |
| + ASSERT_EQ(2U, [subviews count]); |
| + subviews = [[subviews objectAtIndex:0] subviews]; |
| + |
| + // Three profiles means we should have one active card, one separator, one |
|
msw
2014/09/19 21:47:40
I see this comment is copied from elsewhere, but I
Mike Lerman
2014/09/21 00:19:36
I can agree with that - a test should test its own
|
| + // option buttons view and a lock view. We also have an update promo for the |
| + // new avatar menu. |
| + // TODO(noms): Enforcing 5U fails on the waterfall debug bots, but it's not |
| + // reproducible anywhere else. |
| + ASSERT_GE([subviews count], 4U); |
| + |
| + // There will be two buttons and one separators in the option buttons view. |
| + NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; |
| + ASSERT_EQ(3U, [buttonSubviews count]); |
| + |
| + // The last button should not be the lock button. |
| + NSButton* lastButton = |
| + base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
| + ASSERT_TRUE(lastButton); |
| + EXPECT_NE(@selector(lockProfile:), [lastButton action]); |
| +} |
| + |
| +TEST_F(ProfileChooserControllerTest, SignedInProfileLockEnabled) { |
| + switches::EnableNewProfileManagementForTesting( |
| + CommandLine::ForCurrentProcess()); |
| + // Sign in the first profile. |
| + ProfileInfoCache* cache = testing_profile_manager()->profile_info_cache(); |
| + cache->SetUserNameOfProfileAtIndex(0, base::ASCIIToUTF16(kEmail)); |
| + // The preference, not the email, determines whether the profile can lock. |
| + browser()->profile()->GetPrefs()->SetString( |
| + prefs::kGoogleServicesHostedDomain, "google.com"); |
| + StartProfileChooserController(); |
|
msw
2014/09/19 21:47:40
nit: add a blank line above, or remove the corresp
Mike Lerman
2014/09/21 00:19:36
Done.
|
| + NSArray* subviews = [[[controller() window] contentView] subviews]; |
| + ASSERT_EQ(2U, [subviews count]); |
| + subviews = [[subviews objectAtIndex:0] subviews]; |
| + |
| + // Three profiles means we should have one active card, one separator, one |
|
msw
2014/09/19 21:47:40
Ditto.
Mike Lerman
2014/09/21 00:19:36
Done.
|
| + // option buttons view and a lock view. We also have an update promo for the |
| + // new avatar menu. |
| + // TODO(noms): Enforcing 5U fails on the waterfall debug bots, but it's not |
| + // reproducible anywhere else. |
| + ASSERT_GE([subviews count], 4U); |
| + |
| + // There will be three buttons and two separators in the option buttons view. |
| + NSArray* buttonSubviews = [[subviews objectAtIndex:0] subviews]; |
| + ASSERT_EQ(5U, [buttonSubviews count]); |
| + |
| + // There should be a lock button. |
| + NSButton* lockButton = |
| + base::mac::ObjCCast<NSButton>([buttonSubviews objectAtIndex:0]); |
| + ASSERT_TRUE(lockButton); |
| + EXPECT_EQ(@selector(lockProfile:), [lockButton action]); |
| + EXPECT_EQ(controller(), [lockButton target]); |
| + EXPECT_TRUE([lockButton isEnabled]); |
| +} |