Index: ios/chrome/browser/tabs/tab_model_unittest.mm |
diff --git a/ios/chrome/browser/tabs/tab_model_unittest.mm b/ios/chrome/browser/tabs/tab_model_unittest.mm |
index 874340bda1befcfb73acd5f57f41cb7f8d3fc293..2fe10d7221417490241fe76ac0ec2f8a367d40bf 100644 |
--- a/ios/chrome/browser/tabs/tab_model_unittest.mm |
+++ b/ios/chrome/browser/tabs/tab_model_unittest.mm |
@@ -80,12 +80,8 @@ using web::WebStateImpl; |
namespace { |
-const GURL kURL("https://www.some.url.com"); |
-const web::Referrer kEmptyReferrer; |
-const web::Referrer kReferrer(GURL("https//www.some.referer.com"), |
- web::ReferrerPolicyDefault); |
-const web::Referrer kReferrer2(GURL("https//www.some.referer2.com"), |
- web::ReferrerPolicyDefault); |
+const char kURL1[] = "https://www.some.url.com"; |
+const char kURL2[] = "https://www.some.url2.com"; |
class TabModelTest : public PlatformTest { |
public: |
@@ -109,54 +105,25 @@ class TabModelTest : public PlatformTest { |
browserState:chrome_browser_state_.get()]); |
[tab_model_ setWebUsageEnabled:NO]; |
[tab_model_ setPrimary:YES]; |
- tab_model_observer_.reset([[TabModelObserverPong alloc] init]); |
- [tab_model_ addObserver:tab_model_observer_]; |
} |
~TabModelTest() override { |
- [tab_model_ removeObserver:tab_model_observer_]; |
[tab_model_ browserStateDestroyed]; |
} |
protected: |
- std::unique_ptr<WebStateImpl> CreateWebState(NSString* opener, |
- NSInteger index) { |
- auto webState = base::MakeUnique<WebStateImpl>(chrome_browser_state_.get()); |
- webState->GetNavigationManagerImpl().InitializeSession(NO); |
- if ([opener length] != 0) { |
- // Duplicate code from Tab initializer. Will be removed once the code |
- // is rewritten to remove the use of internal ios/web/ API (see issue |
- // http://crbug.com/620465 for progress). |
- web::SerializableUserDataManager* userDataManager = |
- web::SerializableUserDataManager::FromWebState(webState.get()); |
- userDataManager->AddSerializableData(opener, @"OpenerID"); |
- userDataManager->AddSerializableData(@(index), @"OpenerNavigationIndex"); |
- } |
- return webState; |
- } |
- |
- std::unique_ptr<WebStateImpl> CreateWebState() { |
- return CreateWebState(@"", -1); |
- } |
- |
- std::unique_ptr<WebStateImpl> CreateChildWebState(Tab* parent) { |
- return CreateWebState(parent.tabId, -1); |
- } |
- |
- void RestoreSession(SessionWindowIOS* window) { |
- [tab_model_ restoreSessionWindow:window]; |
- } |
- |
- // Creates a session window with |entries| entries and a |selectedIndex| of 1. |
- SessionWindowIOS* CreateSessionWindow(int entries) { |
- SessionWindowIOS* window = [[SessionWindowIOS alloc] init]; |
- for (int i = 0; i < entries; i++) { |
+ // Creates a session window with entries named "restored window 1", |
+ // "restored window 2" and "restored window 3" and the second entry |
+ // marked as selected. |
+ base::scoped_nsobject<SessionWindowIOS> CreateSessionWindow() { |
+ base::scoped_nsobject<SessionWindowIOS> window( |
+ [[SessionWindowIOS alloc] init]); |
+ for (int i = 0; i < 3; i++) { |
CRWSessionStorage* session_storage = |
[[[CRWSessionStorage alloc] init] autorelease]; |
[window addSerializedSessionStorage:session_storage]; |
} |
- if (entries) |
- [window setSelectedIndex:1]; |
+ [window setSelectedIndex:1]; |
return window; |
} |
@@ -167,57 +134,56 @@ class TabModelTest : public PlatformTest { |
std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; |
base::mac::ScopedNSAutoreleasePool pool_; |
base::scoped_nsobject<TabModel> tab_model_; |
- base::scoped_nsobject<TabModelObserverPong> tab_model_observer_; |
}; |
TEST_F(TabModelTest, IsEmpty) { |
EXPECT_EQ([tab_model_ count], 0U); |
EXPECT_TRUE([tab_model_ isEmpty]); |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_EQ(1U, [tab_model_ count]); |
EXPECT_FALSE([tab_model_ isEmpty]); |
} |
TEST_F(TabModelTest, InsertUrlSingle) { |
- Tab* tab = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_EQ(1U, [tab_model_ count]); |
EXPECT_NSEQ(tab, [tab_model_ tabAtIndex:0]); |
} |
TEST_F(TabModelTest, InsertUrlMultiple) { |
- Tab* tab0 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
- Tab* tab1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:1 |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:0]); |
@@ -226,39 +192,39 @@ TEST_F(TabModelTest, InsertUrlMultiple) { |
} |
TEST_F(TabModelTest, AppendUrlSingle) { |
- Tab* tab = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_EQ(1U, [tab_model_ count]); |
EXPECT_NSEQ(tab, [tab_model_ tabAtIndex:0]); |
} |
TEST_F(TabModelTest, AppendUrlMultiple) { |
- Tab* tab0 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:0]); |
@@ -267,27 +233,27 @@ TEST_F(TabModelTest, AppendUrlMultiple) { |
} |
TEST_F(TabModelTest, CloseTabAtIndexBeginning) { |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
[tab_model_ closeTabAtIndex:0]; |
@@ -297,27 +263,27 @@ TEST_F(TabModelTest, CloseTabAtIndexBeginning) { |
} |
TEST_F(TabModelTest, CloseTabAtIndexMiddle) { |
- Tab* tab0 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
[tab_model_ closeTabAtIndex:1]; |
@@ -327,27 +293,27 @@ TEST_F(TabModelTest, CloseTabAtIndexMiddle) { |
} |
TEST_F(TabModelTest, CloseTabAtIndexLast) { |
- Tab* tab0 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
[tab_model_ closeTabAtIndex:2]; |
@@ -357,13 +323,13 @@ TEST_F(TabModelTest, CloseTabAtIndexLast) { |
} |
TEST_F(TabModelTest, CloseTabAtIndexOnlyOne) { |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
[tab_model_ closeTabAtIndex:0]; |
@@ -372,15 +338,16 @@ TEST_F(TabModelTest, CloseTabAtIndexOnlyOne) { |
TEST_F(TabModelTest, RestoreSessionOnNTPTest) { |
Tab* tab = [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL) |
- referrer:kEmptyReferrer |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
- base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3)); |
+ inBackground:NO]; |
+ |
+ base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow()); |
+ [tab_model_ restoreSessionWindow:window.get()]; |
- RestoreSession(window.get()); |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ([tab_model_ tabAtIndex:1], [tab_model_ currentTab]); |
EXPECT_NSNE(tab, [tab_model_ tabAtIndex:0]); |
@@ -390,22 +357,23 @@ TEST_F(TabModelTest, RestoreSessionOnNTPTest) { |
TEST_F(TabModelTest, RestoreSessionOn2NtpTest) { |
Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL) |
- referrer:kEmptyReferrer |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
+ inBackground:NO]; |
Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL) |
- referrer:kEmptyReferrer |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:1 |
- inBackground:YES]; |
- base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3)); |
+ inBackground:NO]; |
+ |
+ base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow()); |
+ [tab_model_ restoreSessionWindow:window.get()]; |
- RestoreSession(window.get()); |
ASSERT_EQ(5U, [tab_model_ count]); |
EXPECT_NSEQ([tab_model_ tabAtIndex:3], [tab_model_ currentTab]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:0]); |
@@ -419,16 +387,17 @@ TEST_F(TabModelTest, RestoreSessionOn2NtpTest) { |
} |
TEST_F(TabModelTest, RestoreSessionOnAnyTest) { |
- Tab* tab = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:0 |
- inBackground:YES]; |
- base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3)); |
+ inBackground:NO]; |
+ |
+ base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow()); |
+ [tab_model_ restoreSessionWindow:window.get()]; |
- RestoreSession(window.get()); |
ASSERT_EQ(4U, [tab_model_ count]); |
EXPECT_NSEQ([tab_model_ tabAtIndex:2], [tab_model_ currentTab]); |
EXPECT_NSEQ(tab, [tab_model_ tabAtIndex:0]); |
@@ -438,27 +407,27 @@ TEST_F(TabModelTest, RestoreSessionOnAnyTest) { |
} |
TEST_F(TabModelTest, CloseAllTabs) { |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:GURL("https://www.some.url2.com") |
- referrer:kReferrer2 |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL2) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
[tab_model_ closeAllTabs]; |
@@ -475,8 +444,14 @@ TEST_F(TabModelTest, InsertWithSessionController) { |
EXPECT_EQ([tab_model_ count], 0U); |
EXPECT_TRUE([tab_model_ isEmpty]); |
- Tab* new_tab = [tab_model_ insertTabWithWebState:CreateWebState(@"opener", -1) |
- atIndex:0]; |
+ Tab* new_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ |
EXPECT_EQ([tab_model_ count], 1U); |
[tab_model_ setCurrentTab:new_tab]; |
Tab* current_tab = [tab_model_ currentTab]; |
@@ -485,43 +460,63 @@ TEST_F(TabModelTest, InsertWithSessionController) { |
TEST_F(TabModelTest, OpenerOfTab) { |
// Start off with a couple tabs. |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// Create parent tab. |
- Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ Tab* parent_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ |
// Create child tab. |
- Tab* child_tab = |
- [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab) |
- atIndex:[tab_model_ count]]; |
+ Tab* child_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:parent_tab |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ |
// Create another unrelated tab. |
- Tab* another_tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ Tab* another_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
// Create another child of the first tab. |
- Tab* child_tab2 = |
- [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab) |
- atIndex:[tab_model_ count]]; |
+ Tab* child_tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:parent_tab |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
EXPECT_FALSE([tab_model_ openerOfTab:parent_tab]); |
EXPECT_FALSE([tab_model_ openerOfTab:another_tab]); |
@@ -542,82 +537,91 @@ TEST_F(TabModelTest, OpenersEmptyModel) { |
TEST_F(TabModelTest, OpenersNothingOpenedGeneral) { |
// Start with a few tabs. |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
- Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// All should fail since this hasn't opened anything else. |
EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]); |
EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]); |
// Add more items to the tab, expect the same results. |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- |
+ inBackground:NO]; |
EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]); |
EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]); |
} |
TEST_F(TabModelTest, OpenersNothingOpenedFirst) { |
// Our tab is first. |
- Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// All should fail since this hasn't opened anything else. |
EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]); |
@@ -626,22 +630,28 @@ TEST_F(TabModelTest, OpenersNothingOpenedFirst) { |
TEST_F(TabModelTest, OpenersNothingOpenedLast) { |
// Our tab is last. |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ inBackground:NO]; |
+ |
+ Tab* tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
// All should fail since this hasn't opened anything else. |
EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]); |
@@ -649,44 +659,82 @@ TEST_F(TabModelTest, OpenersNothingOpenedLast) { |
} |
TEST_F(TabModelTest, OpenersChildTabBeforeOpener) { |
- Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
+ Tab* parent_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ |
// Insert child at start |
- [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab) atIndex:0]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:parent_tab |
+ openedByDOM:NO |
+ atIndex:0 |
+ inBackground:NO]; |
// Insert a few more between them. |
- [tab_model_ insertTabWithWebState:CreateWebState() atIndex:1]; |
- [tab_model_ insertTabWithWebState:CreateWebState() atIndex:1]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:1 |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:1 |
+ inBackground:NO]; |
EXPECT_FALSE([tab_model_ nextTabWithOpener:parent_tab afterTab:nil]); |
EXPECT_FALSE([tab_model_ lastTabWithOpener:parent_tab]); |
} |
TEST_F(TabModelTest, OpenersChildTabAfterOpener) { |
- Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState() |
- atIndex:[tab_model_ count]]; |
- |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* parent_tab = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
+ |
// Insert two children at end. |
- Tab* child_tab1 = |
- [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab) |
- atIndex:[tab_model_ count]]; |
- Tab* child_tab2 = |
- [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab) |
- atIndex:[tab_model_ count]]; |
+ Tab* child_tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:parent_tab |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ Tab* child_tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:parent_tab |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ nextTabWithOpener:parent_tab afterTab:nil], child_tab1); |
EXPECT_EQ([tab_model_ nextTabWithOpener:parent_tab afterTab:child_tab1], |
@@ -696,32 +744,32 @@ TEST_F(TabModelTest, OpenersChildTabAfterOpener) { |
TEST_F(TabModelTest, AddWithOrderController) { |
// Create a few tabs with the controller at the front. |
- Tab* parent = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* parent = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// Add a new tab, it should be added behind the parent. |
Tab* child = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -732,8 +780,8 @@ TEST_F(TabModelTest, AddWithOrderController) { |
// Add another new tab without a parent, should go at the end. |
Tab* tab = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:nil |
openedByDOM:NO |
@@ -742,8 +790,8 @@ TEST_F(TabModelTest, AddWithOrderController) { |
EXPECT_EQ([tab_model_ indexOfTab:tab], [tab_model_ count] - 1); |
// Same for a tab that's not opened via a LINK transition. |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
@@ -753,60 +801,60 @@ TEST_F(TabModelTest, AddWithOrderController) { |
// Add a tab in the background. It should appear behind the opening tab. |
Tab* tab3 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:tab |
openedByDOM:NO |
atIndex:TabModelConstants::kTabPositionAutomatically |
- inBackground:YES]; |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ indexOfTab:tab3], [tab_model_ indexOfTab:tab] + 1); |
// Add another background tab behind the one we just opened. |
Tab* tab4 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:tab3 |
openedByDOM:NO |
atIndex:TabModelConstants::kTabPositionAutomatically |
- inBackground:YES]; |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ indexOfTab:tab4], [tab_model_ indexOfTab:tab3] + 1); |
} |
TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) { |
// Create a few tabs with the controller at the front. |
- Tab* parent = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* parent = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// Force the history to update, as it is used to determine grouping. |
ASSERT_TRUE([parent navigationManagerImpl]); |
[[parent navigationManagerImpl]->GetSessionController() commitPendingItem]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_TRUE(chrome_browser_state_->CreateHistoryService(true)); |
// Add a new tab, it should be added behind the parent. |
Tab* child1 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -818,13 +866,13 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) { |
// Add a second child tab in the background. It should be added behind the |
// first child. |
Tab* child2 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
atIndex:TabModelConstants::kTabPositionAutomatically |
- inBackground:YES]; |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ indexOfTab:child2], 2U); |
// Navigate the parent tab to a new URL. It should not change any ordering. |
@@ -839,8 +887,8 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) { |
// Add a new tab. It should be added behind the parent. It should not be added |
// after the previous two children. |
Tab* child3 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -851,13 +899,13 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) { |
// Add a fourt child tab in the background. It should be added behind the |
// third child. |
Tab* child4 = |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
atIndex:TabModelConstants::kTabPositionAutomatically |
- inBackground:YES]; |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ indexOfTab:child4], 2U); |
// The first two children should have been moved to the right. |
@@ -865,49 +913,49 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) { |
EXPECT_EQ([tab_model_ indexOfTab:child2], 4U); |
// Now add a non-owned tab and make sure it is added at the end. |
- Tab* nonChild = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* nonChild = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
EXPECT_EQ([tab_model_ indexOfTab:nonChild], [tab_model_ count] - 1); |
} |
TEST_F(TabModelTest, AddWithLinkTransitionAndIndex) { |
// Create a few tabs with the controller at the front. |
- Tab* parent = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* parent = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// Force the history to update, as it is used to determine grouping. |
ASSERT_TRUE([parent navigationManagerImpl]); |
[[parent navigationManagerImpl]->GetSessionController() commitPendingItem]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
ASSERT_TRUE(chrome_browser_state_->CreateHistoryService(true)); |
// Add a new tab, it should be added before the parent since the index |
// parameter has been specified with a valid value. |
- Tab* child1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* child1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -918,8 +966,8 @@ TEST_F(TabModelTest, AddWithLinkTransitionAndIndex) { |
// Add a new tab, it should be added at the beginning of the stack because |
// the index parameter has been specified with a valid value. |
- Tab* child2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* child2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -931,8 +979,8 @@ TEST_F(TabModelTest, AddWithLinkTransitionAndIndex) { |
// Add a new tab, it should be added at position 1 because the index parameter |
// has been specified with a valid value. |
- Tab* child3 = [tab_model_ insertTabWithURL:kURL |
- referrer:kEmptyReferrer |
+ Tab* child3 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_LINK |
opener:parent |
openedByDOM:NO |
@@ -945,27 +993,27 @@ TEST_F(TabModelTest, AddWithLinkTransitionAndIndex) { |
} |
TEST_F(TabModelTest, MoveTabs) { |
- Tab* tab0 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ Tab* tab0 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab1 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab1 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
- Tab* tab2 = [tab_model_ insertTabWithURL:kURL |
- referrer:kReferrer |
+ inBackground:NO]; |
+ Tab* tab2 = [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
transition:ui::PAGE_TRANSITION_TYPED |
opener:nil |
openedByDOM:NO |
atIndex:[tab_model_ count] |
- inBackground:YES]; |
+ inBackground:NO]; |
// Basic sanity checks before moving on. |
ASSERT_EQ(3U, [tab_model_ count]); |
@@ -973,50 +1021,59 @@ TEST_F(TabModelTest, MoveTabs) { |
ASSERT_NSEQ(tab1, [tab_model_ tabAtIndex:1]); |
ASSERT_NSEQ(tab2, [tab_model_ tabAtIndex:2]); |
+ // Check that observer methods are called. |
+ base::scoped_nsobject<TabModelObserverPong> tab_model_observer; |
+ tab_model_observer.reset([[TabModelObserverPong alloc] init]); |
+ [tab_model_ addObserver:tab_model_observer.get()]; |
+ |
// Move a tab from index 1 to index 0 (move tab left by one). |
- [tab_model_observer_ setTabMovedWasCalled:NO]; |
+ [tab_model_observer setTabMovedWasCalled:NO]; |
[tab_model_ moveTab:[tab_model_ tabAtIndex:1] toIndex:0]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:0]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:1]); |
EXPECT_NSEQ(tab2, [tab_model_ tabAtIndex:2]); |
- EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]); |
+ EXPECT_TRUE([tab_model_observer tabMovedWasCalled]); |
// Move a tab from index 1 to index 2 (move tab right by one). |
- [tab_model_observer_ setTabMovedWasCalled:NO]; |
+ [tab_model_observer setTabMovedWasCalled:NO]; |
[tab_model_ moveTab:[tab_model_ tabAtIndex:1] toIndex:2]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:0]); |
EXPECT_NSEQ(tab2, [tab_model_ tabAtIndex:1]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:2]); |
- EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]); |
+ EXPECT_TRUE([tab_model_observer tabMovedWasCalled]); |
// Move a tab from index 0 to index 2 (move tab right by more than one). |
- [tab_model_observer_ setTabMovedWasCalled:NO]; |
+ [tab_model_observer setTabMovedWasCalled:NO]; |
[tab_model_ moveTab:[tab_model_ tabAtIndex:0] toIndex:2]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab2, [tab_model_ tabAtIndex:0]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:1]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:2]); |
- EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]); |
+ EXPECT_TRUE([tab_model_observer tabMovedWasCalled]); |
// Move a tab from index 2 to index 0 (move tab left by more than one). |
- [tab_model_observer_ setTabMovedWasCalled:NO]; |
+ [tab_model_observer setTabMovedWasCalled:NO]; |
[tab_model_ moveTab:[tab_model_ tabAtIndex:2] toIndex:0]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:0]); |
EXPECT_NSEQ(tab2, [tab_model_ tabAtIndex:1]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:2]); |
- EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]); |
+ EXPECT_TRUE([tab_model_observer tabMovedWasCalled]); |
// Move a tab from index 2 to index 2 (move tab to the same index). |
- [tab_model_observer_ setTabMovedWasCalled:NO]; |
+ [tab_model_observer setTabMovedWasCalled:NO]; |
[tab_model_ moveTab:[tab_model_ tabAtIndex:2] toIndex:2]; |
ASSERT_EQ(3U, [tab_model_ count]); |
EXPECT_NSEQ(tab1, [tab_model_ tabAtIndex:0]); |
EXPECT_NSEQ(tab2, [tab_model_ tabAtIndex:1]); |
EXPECT_NSEQ(tab0, [tab_model_ tabAtIndex:2]); |
- EXPECT_FALSE([tab_model_observer_ tabMovedWasCalled]); |
+ EXPECT_FALSE([tab_model_observer tabMovedWasCalled]); |
+ |
+ // TabModel asserts that there are no observer when it is deallocated, |
+ // so remove the observer before the end of the method. |
+ [tab_model_ removeObserver:tab_model_observer.get()]; |
} |
TEST_F(TabModelTest, SetParentModel) { |
@@ -1035,90 +1092,71 @@ TEST_F(TabModelTest, SetParentModel) { |
} |
TEST_F(TabModelTest, PersistSelectionChange) { |
- TestChromeBrowserState::Builder test_cbs_builder; |
- auto chrome_browser_state = test_cbs_builder.Build(); |
+ NSString* stashPath = |
+ base::SysUTF8ToNSString(chrome_browser_state_->GetStatePath().value()); |
- // Tabs register some observers with the ChromeBrowserState in an ObserverList |
- // that assert it is empty in its destructor. As Tab are Objective-C object, |
- // it is necessary to use a local pool to ensure all autoreleased object that |
- // may reference those Tabs are deallocated before the TestChromeBrowserState |
- // is destroyed (this cannot use the TabModelTest ScopedNSAutoreleasePool as |
- // it will be drained after the local variable chrome_browser_state). |
- base::mac::ScopedNSAutoreleasePool pool; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:nil |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:[tab_model_ tabAtIndex:0] |
+ openedByDOM:NO |
+ atIndex:[tab_model_ count] |
+ inBackground:NO]; |
+ [tab_model_ insertTabWithURL:GURL(kURL1) |
+ referrer:web::Referrer() |
+ transition:ui::PAGE_TRANSITION_TYPED |
+ opener:[tab_model_ tabAtIndex:1] |
+ openedByDOM:NO |
+ atIndex:0 |
+ inBackground:NO]; |
- NSString* stashPath = |
- base::SysUTF8ToNSString(chrome_browser_state->GetStatePath().value()); |
- |
- base::scoped_nsobject<TabModel> model([[TabModel alloc] |
- initWithSessionWindow:session_window_.get() |
- sessionService:[SessionServiceIOS sharedService] |
- browserState:chrome_browser_state.get()]); |
- |
- [model insertTabWithURL:kURL |
- referrer:kReferrer |
- transition:ui::PAGE_TRANSITION_TYPED |
- opener:nil |
- openedByDOM:NO |
- atIndex:[model count] |
- inBackground:YES]; |
- [model insertTabWithURL:kURL |
- referrer:kReferrer |
- transition:ui::PAGE_TRANSITION_TYPED |
- opener:[model tabAtIndex:0] |
- openedByDOM:NO |
- atIndex:[model count] |
- inBackground:YES]; |
- [model insertTabWithURL:kURL |
- referrer:kReferrer |
- transition:ui::PAGE_TRANSITION_TYPED |
- opener:[model tabAtIndex:1] |
- openedByDOM:NO |
- atIndex:0 |
- inBackground:YES]; |
- |
- ASSERT_EQ(3U, [model count]); |
- [model setCurrentTab:[model tabAtIndex:1]]; |
- |
- EXPECT_EQ(nil, [model openerOfTab:[model tabAtIndex:1]]); |
- EXPECT_EQ([model tabAtIndex:1], [model openerOfTab:[model tabAtIndex:2]]); |
- EXPECT_EQ([model tabAtIndex:2], [model openerOfTab:[model tabAtIndex:0]]); |
+ ASSERT_EQ(3U, [tab_model_ count]); |
+ [tab_model_ setCurrentTab:[tab_model_ tabAtIndex:1]]; |
+ |
+ EXPECT_EQ(nil, [tab_model_ openerOfTab:[tab_model_ tabAtIndex:1]]); |
+ EXPECT_EQ([tab_model_ tabAtIndex:1], |
+ [tab_model_ openerOfTab:[tab_model_ tabAtIndex:2]]); |
+ EXPECT_EQ([tab_model_ tabAtIndex:2], |
+ [tab_model_ openerOfTab:[tab_model_ tabAtIndex:0]]); |
// Force state to flush to disk on the main thread so it can be immediately |
// tested below. |
- SessionWindowIOS* window = [model windowForSavingSession]; |
+ SessionWindowIOS* window = [tab_model_ windowForSavingSession]; |
[[SessionServiceIOS sharedService] performSaveWindow:window |
toDirectory:stashPath]; |
- [model browserStateDestroyed]; |
- model.reset(); |
+ [tab_model_ browserStateDestroyed]; |
+ tab_model_.reset(); |
// Restoring TabModel session sends asynchronous tasks to IO thread, wait |
// for them to complete after destroying the TabModel. |
base::RunLoop().RunUntilIdle(); |
SessionWindowIOS* sessionWindow = [[SessionServiceIOS sharedService] |
- loadWindowForBrowserState:chrome_browser_state.get()]; |
+ loadWindowForBrowserState:chrome_browser_state_.get()]; |
// Create tab model from saved session. |
base::scoped_nsobject<TestSessionService> test_service( |
[[TestSessionService alloc] init]); |
- model.reset([[TabModel alloc] |
+ tab_model_.reset([[TabModel alloc] |
initWithSessionWindow:sessionWindow |
sessionService:test_service |
- browserState:chrome_browser_state.get()]); |
- ASSERT_EQ(3u, [model count]); |
- |
- EXPECT_EQ([model tabAtIndex:1], [model currentTab]); |
- EXPECT_EQ(nil, [model openerOfTab:[model tabAtIndex:1]]); |
- EXPECT_EQ([model tabAtIndex:1], [model openerOfTab:[model tabAtIndex:2]]); |
- EXPECT_EQ([model tabAtIndex:2], [model openerOfTab:[model tabAtIndex:0]]); |
- |
- [model browserStateDestroyed]; |
- model.reset(); |
- |
- // Restoring TabModel session sends asynchronous tasks to IO thread, wait |
- // for them to complete after destroying the TabModel. |
- base::RunLoop().RunUntilIdle(); |
+ browserState:chrome_browser_state_.get()]); |
+ ASSERT_EQ(3u, [tab_model_ count]); |
+ |
+ EXPECT_EQ([tab_model_ tabAtIndex:1], [tab_model_ currentTab]); |
+ EXPECT_EQ(nil, [tab_model_ openerOfTab:[tab_model_ tabAtIndex:1]]); |
+ EXPECT_EQ([tab_model_ tabAtIndex:1], |
+ [tab_model_ openerOfTab:[tab_model_ tabAtIndex:2]]); |
+ EXPECT_EQ([tab_model_ tabAtIndex:2], |
+ [tab_model_ openerOfTab:[tab_model_ tabAtIndex:0]]); |
// Clean up. |
EXPECT_TRUE([[NSFileManager defaultManager] removeItemAtPath:stashPath |