Chromium Code Reviews

Side by Side Diff: chrome/browser/ui/browser_navigator_browsertest.cc

Issue 4694008: Make pink's TabContentsWrapper change compile on Windows.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/browser_list.h" 5 #include "chrome/browser/browser_list.h"
6 #include "chrome/browser/browser_window.h" 6 #include "chrome/browser/browser_window.h"
7 #include "chrome/browser/profile.h" 7 #include "chrome/browser/profile.h"
8 #include "chrome/browser/tab_contents/tab_contents.h" 8 #include "chrome/browser/tab_contents/tab_contents.h"
9 #include "chrome/browser/tab_contents/tab_contents_view.h" 9 #include "chrome/browser/tab_contents/tab_contents_view.h"
10 #include "chrome/browser/tab_contents_wrapper.h"
10 #include "chrome/browser/tabs/tab_strip_model.h" 11 #include "chrome/browser/tabs/tab_strip_model.h"
11 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/browser_navigator.h" 13 #include "chrome/browser/ui/browser_navigator.h"
13 #include "chrome/test/in_process_browser_test.h" 14 #include "chrome/test/in_process_browser_test.h"
14 #include "chrome/test/ui_test_utils.h" 15 #include "chrome/test/ui_test_utils.h"
15 #include "ipc/ipc_message.h" 16 #include "ipc/ipc_message.h"
16 17
17 namespace { 18 namespace {
18 19
19 class BrowserNavigatorTest : public InProcessBrowserTest { 20 class BrowserNavigatorTest : public InProcessBrowserTest {
(...skipping 11 matching lines...)
31 params.show_window = true; 32 params.show_window = true;
32 return params; 33 return params;
33 } 34 }
34 35
35 Browser* CreateEmptyBrowserForType(Browser::Type type, Profile* profile) { 36 Browser* CreateEmptyBrowserForType(Browser::Type type, Profile* profile) {
36 Browser* browser = Browser::CreateForType(type, profile); 37 Browser* browser = Browser::CreateForType(type, profile);
37 browser->AddBlankTab(true); 38 browser->AddBlankTab(true);
38 return browser; 39 return browser;
39 } 40 }
40 41
41 TabContents* CreateTabContents() { 42 TabContentsWrapper* CreateTabContents() {
42 return new TabContents(browser()->profile(), 43 return Browser::TabContentsFactory(
43 NULL, 44 browser()->profile(),
44 MSG_ROUTING_NONE, 45 NULL,
45 browser()->GetSelectedTabContents(), 46 MSG_ROUTING_NONE,
46 NULL); 47 browser()->GetSelectedTabContents(),
48 NULL);
47 } 49 }
48 50
49 void RunSuppressTest(WindowOpenDisposition disposition) { 51 void RunSuppressTest(WindowOpenDisposition disposition) {
50 GURL old_url = browser()->GetSelectedTabContents()->GetURL(); 52 GURL old_url = browser()->GetSelectedTabContents()->GetURL();
51 browser::NavigateParams p(MakeNavigateParams()); 53 browser::NavigateParams p(MakeNavigateParams());
52 p.disposition = disposition; 54 p.disposition = disposition;
53 browser::Navigate(&p); 55 browser::Navigate(&p);
54 56
55 // Nothing should have happened as a result of Navigate(); 57 // Nothing should have happened as a result of Navigate();
56 EXPECT_EQ(1, browser()->tab_count()); 58 EXPECT_EQ(1, browser()->tab_count());
(...skipping 60 matching lines...)
117 119
118 // This test verifies that when a navigation results in a foreground tab, the 120 // This test verifies that when a navigation results in a foreground tab, the
119 // tab count of the Browser increases and the selected tab shifts to the new 121 // tab count of the Browser increases and the selected tab shifts to the new
120 // foreground tab. 122 // foreground tab.
121 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewForegroundTab) { 123 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewForegroundTab) {
122 TabContents* old_contents = browser()->GetSelectedTabContents(); 124 TabContents* old_contents = browser()->GetSelectedTabContents();
123 browser::NavigateParams p(MakeNavigateParams()); 125 browser::NavigateParams p(MakeNavigateParams());
124 p.disposition = NEW_FOREGROUND_TAB; 126 p.disposition = NEW_FOREGROUND_TAB;
125 browser::Navigate(&p); 127 browser::Navigate(&p);
126 EXPECT_NE(old_contents, browser()->GetSelectedTabContents()); 128 EXPECT_NE(old_contents, browser()->GetSelectedTabContents());
127 EXPECT_EQ(browser()->GetSelectedTabContents(), p.target_contents); 129 EXPECT_EQ(browser()->GetSelectedTabContentsWrapper(), p.target_contents);
128 EXPECT_EQ(2, browser()->tab_count()); 130 EXPECT_EQ(2, browser()->tab_count());
129 } 131 }
130 132
131 // This test verifies that when a navigation results in a background tab, the 133 // This test verifies that when a navigation results in a background tab, the
132 // tab count of the Browser increases but the selected tab remains the same. 134 // tab count of the Browser increases but the selected tab remains the same.
133 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewBackgroundTab) { 135 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewBackgroundTab) {
134 TabContents* old_contents = browser()->GetSelectedTabContents(); 136 TabContents* old_contents = browser()->GetSelectedTabContents();
135 browser::NavigateParams p(MakeNavigateParams()); 137 browser::NavigateParams p(MakeNavigateParams());
136 p.disposition = NEW_BACKGROUND_TAB; 138 p.disposition = NEW_BACKGROUND_TAB;
137 browser::Navigate(&p); 139 browser::Navigate(&p);
(...skipping 195 matching lines...)
333 // This tests adding a foreground tab with a predefined TabContents. 335 // This tests adding a foreground tab with a predefined TabContents.
334 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, TargetContents_ForegroundTab) { 336 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, TargetContents_ForegroundTab) {
335 browser::NavigateParams p(MakeNavigateParams()); 337 browser::NavigateParams p(MakeNavigateParams());
336 p.disposition = NEW_FOREGROUND_TAB; 338 p.disposition = NEW_FOREGROUND_TAB;
337 p.target_contents = CreateTabContents(); 339 p.target_contents = CreateTabContents();
338 browser::Navigate(&p); 340 browser::Navigate(&p);
339 341
340 // Navigate() should have opened the contents in a new foreground in the 342 // Navigate() should have opened the contents in a new foreground in the
341 // current Browser. 343 // current Browser.
342 EXPECT_EQ(browser(), p.browser); 344 EXPECT_EQ(browser(), p.browser);
343 EXPECT_EQ(browser()->GetSelectedTabContents(), p.target_contents); 345 EXPECT_EQ(browser()->GetSelectedTabContentsWrapper(), p.target_contents);
344 346
345 // We should have one window, with two tabs. 347 // We should have one window, with two tabs.
346 EXPECT_EQ(1u, BrowserList::size()); 348 EXPECT_EQ(1u, BrowserList::size());
347 EXPECT_EQ(2, browser()->tab_count()); 349 EXPECT_EQ(2, browser()->tab_count());
348 } 350 }
349 351
350 #if defined(OS_WIN) 352 #if defined(OS_WIN)
351 // This tests adding a popup with a predefined TabContents. 353 // This tests adding a popup with a predefined TabContents.
352 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, TargetContents_Popup) { 354 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, TargetContents_Popup) {
353 browser::NavigateParams p(MakeNavigateParams()); 355 browser::NavigateParams p(MakeNavigateParams());
(...skipping 14 matching lines...)
368 // p.window_bounds.origin(), but its size will not. We need to match 370 // p.window_bounds.origin(), but its size will not. We need to match
369 // the size against the selected tab's view's container size. 371 // the size against the selected tab's view's container size.
370 // Only Windows positions the window according to |p.window_bounds.origin()| - 372 // Only Windows positions the window according to |p.window_bounds.origin()| -
371 // on Mac the window is offset from the opener and on Linux it always opens 373 // on Mac the window is offset from the opener and on Linux it always opens
372 // at 0,0. 374 // at 0,0.
373 EXPECT_EQ(p.window_bounds.origin(), 375 EXPECT_EQ(p.window_bounds.origin(),
374 p.browser->window()->GetRestoredBounds().origin()); 376 p.browser->window()->GetRestoredBounds().origin());
375 // All platforms should respect size however provided width > 400 (Mac has a 377 // All platforms should respect size however provided width > 400 (Mac has a
376 // minimum window width of 400). 378 // minimum window width of 400).
377 EXPECT_EQ(p.window_bounds.size(), 379 EXPECT_EQ(p.window_bounds.size(),
378 p.target_contents->view()->GetContainerSize()); 380 p.target_contents->tab_contents()->view()->GetContainerSize());
379 381
380 // We should have two windows, the new popup and the browser() provided by the 382 // We should have two windows, the new popup and the browser() provided by the
381 // framework. 383 // framework.
382 EXPECT_EQ(2u, BrowserList::size()); 384 EXPECT_EQ(2u, BrowserList::size());
383 EXPECT_EQ(1, browser()->tab_count()); 385 EXPECT_EQ(1, browser()->tab_count());
384 EXPECT_EQ(1, p.browser->tab_count()); 386 EXPECT_EQ(1, p.browser->tab_count());
385 } 387 }
386 #endif 388 #endif
387 389
388 // This tests adding a tab at a specific index. 390 // This tests adding a tab at a specific index.
389 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Tabstrip_InsertAtIndex) { 391 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Tabstrip_InsertAtIndex) {
390 // This is not meant to be a comprehensive test of whether or not the tab 392 // This is not meant to be a comprehensive test of whether or not the tab
391 // implementation of the browser observes the insertion index. That is 393 // implementation of the browser observes the insertion index. That is
392 // covered by the unit tests for TabStripModel. This merely verifies that 394 // covered by the unit tests for TabStripModel. This merely verifies that
393 // insertion index preference is reflected in common cases. 395 // insertion index preference is reflected in common cases.
394 browser::NavigateParams p(MakeNavigateParams()); 396 browser::NavigateParams p(MakeNavigateParams());
395 p.disposition = NEW_FOREGROUND_TAB; 397 p.disposition = NEW_FOREGROUND_TAB;
396 p.tabstrip_index = 0; 398 p.tabstrip_index = 0;
397 p.tabstrip_add_types = TabStripModel::ADD_FORCE_INDEX; 399 p.tabstrip_add_types = TabStripModel::ADD_FORCE_INDEX;
398 browser::Navigate(&p); 400 browser::Navigate(&p);
399 401
400 // Navigate() should have inserted a new tab at slot 0 in the tabstrip. 402 // Navigate() should have inserted a new tab at slot 0 in the tabstrip.
401 EXPECT_EQ(browser(), p.browser); 403 EXPECT_EQ(browser(), p.browser);
402 EXPECT_EQ(0, browser()->tabstrip_model()->GetIndexOfTabContents( 404 EXPECT_EQ(0, browser()->tabstrip_model()->GetIndexOfTabContents(
403 static_cast<const TabContents*>(p.target_contents))); 405 static_cast<const TabContentsWrapper*>(p.target_contents)));
404 406
405 // We should have one window - the browser() provided by the framework. 407 // We should have one window - the browser() provided by the framework.
406 EXPECT_EQ(1u, BrowserList::size()); 408 EXPECT_EQ(1u, BrowserList::size());
407 EXPECT_EQ(2, browser()->tab_count()); 409 EXPECT_EQ(2, browser()->tab_count());
408 } 410 }
409 411
410 // This test verifies that constructing params with a NULL browser has 412 // This test verifies that constructing params with a NULL browser has
411 // the same result as navigating to a new foreground tab in the (only) 413 // the same result as navigating to a new foreground tab in the (only)
412 // active browser. Tests are the same as for Disposition_NewForegroundTab. 414 // active browser. Tests are the same as for Disposition_NewForegroundTab.
413 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_NewForegroundTab) { 415 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_NewForegroundTab) {
414 TabContents* old_contents = browser()->GetSelectedTabContents(); 416 TabContents* old_contents = browser()->GetSelectedTabContents();
415 // Navigate with a NULL browser. 417 // Navigate with a NULL browser.
416 browser::NavigateParams p(MakeNavigateParams(NULL)); 418 browser::NavigateParams p(MakeNavigateParams(NULL));
417 p.disposition = NEW_FOREGROUND_TAB; 419 p.disposition = NEW_FOREGROUND_TAB;
418 p.profile = browser()->profile(); 420 p.profile = browser()->profile();
419 browser::Navigate(&p); 421 browser::Navigate(&p);
420 422
421 // Navigate() should have found browser() and create a new tab. 423 // Navigate() should have found browser() and create a new tab.
422 EXPECT_EQ(browser(), p.browser); 424 EXPECT_EQ(browser(), p.browser);
423 EXPECT_NE(old_contents, browser()->GetSelectedTabContents()); 425 EXPECT_NE(old_contents, browser()->GetSelectedTabContents());
424 EXPECT_EQ(browser()->GetSelectedTabContents(), p.target_contents); 426 EXPECT_EQ(browser()->GetSelectedTabContentsWrapper(), p.target_contents);
425 EXPECT_EQ(2, browser()->tab_count()); 427 EXPECT_EQ(2, browser()->tab_count());
426 } 428 }
427 429
428 // This test verifies that constructing params with a NULL browser and 430 // This test verifies that constructing params with a NULL browser and
429 // a specific profile matches the specified profile. 431 // a specific profile matches the specified profile.
430 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_MatchProfile) { 432 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_MatchProfile) {
431 // Create a new browser with using the incognito profile. 433 // Create a new browser with using the incognito profile.
432 Browser* incognito = 434 Browser* incognito =
433 Browser::Create(browser()->profile()->GetOffTheRecordProfile()); 435 Browser::Create(browser()->profile()->GetOffTheRecordProfile());
434 436
435 // Navigate with a NULL browser and the incognito profile. 437 // Navigate with a NULL browser and the incognito profile.
436 browser::NavigateParams p(MakeNavigateParams(NULL)); 438 browser::NavigateParams p(MakeNavigateParams(NULL));
437 p.disposition = NEW_FOREGROUND_TAB; 439 p.disposition = NEW_FOREGROUND_TAB;
438 p.profile = incognito->profile(); 440 p.profile = incognito->profile();
439 browser::Navigate(&p); 441 browser::Navigate(&p);
440 442
441 // Navigate() should have found incognito, not browser(). 443 // Navigate() should have found incognito, not browser().
442 EXPECT_EQ(incognito, p.browser); 444 EXPECT_EQ(incognito, p.browser);
443 EXPECT_EQ(incognito->GetSelectedTabContents(), p.target_contents); 445 EXPECT_EQ(incognito->GetSelectedTabContentsWrapper(), p.target_contents);
444 EXPECT_EQ(1, incognito->tab_count()); 446 EXPECT_EQ(1, incognito->tab_count());
445 } 447 }
446 448
447 // This test verifies that constructing params with a NULL browser and 449 // This test verifies that constructing params with a NULL browser and
448 // disposition = NEW_WINDOW always opens exactly one new window. 450 // disposition = NEW_WINDOW always opens exactly one new window.
449 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_NewWindow) { 451 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, NullBrowser_NewWindow) {
450 browser::NavigateParams p(MakeNavigateParams(NULL)); 452 browser::NavigateParams p(MakeNavigateParams(NULL));
451 p.disposition = NEW_WINDOW; 453 p.disposition = NEW_WINDOW;
452 p.profile = browser()->profile(); 454 p.profile = browser()->profile();
453 browser::Navigate(&p); 455 browser::Navigate(&p);
454 456
455 // Navigate() should have created a new browser. 457 // Navigate() should have created a new browser.
456 EXPECT_NE(browser(), p.browser); 458 EXPECT_NE(browser(), p.browser);
457 EXPECT_EQ(Browser::TYPE_NORMAL, p.browser->type()); 459 EXPECT_EQ(Browser::TYPE_NORMAL, p.browser->type());
458 460
459 // We should now have two windows, the browser() provided by the framework and 461 // We should now have two windows, the browser() provided by the framework and
460 // the new normal window. 462 // the new normal window.
461 EXPECT_EQ(2u, BrowserList::size()); 463 EXPECT_EQ(2u, BrowserList::size());
462 EXPECT_EQ(1, browser()->tab_count()); 464 EXPECT_EQ(1, browser()->tab_count());
463 EXPECT_EQ(1, p.browser->tab_count()); 465 EXPECT_EQ(1, p.browser->tab_count());
464 } 466 }
465 467
466 468
467 } // namespace 469 } // namespace
OLDNEW

Powered by Google App Engine