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

Side by Side Diff: chrome/browser/ui/cocoa/browser/avatar_icon_controller_unittest.mm

Issue 117533002: [Mac] Redesign of the avatar menu button (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nico review Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #import "chrome/browser/ui/cocoa/browser/avatar_button_controller.h" 5 #import "chrome/browser/ui/cocoa/browser/avatar_icon_controller.h"
6 6
7 #include "base/mac/scoped_nsobject.h" 7 #include "base/mac/scoped_nsobject.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" 9 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
10 #include "chrome/browser/bookmarks/bookmark_test_helpers.h" 10 #include "chrome/browser/bookmarks/bookmark_test_helpers.h"
11 #include "chrome/browser/managed_mode/managed_user_service.h" 11 #include "chrome/browser/managed_mode/managed_user_service.h"
12 #include "chrome/browser/managed_mode/managed_user_service_factory.h" 12 #include "chrome/browser/managed_mode/managed_user_service_factory.h"
13 #include "chrome/browser/prefs/pref_service_syncable.h" 13 #include "chrome/browser/prefs/pref_service_syncable.h"
14 #include "chrome/browser/search_engines/template_url_service_factory.h" 14 #include "chrome/browser/search_engines/template_url_service_factory.h"
15 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
16 #include "chrome/browser/ui/browser_commands.h" 16 #include "chrome/browser/ui/browser_commands.h"
17 #include "chrome/browser/ui/browser_window.h" 17 #include "chrome/browser/ui/browser_window.h"
18 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" 18 #import "chrome/browser/ui/cocoa/base_bubble_controller.h"
19 #import "chrome/browser/ui/cocoa/browser/avatar_menu_bubble_controller.h"
19 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" 20 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h"
20 #include "chrome/browser/ui/cocoa/info_bubble_window.h" 21 #include "chrome/browser/ui/cocoa/info_bubble_window.h"
21 #include "chrome/browser/ui/tabs/tab_strip_model.h" 22 #include "chrome/browser/ui/tabs/tab_strip_model.h"
22 #include "chrome/common/pref_names.h" 23 #include "chrome/common/pref_names.h"
23 #include "chrome/test/base/testing_profile.h" 24 #include "chrome/test/base/testing_profile.h"
24 25
25 class AvatarButtonControllerTest : public CocoaProfileTest { 26 class AvatarIconControllerTest : public CocoaProfileTest {
26 public: 27 public:
27 virtual void SetUp() OVERRIDE { 28 virtual void SetUp() OVERRIDE {
28 CocoaProfileTest::SetUp(); 29 CocoaProfileTest::SetUp();
29 ASSERT_TRUE(browser()); 30 ASSERT_TRUE(browser());
30 31
31 controller_.reset( 32 controller_.reset(
32 [[AvatarButtonController alloc] initWithBrowser:browser()]); 33 [[AvatarIconController alloc] initWithBrowser:browser()]);
33 [[controller_ view] setHidden:YES]; 34 [[controller_ view] setHidden:YES];
34 } 35 }
35 36
36 virtual void TearDown() OVERRIDE { 37 virtual void TearDown() OVERRIDE {
37 browser()->window()->Close(); 38 browser()->window()->Close();
38 CocoaProfileTest::TearDown(); 39 CocoaProfileTest::TearDown();
39 } 40 }
40 41
41 NSButton* button() { return [controller_ buttonView]; } 42 NSButton* button() { return [controller_ buttonView]; }
42 43
43 NSView* view() { return [controller_ view]; } 44 NSView* view() { return [controller_ view]; }
44 45
45 AvatarButtonController* controller() { return controller_.get(); } 46 AvatarIconController* controller() { return controller_.get(); }
46 47
47 private: 48 private:
48 base::scoped_nsobject<AvatarButtonController> controller_; 49 base::scoped_nsobject<AvatarIconController> controller_;
49 }; 50 };
50 51
51 TEST_F(AvatarButtonControllerTest, AddRemoveProfiles) { 52 TEST_F(AvatarIconControllerTest, AddRemoveProfiles) {
52 EXPECT_TRUE([view() isHidden]); 53 EXPECT_TRUE([view() isHidden]);
53 54
54 testing_profile_manager()->CreateTestingProfile("one"); 55 testing_profile_manager()->CreateTestingProfile("one");
55 56
56 EXPECT_FALSE([view() isHidden]); 57 EXPECT_FALSE([view() isHidden]);
57 58
58 testing_profile_manager()->CreateTestingProfile("two"); 59 testing_profile_manager()->CreateTestingProfile("two");
59 EXPECT_FALSE([view() isHidden]); 60 EXPECT_FALSE([view() isHidden]);
60 61
61 testing_profile_manager()->DeleteTestingProfile("one"); 62 testing_profile_manager()->DeleteTestingProfile("one");
62 EXPECT_FALSE([view() isHidden]); 63 EXPECT_FALSE([view() isHidden]);
63 64
64 testing_profile_manager()->DeleteTestingProfile("two"); 65 testing_profile_manager()->DeleteTestingProfile("two");
65 EXPECT_TRUE([view() isHidden]); 66 EXPECT_TRUE([view() isHidden]);
66 } 67 }
67 68
68 TEST_F(AvatarButtonControllerTest, DoubleOpen) { 69 TEST_F(AvatarIconControllerTest, DoubleOpen) {
69 // Create a second profile to enable the avatar menu. 70 // Create a second profile to enable the avatar menu.
70 testing_profile_manager()->CreateTestingProfile("p2"); 71 testing_profile_manager()->CreateTestingProfile("p2");
71 72
72 EXPECT_FALSE([controller() menuController]); 73 EXPECT_FALSE([controller() menuController]);
73 74
74 [button() performClick:button()]; 75 [button() performClick:button()];
75 76
76 BaseBubbleController* menu = [controller() menuController]; 77 BaseBubbleController* menu = [controller() menuController];
78 EXPECT_TRUE([menu isKindOfClass:[AvatarMenuBubbleController class]]);
79
77 EXPECT_TRUE(menu); 80 EXPECT_TRUE(menu);
78 81
79 [button() performClick:button()]; 82 [button() performClick:button()];
80 EXPECT_EQ(menu, [controller() menuController]); 83 EXPECT_EQ(menu, [controller() menuController]);
81 84
82 // Do not animate out because that is hard to test around. 85 // Do not animate out because that is hard to test around.
83 static_cast<InfoBubbleWindow*>(menu.window).allowedAnimations = 86 static_cast<InfoBubbleWindow*>(menu.window).allowedAnimations =
84 info_bubble::kAnimateNone; 87 info_bubble::kAnimateNone;
85 [menu close]; 88 [menu close];
86 EXPECT_FALSE([controller() menuController]); 89 EXPECT_FALSE([controller() menuController]);
87 90
88 testing_profile_manager()->DeleteTestingProfile("p2"); 91 testing_profile_manager()->DeleteTestingProfile("p2");
89 } 92 }
90 93
91 TEST_F(AvatarButtonControllerTest, ManagedUserLabel) { 94 TEST_F(AvatarIconControllerTest, ManagedUserLabel) {
92 DCHECK(!profile()->IsManaged()); 95 DCHECK(!profile()->IsManaged());
93 EXPECT_FALSE([controller() labelButtonView]); 96 EXPECT_FALSE([controller() labelButtonView]);
94 97
95 // Create a second, managed profile to enable the avatar menu. 98 // Create a second, managed profile to enable the avatar menu.
96 std::string name = "p2"; 99 std::string name = "p2";
97 TestingProfile* profile = testing_profile_manager()->CreateTestingProfile( 100 TestingProfile* profile = testing_profile_manager()->CreateTestingProfile(
98 name, scoped_ptr<PrefServiceSyncable>(), base::ASCIIToUTF16(name), 0, 101 name, scoped_ptr<PrefServiceSyncable>(), base::ASCIIToUTF16(name), 0,
99 "asdf", TestingProfile::TestingFactories()); 102 "asdf", TestingProfile::TestingFactories());
100 EXPECT_TRUE(profile->IsManaged()); 103 EXPECT_TRUE(profile->IsManaged());
101 104
102 // http://crbug.com/39725 105 // http://crbug.com/39725
103 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( 106 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
104 profile, &TemplateURLServiceFactory::BuildInstanceFor); 107 profile, &TemplateURLServiceFactory::BuildInstanceFor);
105 AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse( 108 AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse(
106 profile, &AutocompleteClassifierFactory::BuildInstanceFor); 109 profile, &AutocompleteClassifierFactory::BuildInstanceFor);
107 profile->CreateBookmarkModel(true); 110 profile->CreateBookmarkModel(true);
108 test::WaitForBookmarkModelToLoad(profile); 111 test::WaitForBookmarkModelToLoad(profile);
109 112
110 Browser* browser = 113 Browser* browser =
111 new Browser(Browser::CreateParams(profile, chrome::GetActiveDesktop())); 114 new Browser(Browser::CreateParams(profile, chrome::GetActiveDesktop()));
112 // Build a new controller to check if it is initialized correctly for a 115 // Build a new controller to check if it is initialized correctly for a
113 // managed user profile. 116 // managed user profile.
114 base::scoped_nsobject<AvatarButtonController> controller( 117 base::scoped_nsobject<AvatarIconController> controller(
115 [[AvatarButtonController alloc] initWithBrowser:browser]); 118 [[AvatarIconController alloc] initWithBrowser:browser]);
116 119
117 EXPECT_TRUE([controller labelButtonView]); 120 EXPECT_TRUE([controller labelButtonView]);
118 121
119 browser->window()->Close(); 122 browser->window()->Close();
120 } 123 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/browser/avatar_icon_controller.mm ('k') | chrome/browser/ui/cocoa/browser_window_cocoa.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698