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

Unified Diff: chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm

Issue 149603009: [Mac] Sort the "other" profiles correctly in the new avatar bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/cocoa/browser/profile_chooser_controller.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm
diff --git a/chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm b/chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm
index b84fd86b55c1e0cef5f256c9c16237ca3ffcb627..fd29aa25a5eea4c976ceacfa9db0ee631a38fc86 100644
--- a/chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/browser/profile_chooser_controller_unittest.mm
@@ -103,15 +103,17 @@ TEST_F(ProfileChooserControllerTest, InitialLayout) {
// There should be a separator.
EXPECT_TRUE([[subviews objectAtIndex:1] isKindOfClass:[NSBox class]]);
- // There should be two "other profiles" items.
- for (NSUInteger i = 2; i < 4; ++i) {
- int profileIndex = i - 1; // The separator is a view but not a profile.
+ // There should be two "other profiles" items. The items are drawn from the
+ // bottom up, so in the opposite order of those in the AvatarMenu.
+ int profileIndex = 1;
+ for (NSUInteger i = 3; i >= 2; --i) {
NSButton* button = static_cast<NSButton*>([subviews objectAtIndex:i]);
EXPECT_EQ(menu()->GetItemAt(profileIndex).name,
base::SysNSStringToUTF16([button title]));
EXPECT_EQ(profileIndex, [button tag]);
EXPECT_EQ(@selector(switchToProfile:), [button action]);
EXPECT_EQ(controller(), [button target]);
+ profileIndex++;
}
// There should be the profile avatar, name and links container in the active
@@ -130,6 +132,36 @@ TEST_F(ProfileChooserControllerTest, InitialLayout) {
[static_cast<NSButton*>(activeProfileName) title]));
}
+TEST_F(ProfileChooserControllerTest, OtherProfilesSortedAlphabetically) {
+ // Add two extra profiles, to make sure sorting is alphabetical and not
+ // by order of creation.
+ testing_profile_manager()->
+ CreateTestingProfile("test3", scoped_ptr<PrefServiceSyncable>(),
+ base::ASCIIToUTF16("New Profile"), 1, std::string(),
+ TestingProfile::TestingFactories());
+ testing_profile_manager()->
+ CreateTestingProfile("test4", scoped_ptr<PrefServiceSyncable>(),
+ base::ASCIIToUTF16("Another Test"), 1, std::string(),
+ TestingProfile::TestingFactories());
+ StartProfileChooserController();
+
+ NSArray* subviews = [[[controller() window] contentView] subviews];
+ NSString* sortedNames[] = { @"Another Test",
+ @"New Profile",
+ @"Test 1",
+ @"Test 2" };
+ // There should be three "other profiles" items, sorted alphabetically.
+ // The "other profiles" start at index 2, after the option buttons and
+ // a separator. We need to iterate through the profiles in the order
+ // displayed in the bubble, which is opposite from the drawn order.
+ int sortedNameIndex = 0;
+ for (NSUInteger i = 5; i >= 2; --i) {
+ NSButton* button = static_cast<NSButton*>([subviews objectAtIndex:i]);
+ EXPECT_TRUE(
+ [[button title] isEqualToString:sortedNames[sortedNameIndex++]]);
+ }
+}
+
TEST_F(ProfileChooserControllerTest, LocalProfileActiveCardLinks) {
StartProfileChooserController();
NSArray* subviews = [[[controller() window] contentView] subviews];
« no previous file with comments | « chrome/browser/ui/cocoa/browser/profile_chooser_controller.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698