| Index: chrome/browser/tabs/tab_strip_model_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/tabs/tab_strip_model_unittest.cc (revision 66453)
|
| +++ chrome/browser/tabs/tab_strip_model_unittest.cc (working copy)
|
| @@ -13,6 +13,7 @@
|
| #include "base/string_number_conversions.h"
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/browser.h"
|
| #include "chrome/browser/defaults.h"
|
| #include "chrome/browser/dom_ui/new_tab_ui.h"
|
| #include "chrome/browser/profile.h"
|
| @@ -21,6 +22,7 @@
|
| #include "chrome/browser/tab_contents/navigation_controller.h"
|
| #include "chrome/browser/tab_contents/navigation_entry.h"
|
| #include "chrome/browser/tab_contents/tab_contents.h"
|
| +#include "chrome/browser/tab_contents_wrapper.h"
|
| #include "chrome/browser/tabs/tab_strip_model.h"
|
| #include "chrome/browser/tabs/tab_strip_model_delegate.h"
|
| #include "chrome/browser/tabs/tab_strip_model_order_controller.h"
|
| @@ -41,26 +43,26 @@
|
| // Class used to delete a TabContents when another TabContents is destroyed.
|
| class DeleteTabContentsOnDestroyedObserver : public NotificationObserver {
|
| public:
|
| - DeleteTabContentsOnDestroyedObserver(TabContents* source,
|
| - TabContents* tab_to_delete)
|
| + DeleteTabContentsOnDestroyedObserver(TabContentsWrapper* source,
|
| + TabContentsWrapper* tab_to_delete)
|
| : source_(source),
|
| tab_to_delete_(tab_to_delete) {
|
| registrar_.Add(this,
|
| NotificationType::TAB_CONTENTS_DESTROYED,
|
| - Source<TabContents>(source));
|
| + Source<TabContents>(source->tab_contents()));
|
| }
|
|
|
| virtual void Observe(NotificationType type,
|
| const NotificationSource& source,
|
| const NotificationDetails& details) {
|
| - TabContents* tab_to_delete = tab_to_delete_;
|
| + TabContentsWrapper* tab_to_delete = tab_to_delete_;
|
| tab_to_delete_ = NULL;
|
| delete tab_to_delete;
|
| }
|
|
|
| private:
|
| - TabContents* source_;
|
| - TabContents* tab_to_delete_;
|
| + TabContentsWrapper* source_;
|
| + TabContentsWrapper* tab_to_delete_;
|
| NotificationRegistrar registrar_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DeleteTabContentsOnDestroyedObserver);
|
| @@ -70,7 +72,7 @@
|
|
|
| class TabStripDummyDelegate : public TabStripModelDelegate {
|
| public:
|
| - explicit TabStripDummyDelegate(TabContents* dummy)
|
| + explicit TabStripDummyDelegate(TabContentsWrapper* dummy)
|
| : dummy_contents_(dummy), can_close_(true), run_unload_(false) {}
|
| virtual ~TabStripDummyDelegate() {}
|
|
|
| @@ -78,22 +80,24 @@
|
| void set_run_unload_listener(bool value) { run_unload_ = value; }
|
|
|
| // Overridden from TabStripModelDelegate:
|
| - virtual TabContents* AddBlankTab(bool foreground) { return NULL; }
|
| - virtual TabContents* AddBlankTabAt(int index, bool foreground) {
|
| + virtual TabContentsWrapper* AddBlankTab(bool foreground) {
|
| return NULL;
|
| }
|
| - virtual Browser* CreateNewStripWithContents(TabContents* contents,
|
| + virtual TabContentsWrapper* AddBlankTabAt(int index, bool foreground) {
|
| + return NULL;
|
| + }
|
| + virtual Browser* CreateNewStripWithContents(TabContentsWrapper* contents,
|
| const gfx::Rect& window_bounds,
|
| const DockInfo& dock_info,
|
| bool maximize) {
|
| return NULL;
|
| }
|
| - virtual void ContinueDraggingDetachedTab(TabContents* contents,
|
| + virtual void ContinueDraggingDetachedTab(TabContentsWrapper* contents,
|
| const gfx::Rect& window_bounds,
|
| const gfx::Rect& tab_bounds) {
|
| }
|
| virtual int GetDragActions() const { return 0; }
|
| - virtual TabContents* CreateTabContentsForURL(
|
| + virtual TabContentsWrapper* CreateTabContentsForURL(
|
| const GURL& url,
|
| const GURL& referrer,
|
| Profile* profile,
|
| @@ -107,8 +111,8 @@
|
| virtual bool CanDuplicateContentsAt(int index) { return false; }
|
| virtual void DuplicateContentsAt(int index) {}
|
| virtual void CloseFrameAfterDragSession() {}
|
| - virtual void CreateHistoricalTab(TabContents* contents) {}
|
| - virtual bool RunUnloadListenerBeforeClosing(TabContents* contents) {
|
| + virtual void CreateHistoricalTab(TabContentsWrapper* contents) {}
|
| + virtual bool RunUnloadListenerBeforeClosing(TabContentsWrapper* contents) {
|
| return run_unload_;
|
| }
|
| virtual bool CanRestoreTab() { return false; }
|
| @@ -124,7 +128,7 @@
|
| private:
|
| // A dummy TabContents we give to callers that expect us to actually build a
|
| // Destinations tab for them.
|
| - TabContents* dummy_contents_;
|
| + TabContentsWrapper* dummy_contents_;
|
|
|
| // Whether tabs can be closed.
|
| bool can_close_;
|
| @@ -137,15 +141,16 @@
|
|
|
| class TabStripModelTest : public RenderViewHostTestHarness {
|
| public:
|
| - TabContents* CreateTabContents() {
|
| - return new TabContents(profile(), NULL, 0, NULL, NULL);
|
| + TabContentsWrapper* CreateTabContents() {
|
| + return Browser::TabContentsFactory(profile(), NULL, 0, NULL, NULL);
|
| }
|
|
|
| - TabContents* CreateTabContentsWithSharedRPH(TabContents* tab_contents) {
|
| - TabContents* retval = new TabContents(profile(),
|
| + TabContentsWrapper* CreateTabContentsWithSharedRPH(
|
| + TabContents* tab_contents) {
|
| + TabContentsWrapper* retval = Browser::TabContentsFactory(profile(),
|
| tab_contents->render_view_host()->site_instance(), MSG_ROUTING_NONE,
|
| NULL, NULL);
|
| - EXPECT_EQ(retval->GetRenderProcessHost(),
|
| + EXPECT_EQ(retval->tab_contents()->GetRenderProcessHost(),
|
| tab_contents->GetRenderProcessHost());
|
| return retval;
|
| }
|
| @@ -188,7 +193,8 @@
|
| if (i > 0)
|
| actual += " ";
|
|
|
| - actual += base::IntToString(GetID(model.GetTabContentsAt(i)));
|
| + actual +=
|
| + base::IntToString(GetID(model.GetTabContentsAt(i)->tab_contents()));
|
|
|
| if (model.IsAppTab(i))
|
| actual += "a";
|
| @@ -248,7 +254,7 @@
|
| };
|
|
|
| struct State {
|
| - State(TabContents* a_dst_contents,
|
| + State(TabContentsWrapper* a_dst_contents,
|
| int a_dst_index,
|
| TabStripModelObserverAction a_action)
|
| : src_contents(NULL),
|
| @@ -260,8 +266,8 @@
|
| action(a_action) {
|
| }
|
|
|
| - TabContents* src_contents;
|
| - TabContents* dst_contents;
|
| + TabContentsWrapper* src_contents;
|
| + TabContentsWrapper* dst_contents;
|
| int src_index;
|
| int dst_index;
|
| bool user_gesture;
|
| @@ -297,7 +303,7 @@
|
| }
|
|
|
| // TabStripModelObserver implementation:
|
| - virtual void TabInsertedAt(TabContents* contents,
|
| + virtual void TabInsertedAt(TabContentsWrapper* contents,
|
| int index,
|
| bool foreground) {
|
| empty_ = false;
|
| @@ -305,8 +311,8 @@
|
| s->foreground = foreground;
|
| states_.push_back(s);
|
| }
|
| - virtual void TabSelectedAt(TabContents* old_contents,
|
| - TabContents* new_contents,
|
| + virtual void TabSelectedAt(TabContentsWrapper* old_contents,
|
| + TabContentsWrapper* new_contents,
|
| int index,
|
| bool user_gesture) {
|
| State* s = new State(new_contents, index, SELECT);
|
| @@ -315,31 +321,31 @@
|
| states_.push_back(s);
|
| }
|
| virtual void TabMoved(
|
| - TabContents* contents, int from_index, int to_index) {
|
| + TabContentsWrapper* contents, int from_index, int to_index) {
|
| State* s = new State(contents, to_index, MOVE);
|
| s->src_index = from_index;
|
| states_.push_back(s);
|
| }
|
|
|
| virtual void TabClosingAt(TabStripModel* tab_strip_model,
|
| - TabContents* contents,
|
| + TabContentsWrapper* contents,
|
| int index) {
|
| states_.push_back(new State(contents, index, CLOSE));
|
| }
|
| - virtual void TabDetachedAt(TabContents* contents, int index) {
|
| + virtual void TabDetachedAt(TabContentsWrapper* contents, int index) {
|
| states_.push_back(new State(contents, index, DETACH));
|
| }
|
| - virtual void TabChangedAt(TabContents* contents, int index,
|
| + virtual void TabChangedAt(TabContentsWrapper* contents, int index,
|
| TabChangeType change_type) {
|
| states_.push_back(new State(contents, index, CHANGE));
|
| }
|
| - virtual void TabReplacedAt(TabContents* old_contents,
|
| - TabContents* new_contents, int index) {
|
| + virtual void TabReplacedAt(TabContentsWrapper* old_contents,
|
| + TabContentsWrapper* new_contents, int index) {
|
| State* s = new State(new_contents, index, REPLACED);
|
| s ->src_contents = old_contents;
|
| states_.push_back(s);
|
| }
|
| - virtual void TabPinnedStateChanged(TabContents* contents, int index) {
|
| + virtual void TabPinnedStateChanged(TabContentsWrapper* contents, int index) {
|
| states_.push_back(new State(contents, index, PINNED));
|
| }
|
| virtual void TabStripEmpty() {
|
| @@ -371,7 +377,7 @@
|
|
|
| typedef MockTabStripModelObserver::State State;
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
|
|
| // Note! The ordering of these tests is important, each subsequent test
|
| // builds on the state established in the previous. This is important if you
|
| @@ -394,7 +400,7 @@
|
| }
|
|
|
| // Test InsertTabContentsAt, foreground tab.
|
| - TabContents* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| {
|
| tabstrip.InsertTabContentsAt(1, contents2, TabStripModel::ADD_SELECTED);
|
|
|
| @@ -410,7 +416,7 @@
|
| }
|
|
|
| // Test InsertTabContentsAt, background tab.
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
| {
|
| tabstrip.InsertTabContentsAt(2, contents3, TabStripModel::ADD_NONE);
|
|
|
| @@ -436,7 +442,7 @@
|
| // Test DetachTabContentsAt
|
| {
|
| // Detach
|
| - TabContents* detached = tabstrip.DetachTabContentsAt(2);
|
| + TabContentsWrapper* detached = tabstrip.DetachTabContentsAt(2);
|
| // ... and append again because we want this for later.
|
| tabstrip.AppendTabContents(detached, true);
|
| EXPECT_EQ(4, observer.GetStateCount());
|
| @@ -566,14 +572,14 @@
|
| // as the first tab in the strip and then we create 5 other tabs in the
|
| // background with opener_contents set as their opener.
|
|
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| NavigationController* opener = &opener_contents->controller();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| - TabContents* contents4 = CreateTabContents();
|
| - TabContents* contents5 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents4 = CreateTabContents();
|
| + TabContentsWrapper* contents5 = CreateTabContents();
|
|
|
| // We use |InsertTabContentsAt| here instead of AppendTabContents so that
|
| // openership relationships are preserved.
|
| @@ -619,15 +625,16 @@
|
| EXPECT_TRUE(tabstrip.empty());
|
| }
|
|
|
| -static int GetInsertionIndex(TabStripModel* tabstrip, TabContents* contents) {
|
| +static int GetInsertionIndex(TabStripModel* tabstrip,
|
| + TabContentsWrapper* contents) {
|
| return tabstrip->order_controller()->DetermineInsertionIndex(
|
| contents, PageTransition::LINK, false);
|
| }
|
|
|
| static void InsertTabContentses(TabStripModel* tabstrip,
|
| - TabContents* contents1,
|
| - TabContents* contents2,
|
| - TabContents* contents3) {
|
| + TabContentsWrapper* contents1,
|
| + TabContentsWrapper* contents2,
|
| + TabContentsWrapper* contents3) {
|
| tabstrip->InsertTabContentsAt(GetInsertionIndex(tabstrip, contents1),
|
| contents1, TabStripModel::ADD_INHERIT_GROUP);
|
| tabstrip->InsertTabContentsAt(GetInsertionIndex(tabstrip, contents2),
|
| @@ -642,12 +649,12 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| // Test LTR
|
| InsertTabContentses(&tabstrip, contents1, contents2, contents3);
|
| @@ -666,9 +673,9 @@
|
| tabstrip.SetInsertionPolicy(TabStripModel::INSERT_BEFORE);
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| InsertTabContentses(&tabstrip, contents1, contents2, contents3);
|
|
|
| @@ -687,12 +694,12 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| tabstrip.SetInsertionPolicy(TabStripModel::INSERT_BEFORE);
|
| EXPECT_TRUE(tabstrip.empty());
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| InsertTabContentses(&tabstrip, contents1, contents2, contents3);
|
|
|
| @@ -716,18 +723,18 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| NavigationController* opener = &opener_contents->controller();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
|
|
| // Open some other random unrelated tab in the background to monkey with our
|
| // insertion index.
|
| - TabContents* other_contents = CreateTabContents();
|
| + TabContentsWrapper* other_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(other_contents, false);
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| // Start by testing LTR
|
| InsertTabContentses(&tabstrip, contents1, contents2, contents3);
|
| @@ -744,7 +751,7 @@
|
|
|
| // Now open a foreground tab from a link. It should be opened adjacent to the
|
| // opener tab.
|
| - TabContents* fg_link_contents = CreateTabContents();
|
| + TabContentsWrapper* fg_link_contents = CreateTabContents();
|
| int insert_index = tabstrip.order_controller()->DetermineInsertionIndex(
|
| fg_link_contents, PageTransition::LINK, true);
|
| EXPECT_EQ(1, insert_index);
|
| @@ -759,7 +766,7 @@
|
| EXPECT_EQ(0, tabstrip.selected_index());
|
|
|
| // Now open a new empty tab. It should open at the end of the strip.
|
| - TabContents* fg_nonlink_contents = CreateTabContents();
|
| + TabContentsWrapper* fg_nonlink_contents = CreateTabContents();
|
| insert_index = tabstrip.order_controller()->DetermineInsertionIndex(
|
| fg_nonlink_contents, PageTransition::AUTO_BOOKMARK, true);
|
| EXPECT_EQ(tabstrip.count(), insert_index);
|
| @@ -798,12 +805,12 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| // Note that we use Detach instead of Close throughout this test to avoid
|
| // having to keep reconstructing these TabContentses.
|
| @@ -851,10 +858,10 @@
|
| EXPECT_EQ(0, tabstrip.selected_index());
|
| // Finally test that when a tab has no "siblings" that the opener is
|
| // selected.
|
| - TabContents* other_contents = CreateTabContents();
|
| + TabContentsWrapper* other_contents = CreateTabContents();
|
| tabstrip.InsertTabContentsAt(1, other_contents, TabStripModel::ADD_NONE);
|
| EXPECT_EQ(2, tabstrip.count());
|
| - TabContents* opened_contents = CreateTabContents();
|
| + TabContentsWrapper* opened_contents = CreateTabContents();
|
| tabstrip.InsertTabContentsAt(2, opened_contents,
|
| TabStripModel::ADD_SELECTED |
|
| TabStripModel::ADD_INHERIT_GROUP);
|
| @@ -875,12 +882,12 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* opener_contents = CreateTabContents();
|
| + TabContentsWrapper* opener_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(opener_contents, true);
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| InsertTabContentses(&tabstrip, contents1, contents2, contents3);
|
| EXPECT_EQ(0, tabstrip.selected_index());
|
| @@ -892,7 +899,7 @@
|
| EXPECT_EQ(1, tabstrip.count());
|
| EXPECT_EQ(opener_contents, tabstrip.GetSelectedTabContents());
|
|
|
| - TabContents* dummy_contents = CreateTabContents();
|
| + TabContentsWrapper* dummy_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(dummy_contents, false);
|
|
|
| contents1 = CreateTabContents();
|
| @@ -920,11 +927,11 @@
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| - TabContents* contents4 = CreateTabContents();
|
| - TabContents* contents5 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents4 = CreateTabContents();
|
| + TabContentsWrapper* contents5 = CreateTabContents();
|
|
|
| tabstrip.AppendTabContents(contents1, true);
|
| tabstrip.AppendTabContents(contents2, true);
|
| @@ -970,13 +977,13 @@
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| // Open the Home Page
|
| - TabContents* homepage_contents = CreateTabContents();
|
| + TabContentsWrapper* homepage_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| homepage_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open some other tab, by user typing.
|
| - TabContents* typed_page_contents = CreateTabContents();
|
| + TabContentsWrapper* typed_page_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| typed_page_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
| @@ -988,15 +995,15 @@
|
|
|
| // Open a bunch of tabs by simulating middle clicking on links on the home
|
| // page.
|
| - TabContents* middle_click_contents1 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents1 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents1, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* middle_click_contents2 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents2 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents2, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* middle_click_contents3 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents3 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents3, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| @@ -1039,13 +1046,13 @@
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| // Open the Home Page
|
| - TabContents* homepage_contents = CreateTabContents();
|
| + TabContentsWrapper* homepage_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| homepage_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open some other tab, by user typing.
|
| - TabContents* typed_page_contents = CreateTabContents();
|
| + TabContentsWrapper* typed_page_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| typed_page_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
| @@ -1056,7 +1063,7 @@
|
| tabstrip.SelectTabContentsAt(0, true);
|
|
|
| // Open a tab by simulating a left click on a link that opens in a new tab.
|
| - TabContents* left_click_contents = CreateTabContents();
|
| + TabContentsWrapper* left_click_contents = CreateTabContents();
|
| tabstrip.AddTabContents(left_click_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1089,13 +1096,13 @@
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| // Open the Home Page
|
| - TabContents* homepage_contents = CreateTabContents();
|
| + TabContentsWrapper* homepage_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| homepage_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open some other tab, by user typing.
|
| - TabContents* typed_page_contents = CreateTabContents();
|
| + TabContentsWrapper* typed_page_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| typed_page_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
| @@ -1106,7 +1113,7 @@
|
| tabstrip.SelectTabContentsAt(0, true);
|
|
|
| // Open a new blank tab in the foreground.
|
| - TabContents* new_blank_contents = CreateTabContents();
|
| + TabContentsWrapper* new_blank_contents = CreateTabContents();
|
| tabstrip.AddTabContents(new_blank_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1117,11 +1124,11 @@
|
| EXPECT_EQ(new_blank_contents, tabstrip.GetTabContentsAt(2));
|
|
|
| // Now open a couple more blank tabs in the background.
|
| - TabContents* background_blank_contents1 = CreateTabContents();
|
| + TabContentsWrapper* background_blank_contents1 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| background_blank_contents1, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* background_blank_contents2 = CreateTabContents();
|
| + TabContentsWrapper* background_blank_contents2 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| background_blank_contents2, -1, PageTransition::GENERATED,
|
| TabStripModel::ADD_NONE);
|
| @@ -1144,13 +1151,13 @@
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| // Open the Home Page
|
| - TabContents* homepage_contents = CreateTabContents();
|
| + TabContentsWrapper* homepage_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| homepage_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open some other tab, by user typing.
|
| - TabContents* typed_page_contents = CreateTabContents();
|
| + TabContentsWrapper* typed_page_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| typed_page_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
| @@ -1162,15 +1169,15 @@
|
|
|
| // Open a bunch of tabs by simulating middle clicking on links on the home
|
| // page.
|
| - TabContents* middle_click_contents1 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents1 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents1, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* middle_click_contents2 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents2 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents2, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* middle_click_contents3 = CreateTabContents();
|
| + TabContentsWrapper* middle_click_contents3 = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| middle_click_contents3, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| @@ -1204,19 +1211,21 @@
|
|
|
| // Added for http://b/issue?id=958960
|
| TEST_F(TabStripModelTest, AppendContentsReselectionTest) {
|
| - TabContents fake_destinations_tab(profile(), NULL, 0, NULL, NULL);
|
| - TabStripDummyDelegate delegate(&fake_destinations_tab);
|
| + TabContents* fake_destinations_tab =
|
| + new TabContents(profile(), NULL, 0, NULL, NULL);
|
| + TabContentsWrapper wrapper(fake_destinations_tab);
|
| + TabStripDummyDelegate delegate(&wrapper);
|
| TabStripModel tabstrip(&delegate, profile());
|
| EXPECT_TRUE(tabstrip.empty());
|
|
|
| // Open the Home Page
|
| - TabContents* homepage_contents = CreateTabContents();
|
| + TabContentsWrapper* homepage_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| homepage_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open some other tab, by user typing.
|
| - TabContents* typed_page_contents = CreateTabContents();
|
| + TabContentsWrapper* typed_page_contents = CreateTabContents();
|
| tabstrip.AddTabContents(
|
| typed_page_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_NONE);
|
| @@ -1226,7 +1235,7 @@
|
|
|
| // Now simulate a link click that opens a new tab (by virtue of target=_blank)
|
| // and make sure the right tab gets selected when the new tab is closed.
|
| - TabContents* target_blank_contents = CreateTabContents();
|
| + TabContentsWrapper* target_blank_contents = CreateTabContents();
|
| tabstrip.AppendTabContents(target_blank_contents, true);
|
| EXPECT_EQ(2, tabstrip.selected_index());
|
| tabstrip.CloseTabContentsAt(2, TabStripModel::CLOSE_NONE);
|
| @@ -1242,16 +1251,16 @@
|
| TabStripModel strip(&delegate, profile());
|
|
|
| // Open page A
|
| - TabContents* page_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_contents = CreateTabContents();
|
| strip.AddTabContents(
|
| page_a_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Simulate middle click to open page A.A and A.B
|
| - TabContents* page_a_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_a_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_a_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| - TabContents* page_a_b_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_b_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_b_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
|
|
| @@ -1260,7 +1269,7 @@
|
| EXPECT_EQ(page_a_a_contents, strip.GetSelectedTabContents());
|
|
|
| // Simulate a middle click to open page A.A.A
|
| - TabContents* page_a_a_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_a_a_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_a_a_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
|
|
| @@ -1293,14 +1302,14 @@
|
| TabStripModel strip(&delegate, profile());
|
|
|
| // Open page A
|
| - TabContents* page_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_contents, -1, PageTransition::START_PAGE,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open pages B, C and D in the background from links on page A...
|
| - TabContents* page_b_contents = CreateTabContents();
|
| - TabContents* page_c_contents = CreateTabContents();
|
| - TabContents* page_d_contents = CreateTabContents();
|
| + TabContentsWrapper* page_b_contents = CreateTabContents();
|
| + TabContentsWrapper* page_c_contents = CreateTabContents();
|
| + TabContentsWrapper* page_d_contents = CreateTabContents();
|
| strip.AddTabContents(page_b_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| strip.AddTabContents(page_c_contents, -1, PageTransition::LINK,
|
| @@ -1312,7 +1321,7 @@
|
| strip.SelectTabContentsAt(1, true);
|
|
|
| // Open a New Tab at the end of the strip (simulate Ctrl+T)
|
| - TabContents* new_tab_contents = CreateTabContents();
|
| + TabContentsWrapper* new_tab_contents = CreateTabContents();
|
| strip.AddTabContents(new_tab_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1328,7 +1337,7 @@
|
| // Open a non-New Tab tab at the end of the strip, with a TYPED transition.
|
| // This is like typing a URL in the address bar and pressing Alt+Enter. The
|
| // behavior should be the same as above.
|
| - TabContents* page_e_contents = CreateTabContents();
|
| + TabContentsWrapper* page_e_contents = CreateTabContents();
|
| strip.AddTabContents(page_e_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1344,7 +1353,7 @@
|
| // transition. This is like right clicking on a bookmark and choosing "Open
|
| // in New Tab". No opener relationship should be preserved between this Tab
|
| // and the one that was active when the gesture was performed.
|
| - TabContents* page_f_contents = CreateTabContents();
|
| + TabContentsWrapper* page_f_contents = CreateTabContents();
|
| strip.AddTabContents(page_f_contents, -1, PageTransition::AUTO_BOOKMARK,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1369,14 +1378,14 @@
|
| TabStripModel strip(&delegate, profile());
|
|
|
| // Open page A
|
| - TabContents* page_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_contents, -1, PageTransition::START_PAGE,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| // Open pages B, C and D in the background from links on page A...
|
| - TabContents* page_b_contents = CreateTabContents();
|
| - TabContents* page_c_contents = CreateTabContents();
|
| - TabContents* page_d_contents = CreateTabContents();
|
| + TabContentsWrapper* page_b_contents = CreateTabContents();
|
| + TabContentsWrapper* page_c_contents = CreateTabContents();
|
| + TabContentsWrapper* page_d_contents = CreateTabContents();
|
| strip.AddTabContents(page_b_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| strip.AddTabContents(page_c_contents, -1, PageTransition::LINK,
|
| @@ -1385,7 +1394,7 @@
|
| TabStripModel::ADD_NONE);
|
|
|
| // Open page E in a different opener group from page A.
|
| - TabContents* page_e_contents = CreateTabContents();
|
| + TabContentsWrapper* page_e_contents = CreateTabContents();
|
| strip.AddTabContents(page_e_contents, -1, PageTransition::START_PAGE,
|
| TabStripModel::ADD_NONE);
|
|
|
| @@ -1418,13 +1427,13 @@
|
|
|
| // Open a tab and several tabs from it, then select one of the tabs that was
|
| // opened.
|
| - TabContents* page_a_contents = CreateTabContents();
|
| + TabContentsWrapper* page_a_contents = CreateTabContents();
|
| strip.AddTabContents(page_a_contents, -1, PageTransition::START_PAGE,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| - TabContents* page_b_contents = CreateTabContents();
|
| - TabContents* page_c_contents = CreateTabContents();
|
| - TabContents* page_d_contents = CreateTabContents();
|
| + TabContentsWrapper* page_b_contents = CreateTabContents();
|
| + TabContentsWrapper* page_c_contents = CreateTabContents();
|
| + TabContentsWrapper* page_d_contents = CreateTabContents();
|
| strip.AddTabContents(page_b_contents, -1, PageTransition::LINK,
|
| TabStripModel::ADD_NONE);
|
| strip.AddTabContents(page_c_contents, -1, PageTransition::LINK,
|
| @@ -1439,7 +1448,7 @@
|
| // last on.
|
|
|
| // Now simulate opening a new tab at the end of the TabStrip.
|
| - TabContents* new_tab_contents1 = CreateTabContents();
|
| + TabContentsWrapper* new_tab_contents1 = CreateTabContents();
|
| strip.AddTabContents(new_tab_contents1, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1453,7 +1462,7 @@
|
| // tab's opener relationship to be forgotten.
|
|
|
| // Open a new tab again.
|
| - TabContents* new_tab_contents2 = CreateTabContents();
|
| + TabContentsWrapper* new_tab_contents2 = CreateTabContents();
|
| strip.AddTabContents(new_tab_contents2, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| @@ -1482,11 +1491,12 @@
|
| // Make sure fast shutdown is attempted when tabs that share a RPH are shut
|
| // down.
|
| {
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContentsWithSharedRPH(contents1);
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 =
|
| + CreateTabContentsWithSharedRPH(contents1->tab_contents());
|
|
|
| - SetID(contents1, 1);
|
| - SetID(contents2, 2);
|
| + SetID(contents1->tab_contents(), 1);
|
| + SetID(contents2->tab_contents(), 2);
|
|
|
| tabstrip.AppendTabContents(contents1, true);
|
| tabstrip.AppendTabContents(contents2, true);
|
| @@ -1498,7 +1508,8 @@
|
| tabstrip.CloseAllTabs();
|
| // On a mock RPH this checks whether we *attempted* fast shutdown.
|
| // A real RPH would reject our attempt since there is an unload handler.
|
| - EXPECT_TRUE(contents1->GetRenderProcessHost()->fast_shutdown_started());
|
| + EXPECT_TRUE(contents1->tab_contents()->
|
| + GetRenderProcessHost()->fast_shutdown_started());
|
| EXPECT_EQ(2, tabstrip.count());
|
|
|
| delegate.set_run_unload_listener(false);
|
| @@ -1509,17 +1520,19 @@
|
| // Make sure fast shutdown is not attempted when only some tabs that share a
|
| // RPH are shut down.
|
| {
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContentsWithSharedRPH(contents1);
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 =
|
| + CreateTabContentsWithSharedRPH(contents1->tab_contents());
|
|
|
| - SetID(contents1, 1);
|
| - SetID(contents2, 2);
|
| + SetID(contents1->tab_contents(), 1);
|
| + SetID(contents2->tab_contents(), 2);
|
|
|
| tabstrip.AppendTabContents(contents1, true);
|
| tabstrip.AppendTabContents(contents2, true);
|
|
|
| tabstrip.CloseTabContentsAt(1, TabStripModel::CLOSE_NONE);
|
| - EXPECT_FALSE(contents1->GetRenderProcessHost()->fast_shutdown_started());
|
| + EXPECT_FALSE(contents1->tab_contents()->
|
| + GetRenderProcessHost()->fast_shutdown_started());
|
| EXPECT_EQ(1, tabstrip.count());
|
|
|
| tabstrip.CloseAllTabs();
|
| @@ -1546,15 +1559,15 @@
|
| scoped_refptr<Extension> extension_app(new Extension(path,
|
| Extension::INVALID));
|
| extension_app->launch_web_url_ = "http://www.google.com";
|
| - TabContents* contents1 = CreateTabContents();
|
| - contents1->SetExtensionApp(extension_app);
|
| - TabContents* contents2 = CreateTabContents();
|
| - contents2->SetExtensionApp(extension_app);
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + contents1->tab_contents()->SetExtensionApp(extension_app);
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + contents2->tab_contents()->SetExtensionApp(extension_app);
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| - SetID(contents1, 1);
|
| - SetID(contents2, 2);
|
| - SetID(contents3, 3);
|
| + SetID(contents1->tab_contents(), 1);
|
| + SetID(contents2->tab_contents(), 2);
|
| + SetID(contents3->tab_contents(), 3);
|
|
|
| // Note! The ordering of these tests is important, each subsequent test
|
| // builds on the state established in the previous. This is important if you
|
| @@ -1664,13 +1677,13 @@
|
|
|
| typedef MockTabStripModelObserver::State State;
|
|
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| - TabContents* contents3 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents3 = CreateTabContents();
|
|
|
| - SetID(contents1, 1);
|
| - SetID(contents2, 2);
|
| - SetID(contents3, 3);
|
| + SetID(contents1->tab_contents(), 1);
|
| + SetID(contents2->tab_contents(), 2);
|
| + SetID(contents3->tab_contents(), 3);
|
|
|
| // Note! The ordering of these tests is important, each subsequent test
|
| // builds on the state established in the previous. This is important if you
|
| @@ -1799,8 +1812,8 @@
|
| observer.ClearStates();
|
| }
|
|
|
| - TabContents* contents4 = CreateTabContents();
|
| - SetID(contents4, 4);
|
| + TabContentsWrapper* contents4 = CreateTabContents();
|
| + SetID(contents4->tab_contents(), 4);
|
|
|
| // Insert "4" between "1" and "3". As "1" and "4" are pinned, "4" should end
|
| // up after them.
|
| @@ -1825,14 +1838,14 @@
|
| TabStripDummyDelegate delegate(NULL);
|
| TabStripModel strip(&delegate, profile());
|
|
|
| - TabContents* first_contents = CreateTabContents();
|
| + TabContentsWrapper* first_contents = CreateTabContents();
|
| strip.AddTabContents(first_contents, -1, PageTransition::TYPED,
|
| TabStripModel::ADD_SELECTED);
|
|
|
| MockTabStripModelObserver tabstrip_observer;
|
| strip.AddObserver(&tabstrip_observer);
|
|
|
| - TabContents* new_contents = CreateTabContents();
|
| + TabContentsWrapper* new_contents = CreateTabContents();
|
| strip.ReplaceTabContentsAt(0, new_contents);
|
|
|
| ASSERT_EQ(2, tabstrip_observer.GetStateCount());
|
| @@ -1849,7 +1862,7 @@
|
|
|
| // Now add another tab and replace it, making sure we don't get a selected
|
| // event this time.
|
| - TabContents* third_contents = CreateTabContents();
|
| + TabContentsWrapper* third_contents = CreateTabContents();
|
| strip.AddTabContents(third_contents, 1, PageTransition::TYPED,
|
| TabStripModel::ADD_NONE);
|
|
|
| @@ -1873,8 +1886,8 @@
|
| TEST_F(TabStripModelTest, DeleteFromDestroy) {
|
| TabStripDummyDelegate delegate(NULL);
|
| TabStripModel strip(&delegate, profile());
|
| - TabContents* contents1 = CreateTabContents();
|
| - TabContents* contents2 = CreateTabContents();
|
| + TabContentsWrapper* contents1 = CreateTabContents();
|
| + TabContentsWrapper* contents2 = CreateTabContents();
|
| strip.AppendTabContents(contents1, true);
|
| strip.AppendTabContents(contents2, true);
|
| // DeleteTabContentsOnDestroyedObserver deletes contents1 when contents2 sends
|
|
|