OLD | NEW |
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 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" | 5 #include "chrome/browser/ui/toolbar/app_menu_model.h" |
6 | 6 |
7 #include "chrome/app/chrome_command_ids.h" | 7 #include "chrome/app/chrome_command_ids.h" |
8 #include "chrome/browser/defaults.h" | 8 #include "chrome/browser/defaults.h" |
9 #include "chrome/browser/prefs/browser_prefs.h" | 9 #include "chrome/browser/prefs/browser_prefs.h" |
10 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" | 10 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
11 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
12 #include "chrome/browser/ui/global_error/global_error.h" | 12 #include "chrome/browser/ui/global_error/global_error.h" |
13 #include "chrome/browser/ui/global_error/global_error_service.h" | 13 #include "chrome/browser/ui/global_error/global_error_service.h" |
14 #include "chrome/browser/ui/global_error/global_error_service_factory.h" | 14 #include "chrome/browser/ui/global_error/global_error_service_factory.h" |
15 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 15 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
(...skipping 30 matching lines...) Expand all Loading... |
46 | 46 |
47 private: | 47 private: |
48 int command_id_; | 48 int command_id_; |
49 int execute_count_; | 49 int execute_count_; |
50 | 50 |
51 DISALLOW_COPY_AND_ASSIGN(MenuError); | 51 DISALLOW_COPY_AND_ASSIGN(MenuError); |
52 }; | 52 }; |
53 | 53 |
54 } // namespace | 54 } // namespace |
55 | 55 |
56 class WrenchMenuModelTest : public BrowserWithTestWindowTest, | 56 class AppMenuModelTest : public BrowserWithTestWindowTest, |
57 public ui::AcceleratorProvider { | 57 public ui::AcceleratorProvider { |
58 public: | 58 public: |
59 // Don't handle accelerators. | 59 // Don't handle accelerators. |
60 bool GetAcceleratorForCommandId(int command_id, | 60 bool GetAcceleratorForCommandId(int command_id, |
61 ui::Accelerator* accelerator) override { | 61 ui::Accelerator* accelerator) override { |
62 return false; | 62 return false; |
63 } | 63 } |
64 | 64 |
65 protected: | 65 protected: |
66 void SetUp() override { | 66 void SetUp() override { |
67 prefs_.reset(new TestingPrefServiceSimple()); | 67 prefs_.reset(new TestingPrefServiceSimple()); |
(...skipping 10 matching lines...) Expand all Loading... |
78 TestingBrowserProcess::GetGlobal()->SetLocalState(NULL); | 78 TestingBrowserProcess::GetGlobal()->SetLocalState(NULL); |
79 DestroyBrowserAndProfile(); | 79 DestroyBrowserAndProfile(); |
80 } | 80 } |
81 | 81 |
82 private: | 82 private: |
83 scoped_ptr<TestingPrefServiceSimple> prefs_; | 83 scoped_ptr<TestingPrefServiceSimple> prefs_; |
84 scoped_ptr<chrome::TestingIOThreadState> testing_io_thread_state_; | 84 scoped_ptr<chrome::TestingIOThreadState> testing_io_thread_state_; |
85 }; | 85 }; |
86 | 86 |
87 // Copies parts of MenuModelTest::Delegate and combines them with the | 87 // Copies parts of MenuModelTest::Delegate and combines them with the |
88 // WrenchMenuModel since WrenchMenuModel is now a SimpleMenuModel::Delegate and | 88 // AppMenuModel since AppMenuModel is now a SimpleMenuModel::Delegate and |
89 // not derived from SimpleMenuModel. | 89 // not derived from SimpleMenuModel. |
90 class TestWrenchMenuModel : public WrenchMenuModel { | 90 class TestAppMenuModel : public AppMenuModel { |
91 public: | 91 public: |
92 TestWrenchMenuModel(ui::AcceleratorProvider* provider, | 92 TestAppMenuModel(ui::AcceleratorProvider* provider, Browser* browser) |
93 Browser* browser) | 93 : AppMenuModel(provider, browser), |
94 : WrenchMenuModel(provider, browser), | |
95 execute_count_(0), | 94 execute_count_(0), |
96 checked_count_(0), | 95 checked_count_(0), |
97 enable_count_(0) { | 96 enable_count_(0) {} |
98 } | |
99 | 97 |
100 // Testing overrides to ui::SimpleMenuModel::Delegate: | 98 // Testing overrides to ui::SimpleMenuModel::Delegate: |
101 bool IsCommandIdChecked(int command_id) const override { | 99 bool IsCommandIdChecked(int command_id) const override { |
102 bool val = WrenchMenuModel::IsCommandIdChecked(command_id); | 100 bool val = AppMenuModel::IsCommandIdChecked(command_id); |
103 if (val) | 101 if (val) |
104 checked_count_++; | 102 checked_count_++; |
105 return val; | 103 return val; |
106 } | 104 } |
107 | 105 |
108 bool IsCommandIdEnabled(int command_id) const override { | 106 bool IsCommandIdEnabled(int command_id) const override { |
109 ++enable_count_; | 107 ++enable_count_; |
110 return true; | 108 return true; |
111 } | 109 } |
112 | 110 |
113 void ExecuteCommand(int command_id, int event_flags) override { | 111 void ExecuteCommand(int command_id, int event_flags) override { |
114 ++execute_count_; | 112 ++execute_count_; |
115 } | 113 } |
116 | 114 |
117 int execute_count_; | 115 int execute_count_; |
118 mutable int checked_count_; | 116 mutable int checked_count_; |
119 mutable int enable_count_; | 117 mutable int enable_count_; |
120 }; | 118 }; |
121 | 119 |
122 TEST_F(WrenchMenuModelTest, Basics) { | 120 TEST_F(AppMenuModelTest, Basics) { |
123 TestWrenchMenuModel model(this, browser()); | 121 TestAppMenuModel model(this, browser()); |
124 int itemCount = model.GetItemCount(); | 122 int itemCount = model.GetItemCount(); |
125 | 123 |
126 // Verify it has items. The number varies by platform, so we don't check | 124 // Verify it has items. The number varies by platform, so we don't check |
127 // the exact number. | 125 // the exact number. |
128 EXPECT_GT(itemCount, 10); | 126 EXPECT_GT(itemCount, 10); |
129 | 127 |
130 UpgradeDetector* detector = UpgradeDetector::GetInstance(); | 128 UpgradeDetector* detector = UpgradeDetector::GetInstance(); |
131 detector->NotifyUpgradeRecommended(); | 129 detector->NotifyUpgradeRecommended(); |
132 EXPECT_TRUE(detector->notify_upgrade()); | 130 EXPECT_TRUE(detector->notify_upgrade()); |
133 EXPECT_EQ(browser_defaults::kShowUpgradeMenuItem, | 131 EXPECT_EQ(browser_defaults::kShowUpgradeMenuItem, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 EXPECT_GT(bookmarksModel->GetItemCount(), 1); | 165 EXPECT_GT(bookmarksModel->GetItemCount(), 1); |
168 | 166 |
169 // Bookmark manager item. | 167 // Bookmark manager item. |
170 bookmarksModel->ActivatedAt(4); | 168 bookmarksModel->ActivatedAt(4); |
171 EXPECT_TRUE(bookmarksModel->IsEnabledAt(4)); | 169 EXPECT_TRUE(bookmarksModel->IsEnabledAt(4)); |
172 EXPECT_EQ(model.execute_count_, 1); | 170 EXPECT_EQ(model.execute_count_, 1); |
173 EXPECT_EQ(model.enable_count_, 1); | 171 EXPECT_EQ(model.enable_count_, 1); |
174 } | 172 } |
175 | 173 |
176 // Tests global error menu items in the wrench menu. | 174 // Tests global error menu items in the wrench menu. |
177 TEST_F(WrenchMenuModelTest, GlobalError) { | 175 TEST_F(AppMenuModelTest, GlobalError) { |
178 // Make sure services required for tests are initialized. | 176 // Make sure services required for tests are initialized. |
179 GlobalErrorService* service = | 177 GlobalErrorService* service = |
180 GlobalErrorServiceFactory::GetForProfile(browser()->profile()); | 178 GlobalErrorServiceFactory::GetForProfile(browser()->profile()); |
181 ProfileOAuth2TokenServiceFactory::GetForProfile(browser()->profile()); | 179 ProfileOAuth2TokenServiceFactory::GetForProfile(browser()->profile()); |
182 const int command1 = 1234567; | 180 const int command1 = 1234567; |
183 // AddGlobalError takes ownership of error1. | 181 // AddGlobalError takes ownership of error1. |
184 MenuError* error1 = new MenuError(command1); | 182 MenuError* error1 = new MenuError(command1); |
185 service->AddGlobalError(error1); | 183 service->AddGlobalError(error1); |
186 const int command2 = 1234568; | 184 const int command2 = 1234568; |
187 // AddGlobalError takes ownership of error2. | 185 // AddGlobalError takes ownership of error2. |
188 MenuError* error2 = new MenuError(command2); | 186 MenuError* error2 = new MenuError(command2); |
189 service->AddGlobalError(error2); | 187 service->AddGlobalError(error2); |
190 | 188 |
191 WrenchMenuModel model(this, browser()); | 189 AppMenuModel model(this, browser()); |
192 int index1 = model.GetIndexOfCommandId(command1); | 190 int index1 = model.GetIndexOfCommandId(command1); |
193 EXPECT_GT(index1, -1); | 191 EXPECT_GT(index1, -1); |
194 int index2 = model.GetIndexOfCommandId(command2); | 192 int index2 = model.GetIndexOfCommandId(command2); |
195 EXPECT_GT(index2, -1); | 193 EXPECT_GT(index2, -1); |
196 | 194 |
197 EXPECT_TRUE(model.IsEnabledAt(index1)); | 195 EXPECT_TRUE(model.IsEnabledAt(index1)); |
198 EXPECT_EQ(0, error1->execute_count()); | 196 EXPECT_EQ(0, error1->execute_count()); |
199 model.ActivatedAt(index1); | 197 model.ActivatedAt(index1); |
200 EXPECT_EQ(1, error1->execute_count()); | 198 EXPECT_EQ(1, error1->execute_count()); |
201 | 199 |
202 EXPECT_TRUE(model.IsEnabledAt(index2)); | 200 EXPECT_TRUE(model.IsEnabledAt(index2)); |
203 EXPECT_EQ(0, error2->execute_count()); | 201 EXPECT_EQ(0, error2->execute_count()); |
204 model.ActivatedAt(index2); | 202 model.ActivatedAt(index2); |
205 EXPECT_EQ(1, error1->execute_count()); | 203 EXPECT_EQ(1, error1->execute_count()); |
206 } | 204 } |
207 | 205 |
208 class EncodingMenuModelTest : public BrowserWithTestWindowTest, | 206 class EncodingMenuModelTest : public BrowserWithTestWindowTest, |
209 public MenuModelTest { | 207 public MenuModelTest { |
210 }; | 208 }; |
211 | 209 |
212 TEST_F(EncodingMenuModelTest, IsCommandIdCheckedWithNoTabs) { | 210 TEST_F(EncodingMenuModelTest, IsCommandIdCheckedWithNoTabs) { |
213 EncodingMenuModel model(browser()); | 211 EncodingMenuModel model(browser()); |
214 ASSERT_EQ(NULL, browser()->tab_strip_model()->GetActiveWebContents()); | 212 ASSERT_EQ(NULL, browser()->tab_strip_model()->GetActiveWebContents()); |
215 EXPECT_FALSE(model.IsCommandIdChecked(IDC_ENCODING_WINDOWS1252)); | 213 EXPECT_FALSE(model.IsCommandIdChecked(IDC_ENCODING_WINDOWS1252)); |
216 } | 214 } |
OLD | NEW |