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

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

Powered by Google App Engine
This is Rietveld 408576698