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

Side by Side Diff: chrome/browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc

Issue 12605010: Add new option to open history page to show more other devices (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DCHECK_GT Created 7 years, 9 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
« no previous file with comments | « chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" 5 #include "chrome/browser/ui/toolbar/recent_tabs_sub_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/sessions/session_types.h" 8 #include "chrome/browser/sessions/session_types.h"
9 #include "chrome/browser/sessions/session_types_test_helper.h" 9 #include "chrome/browser/sessions/session_types_test_helper.h"
10 #include "chrome/browser/sync/glue/session_model_associator.h" 10 #include "chrome/browser/sync/glue/session_model_associator.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 // Menu index Menu items 140 // Menu index Menu items
141 // -------------------------------------- 141 // --------------------------------------
142 // 0 Reopen closed tab 142 // 0 Reopen closed tab
143 // 1 <separator> 143 // 1 <separator>
144 // 2 <section header for 1st session> 144 // 2 <section header for 1st session>
145 // 3-5 <3 tabs of the only window of session 0> 145 // 3-5 <3 tabs of the only window of session 0>
146 // 6 <separator> 146 // 6 <separator>
147 // 7 <section header for 2nd session> 147 // 7 <section header for 2nd session>
148 // 8 <the only tab of window 0 of session 1> 148 // 8 <the only tab of window 0 of session 1>
149 // 9-10 <2 tabs of window 1 of session 2> 149 // 9-10 <2 tabs of window 1 of session 2>
150 // 11 <separator>
151 // 12 Devices and history...
150 152
151 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true); 153 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true);
152 int num_items = model.GetItemCount(); 154 int num_items = model.GetItemCount();
153 EXPECT_EQ(11, num_items); 155 EXPECT_EQ(13, num_items);
154 model.ActivatedAt(0); 156 model.ActivatedAt(0);
155 EXPECT_TRUE(model.IsEnabledAt(0)); 157 EXPECT_TRUE(model.IsEnabledAt(0));
156 model.ActivatedAt(3); 158 model.ActivatedAt(3);
157 EXPECT_TRUE(model.IsEnabledAt(3)); 159 EXPECT_TRUE(model.IsEnabledAt(3));
158 model.ActivatedAt(4); 160 model.ActivatedAt(4);
159 EXPECT_TRUE(model.IsEnabledAt(4)); 161 EXPECT_TRUE(model.IsEnabledAt(4));
160 model.ActivatedAt(5); 162 model.ActivatedAt(5);
161 EXPECT_TRUE(model.IsEnabledAt(5)); 163 EXPECT_TRUE(model.IsEnabledAt(5));
162 model.ActivatedAt(8); 164 model.ActivatedAt(8);
163 EXPECT_TRUE(model.IsEnabledAt(8)); 165 EXPECT_TRUE(model.IsEnabledAt(8));
164 model.ActivatedAt(9); 166 model.ActivatedAt(9);
165 EXPECT_TRUE(model.IsEnabledAt(9)); 167 EXPECT_TRUE(model.IsEnabledAt(9));
166 model.ActivatedAt(10); 168 model.ActivatedAt(10);
167 EXPECT_TRUE(model.IsEnabledAt(10)); 169 EXPECT_TRUE(model.IsEnabledAt(10));
168 EXPECT_EQ(7, model.enable_count_); 170 EXPECT_TRUE(model.IsEnabledAt(12));
171 EXPECT_EQ(8, model.enable_count_);
169 EXPECT_EQ(7, model.execute_count_); 172 EXPECT_EQ(7, model.execute_count_);
170 } 173 }
171 174
172 TEST_F(RecentTabsSubMenuModelTest, MaxSessionsAndRecency) { 175 TEST_F(RecentTabsSubMenuModelTest, MaxSessionsAndRecency) {
173 // Create 4 sessions : each session has 1 window with 1 tab each. 176 // Create 4 sessions : each session has 1 window with 1 tab each.
174 RecentTabsBuilderTestHelper recent_tabs_builder; 177 RecentTabsBuilderTestHelper recent_tabs_builder;
175 for (int s = 0; s < 4; ++s) { 178 for (int s = 0; s < 4; ++s) {
176 recent_tabs_builder.AddSession(); 179 recent_tabs_builder.AddSession();
177 recent_tabs_builder.AddWindow(s); 180 recent_tabs_builder.AddWindow(s);
178 recent_tabs_builder.AddTab(s, 0); 181 recent_tabs_builder.AddTab(s, 0);
179 } 182 }
180 recent_tabs_builder.RegisterRecentTabs(&associator_); 183 recent_tabs_builder.RegisterRecentTabs(&associator_);
181 184
182 // Verify that data is populated correctly in RecentTabsSubMenuModel. 185 // Verify that data is populated correctly in RecentTabsSubMenuModel.
183 // Expected menu: 186 // Expected menu:
184 // - max sessions is 3, so only 3 most-recent sessions will show 187 // - max sessions is 3, so only 3 most-recent sessions will show.
185 // Menu index Menu items 188 // Menu index Menu items
186 // -------------------------------------- 189 // --------------------------------------
187 // 0 Reopen closed tab 190 // 0 Reopen closed tab
188 // 1 <separator> 191 // 1 <separator>
189 // 2 <section header for 1st session> 192 // 2 <section header for 1st session>
190 // 3 <the only tab of the only window of session 3> 193 // 3 <the only tab of the only window of session 3>
191 // 4 <separator> 194 // 4 <separator>
192 // 5 <section header for 2nd session> 195 // 5 <section header for 2nd session>
193 // 6 <the only tab of the only window of session 2> 196 // 6 <the only tab of the only window of session 2>
194 // 7 <separator> 197 // 7 <separator>
195 // 8 <section header for 3rd session> 198 // 8 <section header for 3rd session>
196 // 9 <the only tab of the only window of session 1> 199 // 9 <the only tab of the only window of session 1>
200 // 10 <separator>
201 // 11 Devices and history...
197 202
198 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true); 203 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true);
199 int num_items = model.GetItemCount(); 204 int num_items = model.GetItemCount();
200 EXPECT_EQ(10, num_items); 205 EXPECT_EQ(12, num_items);
201 206
202 std::vector<string16> tab_titles = 207 std::vector<string16> tab_titles =
203 recent_tabs_builder.GetTabTitlesSortedByRecency(); 208 recent_tabs_builder.GetTabTitlesSortedByRecency();
204 EXPECT_EQ(tab_titles[0], model.GetLabelAt(3)); 209 EXPECT_EQ(tab_titles[0], model.GetLabelAt(3));
205 EXPECT_EQ(tab_titles[1], model.GetLabelAt(6)); 210 EXPECT_EQ(tab_titles[1], model.GetLabelAt(6));
206 EXPECT_EQ(tab_titles[2], model.GetLabelAt(9)); 211 EXPECT_EQ(tab_titles[2], model.GetLabelAt(9));
207 } 212 }
208 213
209 TEST_F(RecentTabsSubMenuModelTest, MaxTabsPerSessionAndRecency) { 214 TEST_F(RecentTabsSubMenuModelTest, MaxTabsPerSessionAndRecency) {
210 // Create a session: 2 windows with 5 tabs each. 215 // Create a session: 2 windows with 5 tabs each.
211 RecentTabsBuilderTestHelper recent_tabs_builder; 216 RecentTabsBuilderTestHelper recent_tabs_builder;
212 recent_tabs_builder.AddSession(); 217 recent_tabs_builder.AddSession();
213 for (int w = 0; w < 2; ++w) { 218 for (int w = 0; w < 2; ++w) {
214 recent_tabs_builder.AddWindow(0); 219 recent_tabs_builder.AddWindow(0);
215 for (int t = 0; t < 5; ++t) 220 for (int t = 0; t < 5; ++t)
216 recent_tabs_builder.AddTab(0, w); 221 recent_tabs_builder.AddTab(0, w);
217 } 222 }
218 recent_tabs_builder.RegisterRecentTabs(&associator_); 223 recent_tabs_builder.RegisterRecentTabs(&associator_);
219 224
220 // Verify that data is populated correctly in RecentTabsSubMenuModel. 225 // Verify that data is populated correctly in RecentTabsSubMenuModel.
221 // Expected menu: 226 // Expected menu:
222 // - max tabs per session is 4, so only 4 most-recent tabs will show, 227 // - max tabs per session is 4, so only 4 most-recent tabs will show,
223 // independent of which window they came from 228 // independent of which window they came from.
224 // Menu index Menu items 229 // Menu index Menu items
225 // -------------------------------------- 230 // --------------------------------------
226 // 0 Reopen closed tab 231 // 0 Reopen closed tab
227 // 1 <separator> 232 // 1 <separator>
228 // 2 <section header for session> 233 // 2 <section header for session>
229 // 3-6 <4 most-recent tabs of session> 234 // 3-6 <4 most-recent tabs of session>
235 // 7 <separator>
236 // 8 Devices and history...
230 237
231 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true); 238 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true);
232 int num_items = model.GetItemCount(); 239 int num_items = model.GetItemCount();
233 EXPECT_EQ(7, num_items); 240 EXPECT_EQ(9, num_items);
234 241
235 std::vector<string16> tab_titles = 242 std::vector<string16> tab_titles =
236 recent_tabs_builder.GetTabTitlesSortedByRecency(); 243 recent_tabs_builder.GetTabTitlesSortedByRecency();
237 for (int i = 0; i < 4; ++i) 244 for (int i = 0; i < 4; ++i)
238 EXPECT_EQ(tab_titles[i], model.GetLabelAt(i + 3)); 245 EXPECT_EQ(tab_titles[i], model.GetLabelAt(i + 3));
239 } 246 }
240 247
241 TEST_F(RecentTabsSubMenuModelTest, MaxWidth) { 248 TEST_F(RecentTabsSubMenuModelTest, MaxWidth) {
242 // Create 1 session with 1 window and 1 tab. 249 // Create 1 session with 1 window and 1 tab.
243 RecentTabsBuilderTestHelper recent_tabs_builder; 250 RecentTabsBuilderTestHelper recent_tabs_builder;
244 recent_tabs_builder.AddSession(); 251 recent_tabs_builder.AddSession();
245 recent_tabs_builder.AddWindow(0); 252 recent_tabs_builder.AddWindow(0);
246 recent_tabs_builder.AddTab(0, 0); 253 recent_tabs_builder.AddTab(0, 0);
247 recent_tabs_builder.RegisterRecentTabs(&associator_); 254 recent_tabs_builder.RegisterRecentTabs(&associator_);
248 255
249 // Menu index Menu items 256 // Menu index Menu items
250 // -------------------------------------- 257 // --------------------------------------
251 // 0 Reopen closed tab 258 // 0 Reopen closed tab
252 // 1 <separator> 259 // 1 <separator>
253 // 2 <section header for 1st session> 260 // 2 <section header for 1st session>
254 // 3 <the only tab of the only window of session 1> 261 // 3 <the only tab of the only window of session 1>
262 // 4 <separator>
263 // 5 Devices and history...
255 264
256 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true); 265 TestRecentTabsSubMenuModel model(NULL, browser(), &associator_, true);
257 EXPECT_EQ(4, model.GetItemCount()); 266 EXPECT_EQ(6, model.GetItemCount());
258 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0)); 267 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0));
259 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1)); 268 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1));
260 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(2)); 269 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(2));
261 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(3)); 270 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(3));
262 } 271 }
263 272
264 TEST_F(RecentTabsSubMenuModelTest, MaxWidthNoDevices) { 273 TEST_F(RecentTabsSubMenuModelTest, MaxWidthNoDevices) {
265 // Expected menu: 274 // Expected menu:
266 // Menu index Menu items 275 // Menu index Menu items
267 // -------------------------------------- 276 // --------------------------------------
268 // 0 Reopen closed tab 277 // 0 Reopen closed tab
269 // 1 <separator> 278 // 1 <separator>
270 // 2 No tabs from other Devices 279 // 2 No tabs from other Devices
271 280
272 TestRecentTabsSubMenuModel model(NULL, browser(), NULL, false); 281 TestRecentTabsSubMenuModel model(NULL, browser(), NULL, false);
273 EXPECT_EQ(3, model.GetItemCount()); 282 EXPECT_EQ(3, model.GetItemCount());
274 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0)); 283 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0));
275 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1)); 284 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1));
276 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(2)); 285 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(2));
277 } 286 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698