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..22e70499b78aaf04553fc1d945320d416b57c347 100644 |
| --- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| +++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm |
| @@ -459,3 +459,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)); |
| + browser()->profile()->GetPrefs()->SetBoolean( |
|
noms (inactive)
2014/09/15 18:52:40
This test confused me a lot because the kEmail is
Mike Lerman
2014/09/15 19:51:41
Added the former comment, I don't want a reader of
|
| + prefs::kProfileIsLockable, false); |
| + |
| + 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 |
| + // 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_FALSE([lockButton isEnabled]); |
| +} |
| + |
| +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)); |
| + browser()->profile()->GetPrefs()->SetBoolean(prefs::kProfileIsLockable, true); |
| + |
| + 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 |
| + // 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]); |
| +} |