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

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

Issue 1182493009: Wrench menu reorg phase 2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix merge error Created 5 years, 6 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 scoped_ptr<sync_driver::LocalDeviceInfoProviderMock> local_device_; 162 scoped_ptr<sync_driver::LocalDeviceInfoProviderMock> local_device_;
163 }; 163 };
164 164
165 // Test disabled "Recently closed" header with no foreign tabs. 165 // Test disabled "Recently closed" header with no foreign tabs.
166 TEST_F(RecentTabsSubMenuModelTest, NoTabs) { 166 TEST_F(RecentTabsSubMenuModelTest, NoTabs) {
167 TestRecentTabsSubMenuModel model(NULL, browser(), NULL); 167 TestRecentTabsSubMenuModel model(NULL, browser(), NULL);
168 168
169 // Expected menu: 169 // Expected menu:
170 // Menu index Menu items 170 // Menu index Menu items
171 // --------------------------------------------- 171 // ---------------------------------------------
172 // 0 Recently closed header (disabled) 172 // 0 History
173 // 1 <separator> 173 // 1 <separator>
174 // 2 No tabs from other Devices 174 // 2 Recently closed header (disabled)
175 // 3 <separator>
176 // 4 No tabs from other Devices
175 177
176 int num_items = model.GetItemCount(); 178 int num_items = model.GetItemCount();
177 EXPECT_EQ(3, num_items); 179 EXPECT_EQ(5, num_items);
178 EXPECT_FALSE(model.IsEnabledAt(0));
179 EXPECT_FALSE(model.IsEnabledAt(2)); 180 EXPECT_FALSE(model.IsEnabledAt(2));
181 EXPECT_FALSE(model.IsEnabledAt(4));
180 EXPECT_EQ(0, model.enable_count()); 182 EXPECT_EQ(0, model.enable_count());
181 183
182 EXPECT_EQ(NULL, model.GetLabelFontListAt(0)); 184 EXPECT_EQ(NULL, model.GetLabelFontListAt(0));
183 EXPECT_EQ(NULL, model.GetLabelFontListAt(1)); 185 EXPECT_EQ(NULL, model.GetLabelFontListAt(1));
184 EXPECT_EQ(NULL, model.GetLabelFontListAt(2)); 186 EXPECT_EQ(NULL, model.GetLabelFontListAt(2));
187 EXPECT_EQ(NULL, model.GetLabelFontListAt(3));
188 EXPECT_EQ(NULL, model.GetLabelFontListAt(4));
185 189
186 std::string url; 190 std::string url;
187 base::string16 title; 191 base::string16 title;
188 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title)); 192 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title));
189 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title)); 193 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title));
190 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title)); 194 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title));
195 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(3, &url, &title));
196 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(4, &url, &title));
191 } 197 }
192 198
193 // Test enabled "Recently closed" header with no foreign tabs. 199 // Test enabled "Recently closed" header with no foreign tabs.
194 TEST_F(RecentTabsSubMenuModelTest, RecentlyClosedTabsFromCurrentSession) { 200 TEST_F(RecentTabsSubMenuModelTest, RecentlyClosedTabsFromCurrentSession) {
195 TabRestoreServiceFactory::GetInstance()->SetTestingFactory( 201 TabRestoreServiceFactory::GetInstance()->SetTestingFactory(
196 profile(), RecentTabsSubMenuModelTest::GetTabRestoreService); 202 profile(), RecentTabsSubMenuModelTest::GetTabRestoreService);
197 203
198 // Add 2 tabs and close them. 204 // Add 2 tabs and close them.
199 AddTab(browser(), GURL("http://foo/1")); 205 AddTab(browser(), GURL("http://foo/1"));
200 AddTab(browser(), GURL("http://foo/2")); 206 AddTab(browser(), GURL("http://foo/2"));
201 browser()->tab_strip_model()->CloseAllTabs(); 207 browser()->tab_strip_model()->CloseAllTabs();
202 208
203 TestRecentTabsSubMenuModel model(NULL, browser(), NULL); 209 TestRecentTabsSubMenuModel model(NULL, browser(), NULL);
204 // Expected menu: 210 // Expected menu:
205 // Menu index Menu items 211 // Menu index Menu items
206 // -------------------------------------- 212 // --------------------------------------
207 // 0 Recently closed header 213 // 0 History
208 // 1 <tab for http://foo/2> 214 // 1 <separator>
209 // 2 <tab for http://foo/1> 215 // 2 Recently closed header
210 // 3 <separator> 216 // 3 <tab for http://foo/2>
211 // 4 No tabs from other Devices 217 // 4 <tab for http://foo/1>
218 // 5 <separator>
219 // 6 No tabs from other Devices
212 int num_items = model.GetItemCount(); 220 int num_items = model.GetItemCount();
213 EXPECT_EQ(5, num_items); 221 EXPECT_EQ(7, num_items);
214 EXPECT_FALSE(model.IsEnabledAt(0)); 222 EXPECT_TRUE(model.IsEnabledAt(0));
223 model.ActivatedAt(0);
215 EXPECT_TRUE(model.IsEnabledAt(1)); 224 EXPECT_TRUE(model.IsEnabledAt(1));
216 EXPECT_TRUE(model.IsEnabledAt(2)); 225 EXPECT_FALSE(model.IsEnabledAt(2));
217 model.ActivatedAt(1); 226 EXPECT_TRUE(model.IsEnabledAt(3));
218 model.ActivatedAt(2); 227 EXPECT_TRUE(model.IsEnabledAt(4));
219 EXPECT_FALSE(model.IsEnabledAt(4)); 228 model.ActivatedAt(3);
220 EXPECT_EQ(2, model.enable_count()); 229 model.ActivatedAt(4);
221 EXPECT_EQ(2, model.execute_count()); 230 EXPECT_FALSE(model.IsEnabledAt(6));
231 EXPECT_EQ(3, model.enable_count());
232 EXPECT_EQ(3, model.execute_count());
222 233
223 EXPECT_TRUE(model.GetLabelFontListAt(0) != NULL); 234 EXPECT_EQ(NULL, model.GetLabelFontListAt(0));
224 EXPECT_EQ(NULL, model.GetLabelFontListAt(1)); 235 EXPECT_EQ(NULL, model.GetLabelFontListAt(1));
225 EXPECT_EQ(NULL, model.GetLabelFontListAt(2)); 236 EXPECT_TRUE(model.GetLabelFontListAt(2) != nullptr);
226 EXPECT_EQ(NULL, model.GetLabelFontListAt(3)); 237 EXPECT_EQ(NULL, model.GetLabelFontListAt(3));
227 EXPECT_EQ(NULL, model.GetLabelFontListAt(4)); 238 EXPECT_EQ(NULL, model.GetLabelFontListAt(4));
239 EXPECT_EQ(NULL, model.GetLabelFontListAt(5));
240 EXPECT_EQ(NULL, model.GetLabelFontListAt(6));
228 241
229 std::string url; 242 std::string url;
230 base::string16 title; 243 base::string16 title;
231 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title)); 244 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title));
232 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(1, &url, &title)); 245 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title));
233 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(2, &url, &title)); 246 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title));
234 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(3, &url, &title)); 247 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(3, &url, &title));
235 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(4, &url, &title)); 248 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(4, &url, &title));
249 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(5, &url, &title));
250 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(6, &url, &title));
236 } 251 }
237 252
238 // TODO(sail): enable this test when dynamic model is enabled in 253 // TODO(sail): enable this test when dynamic model is enabled in
239 // RecentTabsSubMenuModel. 254 // RecentTabsSubMenuModel.
240 #if defined(OS_MACOSX) 255 #if defined(OS_MACOSX)
241 #define MAYBE_RecentlyClosedTabsAndWindowsFromLastSession \ 256 #define MAYBE_RecentlyClosedTabsAndWindowsFromLastSession \
242 DISABLED_RecentlyClosedTabsAndWindowsFromLastSession 257 DISABLED_RecentlyClosedTabsAndWindowsFromLastSession
243 #else 258 #else
244 #define MAYBE_RecentlyClosedTabsAndWindowsFromLastSession \ 259 #define MAYBE_RecentlyClosedTabsAndWindowsFromLastSession \
245 RecentlyClosedTabsAndWindowsFromLastSession 260 RecentlyClosedTabsAndWindowsFromLastSession
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 // Let the shutdown of previous TabRestoreService run. 300 // Let the shutdown of previous TabRestoreService run.
286 content::RunAllBlockingPoolTasksUntilIdle(); 301 content::RunAllBlockingPoolTasksUntilIdle();
287 302
288 TestRecentTabsSubMenuModel model(NULL, browser(), NULL); 303 TestRecentTabsSubMenuModel model(NULL, browser(), NULL);
289 TestRecentTabsMenuModelDelegate delegate(&model); 304 TestRecentTabsMenuModelDelegate delegate(&model);
290 EXPECT_FALSE(delegate.got_changes()); 305 EXPECT_FALSE(delegate.got_changes());
291 306
292 // Expected menu before tabs/windows from last session are loaded: 307 // Expected menu before tabs/windows from last session are loaded:
293 // Menu index Menu items 308 // Menu index Menu items
294 // ---------------------------------------------------------------- 309 // ----------------------------------------------------------------
295 // 0 Recently closed header 310 // 0 History
296 // 1 <separator> 311 // 1 <separator>
297 // 2 No tabs from other Devices 312 // 2 Recently closed header
313 // 3 <separator>
314 // 4 No tabs from other Devices
298 315
299 int num_items = model.GetItemCount(); 316 int num_items = model.GetItemCount();
300 EXPECT_EQ(3, num_items); 317 EXPECT_EQ(5, num_items);
301 EXPECT_FALSE(model.IsEnabledAt(0)); 318 EXPECT_TRUE(model.IsEnabledAt(0));
302 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(1)); 319 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(1));
303 EXPECT_FALSE(model.IsEnabledAt(2)); 320 EXPECT_FALSE(model.IsEnabledAt(2));
304 EXPECT_EQ(0, model.enable_count()); 321 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(3));
322 EXPECT_FALSE(model.IsEnabledAt(4));
323 EXPECT_EQ(1, model.enable_count());
305 324
306 // Wait for tabs from last session to be loaded. 325 // Wait for tabs from last session to be loaded.
307 WaitForLoadFromLastSession(); 326 WaitForLoadFromLastSession();
308 327
309 // Expected menu after tabs/windows from last session are loaded: 328 // Expected menu after tabs/windows from last session are loaded:
310 // Menu index Menu items 329 // Menu index Menu items
311 // -------------------------------------------------------------- 330 // --------------------------------------------------------------
312 // 0 Recently closed header 331 // 0 History
313 // 1 <window for the tab http://wnd1/tab0> 332 // 1 <separator>
314 // 2 <tab for http://wnd0/tab1> 333 // 2 Recently closed header
315 // 3 <tab for http://wnd0/tab0> 334 // 3 <window for the tab http://wnd1/tab0>
316 // 4 <separator> 335 // 4 <tab for http://wnd0/tab1>
317 // 5 No tabs from other Devices 336 // 5 <tab for http://wnd0/tab0>
337 // 6 <separator>
338 // 7 No tabs from other Devices
318 339
319 EXPECT_TRUE(delegate.got_changes()); 340 EXPECT_TRUE(delegate.got_changes());
320 341
321 num_items = model.GetItemCount(); 342 num_items = model.GetItemCount();
322 EXPECT_EQ(6, num_items); 343 EXPECT_EQ(8, num_items);
323 EXPECT_FALSE(model.IsEnabledAt(0)); 344
345 EXPECT_TRUE(model.IsEnabledAt(0));
346 model.ActivatedAt(0);
324 EXPECT_TRUE(model.IsEnabledAt(1)); 347 EXPECT_TRUE(model.IsEnabledAt(1));
325 EXPECT_TRUE(model.IsEnabledAt(2)); 348 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(1));
349 EXPECT_FALSE(model.IsEnabledAt(2));
326 EXPECT_TRUE(model.IsEnabledAt(3)); 350 EXPECT_TRUE(model.IsEnabledAt(3));
327 model.ActivatedAt(1); 351 EXPECT_TRUE(model.IsEnabledAt(4));
328 model.ActivatedAt(2); 352 EXPECT_TRUE(model.IsEnabledAt(5));
329 model.ActivatedAt(3); 353 model.ActivatedAt(3);
330 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(4)); 354 model.ActivatedAt(4);
331 EXPECT_FALSE(model.IsEnabledAt(5)); 355 model.ActivatedAt(5);
332 EXPECT_EQ(3, model.enable_count()); 356 EXPECT_EQ(ui::MenuModel::TYPE_SEPARATOR, model.GetTypeAt(6));
333 EXPECT_EQ(3, model.execute_count()); 357 EXPECT_FALSE(model.IsEnabledAt(7));
358 EXPECT_EQ(5, model.enable_count());
359 EXPECT_EQ(4, model.execute_count());
334 360
335 EXPECT_TRUE(model.GetLabelFontListAt(0) != NULL); 361 EXPECT_EQ(NULL, model.GetLabelFontListAt(0));
336 EXPECT_EQ(NULL, model.GetLabelFontListAt(1)); 362 EXPECT_EQ(NULL, model.GetLabelFontListAt(1));
337 EXPECT_EQ(NULL, model.GetLabelFontListAt(2)); 363 EXPECT_TRUE(model.GetLabelFontListAt(2) != nullptr);
338 EXPECT_EQ(NULL, model.GetLabelFontListAt(3)); 364 EXPECT_EQ(NULL, model.GetLabelFontListAt(3));
339 EXPECT_EQ(NULL, model.GetLabelFontListAt(4)); 365 EXPECT_EQ(NULL, model.GetLabelFontListAt(4));
340 EXPECT_EQ(NULL, model.GetLabelFontListAt(5)); 366 EXPECT_EQ(NULL, model.GetLabelFontListAt(5));
367 EXPECT_EQ(NULL, model.GetLabelFontListAt(6));
368 EXPECT_EQ(NULL, model.GetLabelFontListAt(7));
341 369
342 std::string url; 370 std::string url;
343 base::string16 title; 371 base::string16 title;
344 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title)); 372 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title));
345 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title)); 373 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title));
346 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(2, &url, &title)); 374 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title));
347 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(3, &url, &title)); 375 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(3, &url, &title));
348 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(4, &url, &title)); 376 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(4, &url, &title));
349 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(5, &url, &title)); 377 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(5, &url, &title));
378 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(6, &url, &title));
379 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(7, &url, &title));
350 } 380 }
351 381
352 // Test disabled "Recently closed" header with multiple sessions, multiple 382 // Test disabled "Recently closed" header with multiple sessions, multiple
353 // windows, and multiple enabled tabs from other devices. 383 // windows, and multiple enabled tabs from other devices.
354 TEST_F(RecentTabsSubMenuModelTest, OtherDevices) { 384 TEST_F(RecentTabsSubMenuModelTest, OtherDevices) {
355 // Tabs are populated in decreasing timestamp. 385 // Tabs are populated in decreasing timestamp.
356 base::Time timestamp = base::Time::Now(); 386 base::Time timestamp = base::Time::Now();
357 const base::TimeDelta time_delta = base::TimeDelta::FromMinutes(10); 387 const base::TimeDelta time_delta = base::TimeDelta::FromMinutes(10);
358 388
359 RecentTabsBuilderTestHelper recent_tabs_builder; 389 RecentTabsBuilderTestHelper recent_tabs_builder;
(...skipping 17 matching lines...) Expand all
377 timestamp -= time_delta; 407 timestamp -= time_delta;
378 recent_tabs_builder.AddTabWithInfo(1, 1, timestamp, base::string16()); 408 recent_tabs_builder.AddTabWithInfo(1, 1, timestamp, base::string16());
379 409
380 RegisterRecentTabs(&recent_tabs_builder); 410 RegisterRecentTabs(&recent_tabs_builder);
381 411
382 // Verify that data is populated correctly in RecentTabsSubMenuModel. 412 // Verify that data is populated correctly in RecentTabsSubMenuModel.
383 // Expected menu: 413 // Expected menu:
384 // - first inserted tab is most recent and hence is top 414 // - first inserted tab is most recent and hence is top
385 // Menu index Menu items 415 // Menu index Menu items
386 // ----------------------------------------------------- 416 // -----------------------------------------------------
387 // 0 Recently closed header (disabled) 417 // 0 History
388 // 1 <separator> 418 // 1 <separator>
389 // 2 <section header for 1st session> 419 // 2 Recently closed header (disabled)
390 // 3-5 <3 tabs of the only window of session 0> 420 // 3 <separator>
391 // 6 <separator> 421 // 4 <section header for 1st session>
392 // 7 <section header for 2nd session> 422 // 5-7 <3 tabs of the only window of session 0>
393 // 8 <the only tab of window 0 of session 1> 423 // 8 <separator>
394 // 9-10 <2 tabs of window 1 of session 2> 424 // 9 <section header for 2nd session>
395 // 11 <separator> 425 // 10 <the only tab of window 0 of session 1>
396 // 12 More... 426 // 11-12 <2 tabs of window 1 of session 2>
397 427
398 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate()); 428 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate());
399 int num_items = model.GetItemCount(); 429 int num_items = model.GetItemCount();
400 EXPECT_EQ(13, num_items); 430 EXPECT_EQ(13, num_items);
401 model.ActivatedAt(0); 431 model.ActivatedAt(0);
402 EXPECT_FALSE(model.IsEnabledAt(0)); 432 EXPECT_TRUE(model.IsEnabledAt(0));
433 model.ActivatedAt(1);
434 EXPECT_TRUE(model.IsEnabledAt(1));
435 model.ActivatedAt(2);
436 EXPECT_FALSE(model.IsEnabledAt(2));
403 model.ActivatedAt(3); 437 model.ActivatedAt(3);
404 EXPECT_TRUE(model.IsEnabledAt(3)); 438 EXPECT_TRUE(model.IsEnabledAt(3));
405 model.ActivatedAt(4);
406 EXPECT_TRUE(model.IsEnabledAt(4));
407 model.ActivatedAt(5); 439 model.ActivatedAt(5);
408 EXPECT_TRUE(model.IsEnabledAt(5)); 440 EXPECT_TRUE(model.IsEnabledAt(5));
409 model.ActivatedAt(8); 441 model.ActivatedAt(6);
410 EXPECT_TRUE(model.IsEnabledAt(8)); 442 EXPECT_TRUE(model.IsEnabledAt(6));
411 model.ActivatedAt(9); 443 model.ActivatedAt(7);
412 EXPECT_TRUE(model.IsEnabledAt(9)); 444 EXPECT_TRUE(model.IsEnabledAt(7));
413 model.ActivatedAt(10); 445 model.ActivatedAt(10);
414 EXPECT_TRUE(model.IsEnabledAt(10)); 446 EXPECT_TRUE(model.IsEnabledAt(10));
447 model.ActivatedAt(11);
448 EXPECT_TRUE(model.IsEnabledAt(11));
449 model.ActivatedAt(12);
415 EXPECT_TRUE(model.IsEnabledAt(12)); 450 EXPECT_TRUE(model.IsEnabledAt(12));
451
416 EXPECT_EQ(7, model.enable_count()); 452 EXPECT_EQ(7, model.enable_count());
417 EXPECT_EQ(7, model.execute_count()); 453 EXPECT_EQ(10, model.execute_count());
418 454
419 EXPECT_EQ(NULL, model.GetLabelFontListAt(0)); 455 EXPECT_EQ(NULL, model.GetLabelFontListAt(0));
420 EXPECT_EQ(NULL, model.GetLabelFontListAt(1)); 456 EXPECT_EQ(NULL, model.GetLabelFontListAt(1));
421 EXPECT_TRUE(model.GetLabelFontListAt(2) != NULL); 457 EXPECT_EQ(NULL, model.GetLabelFontListAt(2));
422 EXPECT_EQ(NULL, model.GetLabelFontListAt(3)); 458 EXPECT_EQ(NULL, model.GetLabelFontListAt(3));
423 EXPECT_EQ(NULL, model.GetLabelFontListAt(4)); 459 EXPECT_TRUE(model.GetLabelFontListAt(4) != nullptr);
424 EXPECT_EQ(NULL, model.GetLabelFontListAt(5)); 460 EXPECT_EQ(NULL, model.GetLabelFontListAt(5));
425 EXPECT_EQ(NULL, model.GetLabelFontListAt(6)); 461 EXPECT_EQ(NULL, model.GetLabelFontListAt(6));
426 EXPECT_TRUE(model.GetLabelFontListAt(7) != NULL); 462 EXPECT_EQ(NULL, model.GetLabelFontListAt(7));
427 EXPECT_EQ(NULL, model.GetLabelFontListAt(8)); 463 EXPECT_EQ(NULL, model.GetLabelFontListAt(8));
428 EXPECT_EQ(NULL, model.GetLabelFontListAt(9)); 464 EXPECT_TRUE(model.GetLabelFontListAt(9) != nullptr);
429 EXPECT_EQ(NULL, model.GetLabelFontListAt(10)); 465 EXPECT_EQ(NULL, model.GetLabelFontListAt(10));
430 EXPECT_EQ(NULL, model.GetLabelFontListAt(11)); 466 EXPECT_EQ(NULL, model.GetLabelFontListAt(11));
431 EXPECT_EQ(NULL, model.GetLabelFontListAt(12)); 467 EXPECT_EQ(NULL, model.GetLabelFontListAt(12));
432 468
433 std::string url; 469 std::string url;
434 base::string16 title; 470 base::string16 title;
435 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title)); 471 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(0, &url, &title));
436 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title)); 472 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(1, &url, &title));
437 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title)); 473 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(2, &url, &title));
438 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(3, &url, &title)); 474 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(3, &url, &title));
439 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(4, &url, &title)); 475 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(4, &url, &title));
440 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(5, &url, &title)); 476 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(5, &url, &title));
441 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(6, &url, &title)); 477 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(6, &url, &title));
442 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(7, &url, &title)); 478 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(7, &url, &title));
443 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(8, &url, &title)); 479 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(8, &url, &title));
444 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(9, &url, &title)); 480 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(9, &url, &title));
445 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(10, &url, &title)); 481 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(10, &url, &title));
446 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(11, &url, &title)); 482 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(11, &url, &title));
447 EXPECT_FALSE(model.GetURLAndTitleForItemAtIndex(12, &url, &title)); 483 EXPECT_TRUE(model.GetURLAndTitleForItemAtIndex(12, &url, &title));
448 } 484 }
449 485
450 TEST_F(RecentTabsSubMenuModelTest, MaxSessionsAndRecency) { 486 TEST_F(RecentTabsSubMenuModelTest, MaxSessionsAndRecency) {
451 // Create 4 sessions : each session has 1 window with 1 tab each. 487 // Create 4 sessions : each session has 1 window with 1 tab each.
452 RecentTabsBuilderTestHelper recent_tabs_builder; 488 RecentTabsBuilderTestHelper recent_tabs_builder;
453 for (int s = 0; s < 4; ++s) { 489 for (int s = 0; s < 4; ++s) {
454 recent_tabs_builder.AddSession(); 490 recent_tabs_builder.AddSession();
455 recent_tabs_builder.AddWindow(s); 491 recent_tabs_builder.AddWindow(s);
456 recent_tabs_builder.AddTab(s, 0); 492 recent_tabs_builder.AddTab(s, 0);
457 } 493 }
458 RegisterRecentTabs(&recent_tabs_builder); 494 RegisterRecentTabs(&recent_tabs_builder);
459 495
460 // Verify that data is populated correctly in RecentTabsSubMenuModel. 496 // Verify that data is populated correctly in RecentTabsSubMenuModel.
461 // Expected menu: 497 // Expected menu:
462 // - max sessions is 3, so only 3 most-recent sessions will show. 498 // - max sessions is 3, so only 3 most-recent sessions will show.
463 // Menu index Menu items 499 // Menu index Menu items
464 // ---------------------------------------------------------- 500 // ----------------------------------------------------------
465 // 0 Recently closed header (disabled) 501 // 0 History
466 // 1 <separator> 502 // 1 <separator>
467 // 2 <section header for 1st session> 503 // 2 Recently closed header (disabled)
468 // 3 <the only tab of the only window of session 3> 504 // 3 <separator>
469 // 4 <separator> 505 // 4 <section header for 1st session>
470 // 5 <section header for 2nd session> 506 // 5 <the only tab of the only window of session 3>
471 // 6 <the only tab of the only window of session 2> 507 // 6 <separator>
472 // 7 <separator> 508 // 7 <section header for 2nd session>
473 // 8 <section header for 3rd session> 509 // 8 <the only tab of the only window of session 2>
474 // 9 <the only tab of the only window of session 1> 510 // 9 <separator>
475 // 10 <separator> 511 // 10 <section header for 3rd session>
476 // 11 More... 512 // 11 <the only tab of the only window of session 1>
477 513
478 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate()); 514 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate());
479 int num_items = model.GetItemCount(); 515 int num_items = model.GetItemCount();
480 EXPECT_EQ(12, num_items); 516 EXPECT_EQ(12, num_items);
481 517
482 std::vector<base::string16> tab_titles = 518 std::vector<base::string16> tab_titles =
483 recent_tabs_builder.GetTabTitlesSortedByRecency(); 519 recent_tabs_builder.GetTabTitlesSortedByRecency();
484 EXPECT_EQ(tab_titles[0], model.GetLabelAt(3)); 520 EXPECT_EQ(tab_titles[0], model.GetLabelAt(5));
485 EXPECT_EQ(tab_titles[1], model.GetLabelAt(6)); 521 EXPECT_EQ(tab_titles[1], model.GetLabelAt(8));
486 EXPECT_EQ(tab_titles[2], model.GetLabelAt(9)); 522 EXPECT_EQ(tab_titles[2], model.GetLabelAt(11));
487 } 523 }
488 524
489 TEST_F(RecentTabsSubMenuModelTest, MaxTabsPerSessionAndRecency) { 525 TEST_F(RecentTabsSubMenuModelTest, MaxTabsPerSessionAndRecency) {
490 // Create a session: 2 windows with 5 tabs each. 526 // Create a session: 2 windows with 5 tabs each.
491 RecentTabsBuilderTestHelper recent_tabs_builder; 527 RecentTabsBuilderTestHelper recent_tabs_builder;
492 recent_tabs_builder.AddSession(); 528 recent_tabs_builder.AddSession();
493 for (int w = 0; w < 2; ++w) { 529 for (int w = 0; w < 2; ++w) {
494 recent_tabs_builder.AddWindow(0); 530 recent_tabs_builder.AddWindow(0);
495 for (int t = 0; t < 5; ++t) 531 for (int t = 0; t < 5; ++t)
496 recent_tabs_builder.AddTab(0, w); 532 recent_tabs_builder.AddTab(0, w);
497 } 533 }
498 RegisterRecentTabs(&recent_tabs_builder); 534 RegisterRecentTabs(&recent_tabs_builder);
499 535
500 // Verify that data is populated correctly in RecentTabsSubMenuModel. 536 // Verify that data is populated correctly in RecentTabsSubMenuModel.
501 // Expected menu: 537 // Expected menu:
502 // - max tabs per session is 4, so only 4 most-recent tabs will show, 538 // - max tabs per session is 4, so only 4 most-recent tabs will show,
503 // independent of which window they came from. 539 // independent of which window they came from.
504 // Menu index Menu items 540 // Menu index Menu items
505 // --------------------------------------------- 541 // ---------------------------------------------
506 // 0 Recently closed header (disabled) 542 // 0 History
507 // 1 <separator> 543 // 1 <separator>
508 // 2 <section header for session> 544 // 2 Recently closed header (disabled)
509 // 3-6 <4 most-recent tabs of session> 545 // 3 <separator>
510 // 7 <separator> 546 // 4 <section header for session>
511 // 8 More... 547 // 5-8 <4 most-recent tabs of session>
512 548
513 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate()); 549 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate());
514 int num_items = model.GetItemCount(); 550 int num_items = model.GetItemCount();
515 EXPECT_EQ(9, num_items); 551 EXPECT_EQ(9, num_items);
516 552
517 std::vector<base::string16> tab_titles = 553 std::vector<base::string16> tab_titles =
518 recent_tabs_builder.GetTabTitlesSortedByRecency(); 554 recent_tabs_builder.GetTabTitlesSortedByRecency();
519 for (int i = 0; i < 4; ++i) 555 for (int i = 0; i < 4; ++i)
520 EXPECT_EQ(tab_titles[i], model.GetLabelAt(i + 3)); 556 EXPECT_EQ(tab_titles[i], model.GetLabelAt(i + 5));
521 } 557 }
522 558
523 TEST_F(RecentTabsSubMenuModelTest, MaxWidth) { 559 TEST_F(RecentTabsSubMenuModelTest, MaxWidth) {
524 // Create 1 session with 1 window and 1 tab. 560 // Create 1 session with 1 window and 1 tab.
525 RecentTabsBuilderTestHelper recent_tabs_builder; 561 RecentTabsBuilderTestHelper recent_tabs_builder;
526 recent_tabs_builder.AddSession(); 562 recent_tabs_builder.AddSession();
527 recent_tabs_builder.AddWindow(0); 563 recent_tabs_builder.AddWindow(0);
528 recent_tabs_builder.AddTab(0, 0); 564 recent_tabs_builder.AddTab(0, 0);
529 RegisterRecentTabs(&recent_tabs_builder); 565 RegisterRecentTabs(&recent_tabs_builder);
530 566
531 // Menu index Menu items 567 // Menu index Menu items
532 // ---------------------------------------------------------- 568 // ----------------------------------------------------------
533 // 0 Recently closed header (disabled) 569 // 0 History
534 // 1 <separator> 570 // 1 <separator>
535 // 2 <section header for 1st session> 571 // 2 Recently closed header (disabled)
536 // 3 <the only tab of the only window of session 1> 572 // 3 <separator>
537 // 4 <separator> 573 // 4 <section header for 1st session>
538 // 5 More... 574 // 5 <the only tab of the only window of session 1>
539 575
540 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate()); 576 TestRecentTabsSubMenuModel model(NULL, browser(), GetOpenTabsDelegate());
541 EXPECT_EQ(6, model.GetItemCount()); 577 EXPECT_EQ(6, model.GetItemCount());
542 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0)); 578 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(2));
543 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1));
544 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(2));
545 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(3)); 579 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(3));
580 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(4));
581 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(5));
546 } 582 }
547 583
548 TEST_F(RecentTabsSubMenuModelTest, MaxWidthNoDevices) { 584 TEST_F(RecentTabsSubMenuModelTest, MaxWidthNoDevices) {
549 // Expected menu: 585 // Expected menu:
550 // Menu index Menu items 586 // Menu index Menu items
551 // -------------------------------------------- 587 // --------------------------------------------
552 // 0 Recently closed heaer (disabled) 588 // 0 History
553 // 1 <separator> 589 // 1 <separator>
554 // 2 No tabs from other Devices 590 // 2 Recently closed heaer (disabled)
591 // 3 <separator>
592 // 4 No tabs from other Devices
555 593
556 TestRecentTabsSubMenuModel model(NULL, browser(), NULL); 594 TestRecentTabsSubMenuModel model(NULL, browser(), NULL);
557 EXPECT_EQ(3, model.GetItemCount()); 595 EXPECT_EQ(5, model.GetItemCount());
558 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(0));
559 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(1));
560 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(2)); 596 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(2));
597 EXPECT_NE(-1, model.GetMaxWidthForItemAtIndex(3));
598 EXPECT_EQ(-1, model.GetMaxWidthForItemAtIndex(4));
561 } 599 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc ('k') | chrome/browser/ui/toolbar/wrench_menu_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698