| 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 4d2e906842ff27a399bc0dd96a3403e288a91727..dfb7c664fa0765e6c3ba4fd5579ab33ee0a8d3b1 100644
|
| --- a/ios/chrome/browser/tabs/tab_model_unittest.mm
|
| +++ b/ios/chrome/browser/tabs/tab_model_unittest.mm
|
| @@ -4,11 +4,13 @@
|
|
|
| #import <objc/runtime.h>
|
|
|
| +#include "base/files/file_path.h"
|
| #include "base/mac/scoped_nsautorelease_pool.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/run_loop.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
|
| +#include "ios/chrome/browser/browser_state/test_chrome_browser_state_manager.h"
|
| #include "ios/chrome/browser/chrome_url_constants.h"
|
| #include "ios/chrome/browser/infobars/infobar_manager_impl.h"
|
| #import "ios/chrome/browser/sessions/session_window.h"
|
| @@ -18,6 +20,7 @@
|
| #import "ios/chrome/browser/tabs/tab_model_observer.h"
|
| #import "ios/chrome/browser/tabs/tab_private.h"
|
| #import "ios/chrome/browser/web/chrome_web_client.h"
|
| +#include "ios/chrome/test/ios_chrome_scoped_testing_chrome_browser_state_manager.h"
|
| #import "ios/web/navigation/crw_session_controller.h"
|
| #import "ios/web/navigation/navigation_manager_impl.h"
|
| #import "ios/web/public/navigation_manager.h"
|
| @@ -47,17 +50,6 @@ using web::WebStateImpl;
|
| toDirectory:(NSString*)directory;
|
| @end
|
|
|
| -// Trivial objective C class whose unique aim is to be a wrapper of C++
|
| -// classes.
|
| -@interface ClassesWrapper : NSObject {
|
| - @public
|
| - std::unique_ptr<WebStateImpl> _webStateImpl;
|
| -}
|
| -@end
|
| -
|
| -@implementation ClassesWrapper
|
| -@end
|
| -
|
| @interface TabTest : Tab
|
|
|
| - (instancetype)initWithWindowName:(NSString*)windowName
|
| @@ -81,7 +73,7 @@ using web::WebStateImpl;
|
| id webControllerMock =
|
| [OCMockObject niceMockForClass:[CRWWebController class]];
|
|
|
| - std::unique_ptr<WebStateImpl> webStateImpl(new WebStateImpl(browserState));
|
| + auto webStateImpl = base::MakeUnique<WebStateImpl>(browserState);
|
| webStateImpl->SetWebController(webControllerMock);
|
| webStateImpl->GetNavigationManagerImpl().InitializeSession(
|
| windowName, @"opener", NO, -1);
|
| @@ -137,50 +129,48 @@ const web::Referrer kReferrer2(GURL("https//www.some.referer2.com"),
|
|
|
| class TabModelTest : public PlatformTest {
|
| public:
|
| - TabModelTest() : web_client_(base::MakeUnique<ChromeWebClient>()) {}
|
| -
|
| - protected:
|
| - void SetUp() override {
|
| + TabModelTest()
|
| + : scoped_browser_state_manager_(
|
| + base::MakeUnique<TestChromeBrowserStateManager>(base::FilePath())),
|
| + web_client_(base::MakeUnique<ChromeWebClient>()) {
|
| DCHECK_CURRENTLY_ON(web::WebThread::UI);
|
| - PlatformTest::SetUp();
|
|
|
| TestChromeBrowserState::Builder test_cbs_builder;
|
| chrome_browser_state_ = test_cbs_builder.Build();
|
|
|
| - sessionWindow_.reset([[SessionWindowIOS alloc] init]);
|
| + session_window_.reset([[SessionWindowIOS alloc] init]);
|
| // Create tab model with just a dummy session service so the async state
|
| // saving doesn't trigger unless actually wanted.
|
| base::scoped_nsobject<TestSessionService> test_service(
|
| [[TestSessionService alloc] init]);
|
| - tabModel_.reset([[TabModel alloc]
|
| - initWithSessionWindow:sessionWindow_.get()
|
| + tab_model_.reset([[TabModel alloc]
|
| + initWithSessionWindow:session_window_.get()
|
| sessionService:test_service
|
| browserState:chrome_browser_state_.get()]);
|
| - [tabModel_ setWebUsageEnabled:YES];
|
| - [tabModel_ setPrimary:YES];
|
| - tabModelObserver_.reset([[TabModelObserverPong alloc] init]);
|
| - [tabModel_ addObserver:tabModelObserver_];
|
| + [tab_model_ setWebUsageEnabled:YES];
|
| + [tab_model_ setPrimary:YES];
|
| + tab_model_observer_.reset([[TabModelObserverPong alloc] init]);
|
| + [tab_model_ addObserver:tab_model_observer_];
|
| }
|
|
|
| - void TearDown() override {
|
| - [tabModel_ removeObserver:tabModelObserver_];
|
| - [tabModel_ browserStateDestroyed];
|
| - PlatformTest::TearDown();
|
| + ~TabModelTest() override {
|
| + [tab_model_ removeObserver:tab_model_observer_];
|
| + [tab_model_ browserStateDestroyed];
|
| }
|
|
|
| + protected:
|
| Tab* CreateTab(NSString* windowName,
|
| double lastVisitedTimestamp) NS_RETURNS_RETAINED {
|
| return [[TabTest alloc] initWithWindowName:windowName
|
| lastVisitedTimestamp:lastVisitedTimestamp
|
| browserState:chrome_browser_state_.get()
|
| - tabModel:tabModel_.get()];
|
| + tabModel:tab_model_.get()];
|
| }
|
|
|
| std::unique_ptr<WebStateImpl> CreateWebState(NSString* windowName,
|
| NSString* opener,
|
| NSInteger index) {
|
| - std::unique_ptr<WebStateImpl> webState(
|
| - new WebStateImpl(chrome_browser_state_.get()));
|
| + auto webState = base::MakeUnique<WebStateImpl>(chrome_browser_state_.get());
|
| webState->GetNavigationManagerImpl().InitializeSession(windowName, opener,
|
| NO, index);
|
| return webState;
|
| @@ -195,7 +185,7 @@ class TabModelTest : public PlatformTest {
|
| }
|
|
|
| void RestoreSession(SessionWindowIOS* window) {
|
| - [tabModel_ restoreSessionWindow:window];
|
| + [tab_model_ restoreSessionWindow:window];
|
| }
|
|
|
| // Creates a session window with |entries| entries and a |selectedIndex| of 1.
|
| @@ -211,370 +201,371 @@ class TabModelTest : public PlatformTest {
|
| }
|
|
|
| web::TestWebThreadBundle thread_bundle_;
|
| + IOSChromeScopedTestingChromeBrowserStateManager scoped_browser_state_manager_;
|
| web::ScopedTestingWebClient web_client_;
|
| - base::scoped_nsobject<SessionWindowIOS> sessionWindow_;
|
| + base::scoped_nsobject<SessionWindowIOS> session_window_;
|
| std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
|
| - base::scoped_nsobject<TabModel> tabModel_;
|
| - base::scoped_nsobject<TabModelObserverPong> tabModelObserver_;
|
| + base::scoped_nsobject<TabModel> tab_model_;
|
| + base::scoped_nsobject<TabModelObserverPong> tab_model_observer_;
|
| base::mac::ScopedNSAutoreleasePool pool_;
|
| };
|
|
|
| TEST_F(TabModelTest, IsEmpty) {
|
| - EXPECT_EQ([tabModel_ count], 0U);
|
| - EXPECT_TRUE([tabModel_ isEmpty]);
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kReferrer
|
| - windowName:@"window 1"
|
| - opener:nil
|
| - atIndex:0];
|
| - ASSERT_EQ(1U, [tabModel_ count]);
|
| - EXPECT_FALSE([tabModel_ isEmpty]);
|
| + EXPECT_EQ([tab_model_ count], 0U);
|
| + EXPECT_TRUE([tab_model_ isEmpty]);
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kReferrer
|
| + windowName:@"window 1"
|
| + opener:nil
|
| + atIndex:0];
|
| + ASSERT_EQ(1U, [tab_model_ count]);
|
| + EXPECT_FALSE([tab_model_ isEmpty]);
|
| }
|
|
|
| TEST_F(TabModelTest, InsertUrlSingle) {
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kReferrer
|
| - windowName:@"window 1"
|
| - opener:nil
|
| - atIndex:0];
|
| - ASSERT_EQ(1U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kReferrer
|
| + windowName:@"window 1"
|
| + opener:nil
|
| + atIndex:0];
|
| + ASSERT_EQ(1U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, InsertUrlMultiple) {
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kReferrer
|
| - windowName:@"window 1"
|
| - opener:nil
|
| - atIndex:0];
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kReferrer
|
| - windowName:@"window 2"
|
| - opener:nil
|
| - atIndex:0];
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kReferrer
|
| - windowName:@"window 3"
|
| - opener:nil
|
| - atIndex:1];
|
| -
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:2] windowName]);
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kReferrer
|
| + windowName:@"window 1"
|
| + opener:nil
|
| + atIndex:0];
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kReferrer
|
| + windowName:@"window 2"
|
| + opener:nil
|
| + atIndex:0];
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kReferrer
|
| + windowName:@"window 3"
|
| + opener:nil
|
| + atIndex:1];
|
| +
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:2] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, AppendUrlSingle) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - ASSERT_EQ(1U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + ASSERT_EQ(1U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, AppendUrlMultiple) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:2] windowName]);
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:2] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseTabAtIndexBeginning) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - [tabModel_ closeTabAtIndex:0];
|
| + [tab_model_ closeTabAtIndex:0];
|
|
|
| - ASSERT_EQ(2U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| + ASSERT_EQ(2U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseTabAtIndexMiddle) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - [tabModel_ closeTabAtIndex:1];
|
| + [tab_model_ closeTabAtIndex:1];
|
|
|
| - ASSERT_EQ(2U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| + ASSERT_EQ(2U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseTabAtIndexLast) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - [tabModel_ closeTabAtIndex:2];
|
| + [tab_model_ closeTabAtIndex:2];
|
|
|
| - ASSERT_EQ(2U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:1] windowName]);
|
| + ASSERT_EQ(2U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:1] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseTabAtIndexOnlyOne) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
|
|
| - [tabModel_ closeTabAtIndex:0];
|
| + [tab_model_ closeTabAtIndex:0];
|
|
|
| - EXPECT_EQ(0U, [tabModel_ count]);
|
| + EXPECT_EQ(0U, [tab_model_ count]);
|
| }
|
|
|
| TEST_F(TabModelTest, RestoreSessionOnNTPTest) {
|
| - [tabModel_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| - referrer:kEmptyReferrer
|
| - windowName:@"old window"
|
| - opener:nil
|
| - atIndex:0];
|
| + [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| + referrer:kEmptyReferrer
|
| + windowName:@"old window"
|
| + opener:nil
|
| + atIndex:0];
|
| base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3));
|
|
|
| RestoreSession(window.get());
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ currentTab] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:2] windowName]);
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ currentTab] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:2] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, RestoreSessionOn2NtpTest) {
|
| - [tabModel_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| - referrer:kEmptyReferrer
|
| - windowName:@"old window 1"
|
| - opener:nil
|
| - atIndex:0];
|
| - [tabModel_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| - referrer:kEmptyReferrer
|
| - windowName:@"old window 2"
|
| - opener:nil
|
| - atIndex:1];
|
| + [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| + referrer:kEmptyReferrer
|
| + windowName:@"old window 1"
|
| + opener:nil
|
| + atIndex:0];
|
| + [tab_model_ insertTabWithURL:GURL(kChromeUINewTabURL)
|
| + referrer:kEmptyReferrer
|
| + windowName:@"old window 2"
|
| + opener:nil
|
| + atIndex:1];
|
| base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3));
|
|
|
| RestoreSession(window.get());
|
| - ASSERT_EQ(5U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ currentTab] windowName]);
|
| - EXPECT_NSEQ(@"old window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"old window 2", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:3] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:4] windowName]);
|
| + ASSERT_EQ(5U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ currentTab] windowName]);
|
| + EXPECT_NSEQ(@"old window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"old window 2", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:3] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:4] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, RestoreSessionOnAnyTest) {
|
| - [tabModel_ insertTabWithURL:kURL
|
| - referrer:kEmptyReferrer
|
| - windowName:@"old window 1"
|
| - opener:nil
|
| - atIndex:0];
|
| + [tab_model_ insertTabWithURL:kURL
|
| + referrer:kEmptyReferrer
|
| + windowName:@"old window 1"
|
| + opener:nil
|
| + atIndex:0];
|
| base::scoped_nsobject<SessionWindowIOS> window(CreateSessionWindow(3));
|
|
|
| RestoreSession(window.get());
|
| - ASSERT_EQ(4U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ currentTab] windowName]);
|
| - EXPECT_NSEQ(@"old window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:3] windowName]);
|
| + ASSERT_EQ(4U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ currentTab] windowName]);
|
| + EXPECT_NSEQ(@"old window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:3] windowName]);
|
| }
|
|
|
| TEST_F(TabModelTest, TabForWindowName) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:GURL("https://www.some.url2.com")
|
| - referrer:kReferrer2
|
| - windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:GURL("https://www.some.url2.com")
|
| + referrer:kReferrer2
|
| + windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - Tab* tab = [tabModel_ tabWithWindowName:@"window 2"];
|
| + Tab* tab = [tab_model_ tabWithWindowName:@"window 2"];
|
|
|
| EXPECT_NSEQ([tab windowName], @"window 2");
|
| EXPECT_EQ(tab.url, GURL("https://www.some.url2.com/"));
|
| }
|
|
|
| TEST_F(TabModelTest, TabForWindowNameNotFound) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:GURL("https://www.some.url2.com")
|
| - referrer:kReferrer2
|
| - windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:GURL("https://www.some.url2.com")
|
| + referrer:kReferrer2
|
| + windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - Tab* tab = [tabModel_ tabWithWindowName:@"window not found"];
|
| + Tab* tab = [tab_model_ tabWithWindowName:@"window not found"];
|
|
|
| EXPECT_EQ(nil, tab);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseAllTabs) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:GURL("https://www.some.url2.com")
|
| - referrer:kReferrer2
|
| - windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:GURL("https://www.some.url2.com")
|
| + referrer:kReferrer2
|
| + windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| - [tabModel_ closeAllTabs];
|
| + [tab_model_ closeAllTabs];
|
|
|
| - EXPECT_EQ(0U, [tabModel_ count]);
|
| + EXPECT_EQ(0U, [tab_model_ count]);
|
| }
|
|
|
| TEST_F(TabModelTest, CloseAllTabsWithNoTabs) {
|
| - [tabModel_ closeAllTabs];
|
| + [tab_model_ closeAllTabs];
|
|
|
| - EXPECT_EQ(0U, [tabModel_ count]);
|
| + EXPECT_EQ(0U, [tab_model_ count]);
|
| }
|
|
|
| TEST_F(TabModelTest, InsertWithSessionController) {
|
| - EXPECT_EQ([tabModel_ count], 0U);
|
| - EXPECT_TRUE([tabModel_ isEmpty]);
|
| + EXPECT_EQ([tab_model_ count], 0U);
|
| + EXPECT_TRUE([tab_model_ isEmpty]);
|
|
|
| Tab* new_tab =
|
| - [tabModel_ insertTabWithWebState:CreateWebState(@"window", @"opener", -1)
|
| - atIndex:0];
|
| - EXPECT_EQ([tabModel_ count], 1U);
|
| - [tabModel_ setCurrentTab:new_tab];
|
| - Tab* current_tab = [tabModel_ currentTab];
|
| + [tab_model_ insertTabWithWebState:CreateWebState(@"window", @"opener", -1)
|
| + atIndex:0];
|
| + EXPECT_EQ([tab_model_ count], 1U);
|
| + [tab_model_ setCurrentTab:new_tab];
|
| + Tab* current_tab = [tab_model_ currentTab];
|
| EXPECT_TRUE(current_tab);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenerOfTab) {
|
| // Start off with a couple tabs.
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| // Create parent tab.
|
| - Tab* parent_tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
| // Create child tab.
|
| Tab* child_tab =
|
| - [tabModel_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| - atIndex:[tabModel_ count]];
|
| + [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| + atIndex:[tab_model_ count]];
|
| // Create another unrelated tab.
|
| - Tab* another_tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* another_tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
|
|
| // Create another child of the first tab.
|
| Tab* child_tab2 =
|
| - [tabModel_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| - atIndex:[tabModel_ count]];
|
| + [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| + atIndex:[tab_model_ count]];
|
|
|
| - EXPECT_FALSE([tabModel_ openerOfTab:parent_tab]);
|
| - EXPECT_FALSE([tabModel_ openerOfTab:another_tab]);
|
| - EXPECT_EQ(parent_tab, [tabModel_ openerOfTab:child_tab]);
|
| - EXPECT_EQ(parent_tab, [tabModel_ openerOfTab:child_tab2]);
|
| + EXPECT_FALSE([tab_model_ openerOfTab:parent_tab]);
|
| + EXPECT_FALSE([tab_model_ openerOfTab:another_tab]);
|
| + EXPECT_EQ(parent_tab, [tab_model_ openerOfTab:child_tab]);
|
| + EXPECT_EQ(parent_tab, [tab_model_ openerOfTab:child_tab2]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenerOfTabEmptyModel) {
|
| - EXPECT_FALSE([tabModel_ openerOfTab:nil]);
|
| + EXPECT_FALSE([tab_model_ openerOfTab:nil]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersEmptyModel) {
|
| // Empty model.
|
| - EXPECT_TRUE([tabModel_ isEmpty]);
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:nil afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:nil]);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:nil]);
|
| + EXPECT_TRUE([tab_model_ isEmpty]);
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:nil afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:nil]);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:nil]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersNothingOpenedGeneral) {
|
| // Start with a few tabs.
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| - Tab* tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
|
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| // All should fail since this hasn't opened anything else.
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:tab afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:tab]);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:tab]);
|
|
|
| // Add more items to the tab, expect the same results.
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:tab afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:tab]);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:tab]);
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:tab]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersNothingOpenedFirst) {
|
| // Our tab is first.
|
| - Tab* tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
|
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| // All should fail since this hasn't opened anything else.
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:tab afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:tab]);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:tab]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersNothingOpenedLast) {
|
| // Our tab is last.
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - Tab* tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + Tab* tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
|
|
| // All should fail since this hasn't opened anything else.
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:tab afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:tab]);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:tab afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:tab]);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:tab]);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersChildTabBeforeOpener) {
|
| - Tab* parent_tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
| // Insert child at start
|
| Tab* child_tab =
|
| - [tabModel_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| - atIndex:0];
|
| + [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| + atIndex:0];
|
|
|
| // Insert a few more between them.
|
| - [tabModel_ insertTabWithWebState:CreateWebState(@"window") atIndex:1];
|
| - [tabModel_ insertTabWithWebState:CreateWebState(@"window") atIndex:1];
|
| + [tab_model_ insertTabWithWebState:CreateWebState(@"window") atIndex:1];
|
| + [tab_model_ insertTabWithWebState:CreateWebState(@"window") atIndex:1];
|
|
|
| - EXPECT_FALSE([tabModel_ nextTabWithOpener:parent_tab afterTab:nil]);
|
| - EXPECT_FALSE([tabModel_ lastTabWithOpener:parent_tab]);
|
| - EXPECT_EQ([tabModel_ firstTabWithOpener:parent_tab], child_tab);
|
| + EXPECT_FALSE([tab_model_ nextTabWithOpener:parent_tab afterTab:nil]);
|
| + EXPECT_FALSE([tab_model_ lastTabWithOpener:parent_tab]);
|
| + EXPECT_EQ([tab_model_ firstTabWithOpener:parent_tab], child_tab);
|
| }
|
|
|
| TEST_F(TabModelTest, OpenersChildTabAfterOpener) {
|
| - Tab* parent_tab = [tabModel_ insertTabWithWebState:CreateWebState(@"window")
|
| - atIndex:[tabModel_ count]];
|
| + Tab* parent_tab = [tab_model_ insertTabWithWebState:CreateWebState(@"window")
|
| + atIndex:[tab_model_ count]];
|
|
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| // Insert two children at end.
|
| Tab* child_tab1 =
|
| - [tabModel_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| - atIndex:[tabModel_ count]];
|
| + [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| + atIndex:[tab_model_ count]];
|
| Tab* child_tab2 =
|
| - [tabModel_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| - atIndex:[tabModel_ count]];
|
| + [tab_model_ insertTabWithWebState:CreateChildWebState(parent_tab)
|
| + atIndex:[tab_model_ count]];
|
|
|
| - EXPECT_EQ([tabModel_ nextTabWithOpener:parent_tab afterTab:nil], child_tab1);
|
| - EXPECT_EQ([tabModel_ nextTabWithOpener:parent_tab afterTab:child_tab1],
|
| + EXPECT_EQ([tab_model_ nextTabWithOpener:parent_tab afterTab:nil], child_tab1);
|
| + EXPECT_EQ([tab_model_ nextTabWithOpener:parent_tab afterTab:child_tab1],
|
| child_tab2);
|
| - EXPECT_EQ([tabModel_ lastTabWithOpener:parent_tab], child_tab2);
|
| - EXPECT_FALSE([tabModel_ firstTabWithOpener:parent_tab]);
|
| + EXPECT_EQ([tab_model_ lastTabWithOpener:parent_tab], child_tab2);
|
| + EXPECT_FALSE([tab_model_ firstTabWithOpener:parent_tab]);
|
| }
|
|
|
| TEST_F(TabModelTest, AddWithOrderController) {
|
| // Create a few tabs with the controller at the front.
|
| Tab* parent =
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| // Add a new tab, it should be added behind the parent.
|
| - Tab* child = [tabModel_
|
| + Tab* child = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -583,11 +574,11 @@ TEST_F(TabModelTest, AddWithOrderController) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 0U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 0U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child], 1U);
|
|
|
| // Add another new tab without a parent, should go at the end.
|
| - Tab* tab = [tabModel_
|
| + Tab* tab = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -596,21 +587,21 @@ TEST_F(TabModelTest, AddWithOrderController) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:tab], [tabModel_ count] - 1);
|
| + EXPECT_EQ([tab_model_ indexOfTab:tab], [tab_model_ count] - 1);
|
|
|
| // Same for a tab that's not opened via a LINK transition.
|
| - Tab* tab2 = [tabModel_ insertOrUpdateTabWithURL:kURL
|
| - referrer:kEmptyReferrer
|
| - transition:ui::PAGE_TRANSITION_TYPED
|
| - windowName:nil
|
| - opener:nil
|
| - openedByDOM:NO
|
| - atIndex:[tabModel_ count]
|
| - inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:tab2], [tabModel_ count] - 1);
|
| + Tab* tab2 = [tab_model_ insertOrUpdateTabWithURL:kURL
|
| + referrer:kEmptyReferrer
|
| + transition:ui::PAGE_TRANSITION_TYPED
|
| + windowName:nil
|
| + opener:nil
|
| + openedByDOM:NO
|
| + atIndex:[tab_model_ count]
|
| + inBackground:NO];
|
| + EXPECT_EQ([tab_model_ indexOfTab:tab2], [tab_model_ count] - 1);
|
|
|
| // Add a tab in the background. It should appear behind the opening tab.
|
| - Tab* tab3 = [tabModel_
|
| + Tab* tab3 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -619,10 +610,10 @@ TEST_F(TabModelTest, AddWithOrderController) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:YES];
|
| - EXPECT_EQ([tabModel_ indexOfTab:tab3], [tabModel_ indexOfTab:tab] + 1);
|
| + EXPECT_EQ([tab_model_ indexOfTab:tab3], [tab_model_ indexOfTab:tab] + 1);
|
|
|
| // Add another background tab behind the one we just opened.
|
| - Tab* tab4 = [tabModel_
|
| + Tab* tab4 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -631,23 +622,23 @@ TEST_F(TabModelTest, AddWithOrderController) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:YES];
|
| - EXPECT_EQ([tabModel_ indexOfTab:tab4], [tabModel_ indexOfTab:tab3] + 1);
|
| + 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 =
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| // Force the history to update, as it is used to determine grouping.
|
| ASSERT_TRUE([parent navigationManager]);
|
| [[parent navigationManager]->GetSessionController() commitPendingEntry];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| ASSERT_TRUE(chrome_browser_state_->CreateHistoryService(true));
|
|
|
| // Add a new tab, it should be added behind the parent.
|
| - Tab* child1 = [tabModel_
|
| + Tab* child1 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -656,12 +647,12 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 0U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child1], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 0U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child1], 1U);
|
|
|
| // Add a second child tab in the background. It should be added behind the
|
| // first child.
|
| - Tab* child2 = [tabModel_
|
| + Tab* child2 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -670,7 +661,7 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:YES];
|
| - EXPECT_EQ([tabModel_ indexOfTab:child2], 2U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child2], 2U);
|
|
|
| // Navigate the parent tab to a new URL. It should not change any ordering.
|
| web::NavigationManager::WebLoadParams parent_params(
|
| @@ -679,11 +670,11 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) {
|
| [[parent webController] loadWithParams:parent_params];
|
| ASSERT_TRUE([parent navigationManager]);
|
| [[parent navigationManager]->GetSessionController() commitPendingEntry];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 0U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 0U);
|
|
|
| // Add a new tab. It should be added behind the parent. It should not be added
|
| // after the previous two children.
|
| - Tab* child3 = [tabModel_
|
| + Tab* child3 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -692,11 +683,11 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:child3], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child3], 1U);
|
|
|
| // Add a fourt child tab in the background. It should be added behind the
|
| // third child.
|
| - Tab* child4 = [tabModel_
|
| + Tab* child4 = [tab_model_
|
| insertOrUpdateTabWithURL:kURL
|
| referrer:kEmptyReferrer
|
| transition:ui::PAGE_TRANSITION_LINK
|
| @@ -705,128 +696,128 @@ TEST_F(TabModelTest, AddWithOrderControllerAndGrouping) {
|
| openedByDOM:NO
|
| atIndex:TabModelConstants::kTabPositionAutomatically
|
| inBackground:YES];
|
| - EXPECT_EQ([tabModel_ indexOfTab:child4], 2U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child4], 2U);
|
|
|
| // The first two children should have been moved to the right.
|
| - EXPECT_EQ([tabModel_ indexOfTab:child1], 3U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child2], 4U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child1], 3U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child2], 4U);
|
|
|
| // Now add a non-owned tab and make sure it is added at the end.
|
| Tab* nonChild =
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - EXPECT_EQ([tabModel_ indexOfTab:nonChild], [tabModel_ count] - 1);
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + 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 =
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| // Force the history to update, as it is used to determine grouping.
|
| ASSERT_TRUE([parent navigationManager]);
|
| [[parent navigationManager]->GetSessionController() commitPendingEntry];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| - [tabModel_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
| + [tab_model_ addTabWithURL:kURL referrer:kEmptyReferrer windowName:nil];
|
|
|
| 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 = [tabModel_ insertOrUpdateTabWithURL:kURL
|
| - referrer:kEmptyReferrer
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - windowName:nil
|
| - opener:parent
|
| - openedByDOM:NO
|
| - atIndex:0
|
| - inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 1U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child1], 0U);
|
| + Tab* child1 = [tab_model_ insertOrUpdateTabWithURL:kURL
|
| + referrer:kEmptyReferrer
|
| + transition:ui::PAGE_TRANSITION_LINK
|
| + windowName:nil
|
| + opener:parent
|
| + openedByDOM:NO
|
| + atIndex:0
|
| + inBackground:NO];
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child1], 0U);
|
|
|
| // 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 = [tabModel_ insertOrUpdateTabWithURL:kURL
|
| - referrer:kEmptyReferrer
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - windowName:nil
|
| - opener:parent
|
| - openedByDOM:NO
|
| - atIndex:0
|
| - inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 2U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child1], 1U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child2], 0U);
|
| + Tab* child2 = [tab_model_ insertOrUpdateTabWithURL:kURL
|
| + referrer:kEmptyReferrer
|
| + transition:ui::PAGE_TRANSITION_LINK
|
| + windowName:nil
|
| + opener:parent
|
| + openedByDOM:NO
|
| + atIndex:0
|
| + inBackground:NO];
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 2U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child1], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child2], 0U);
|
|
|
| // Add a new tab, it should be added at position 1 because the index parameter
|
| // has been specified with a valid value.
|
| - Tab* child3 = [tabModel_ insertOrUpdateTabWithURL:kURL
|
| - referrer:kEmptyReferrer
|
| - transition:ui::PAGE_TRANSITION_LINK
|
| - windowName:nil
|
| - opener:parent
|
| - openedByDOM:NO
|
| - atIndex:1
|
| - inBackground:NO];
|
| - EXPECT_EQ([tabModel_ indexOfTab:parent], 3U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child1], 2U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child3], 1U);
|
| - EXPECT_EQ([tabModel_ indexOfTab:child2], 0U);
|
| + Tab* child3 = [tab_model_ insertOrUpdateTabWithURL:kURL
|
| + referrer:kEmptyReferrer
|
| + transition:ui::PAGE_TRANSITION_LINK
|
| + windowName:nil
|
| + opener:parent
|
| + openedByDOM:NO
|
| + atIndex:1
|
| + inBackground:NO];
|
| + EXPECT_EQ([tab_model_ indexOfTab:parent], 3U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child1], 2U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child3], 1U);
|
| + EXPECT_EQ([tab_model_ indexOfTab:child2], 0U);
|
| }
|
|
|
| TEST_F(TabModelTest, MoveTabs) {
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| - [tabModel_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| + [tab_model_ addTabWithURL:kURL referrer:kReferrer windowName:@"window 3"];
|
|
|
| // Basic sanity checks before moving on.
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - ASSERT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:0] windowName]);
|
| - ASSERT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:1] windowName]);
|
| - ASSERT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:2] windowName]);
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + ASSERT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:0] windowName]);
|
| + ASSERT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:1] windowName]);
|
| + ASSERT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:2] windowName]);
|
|
|
| // Move a tab from index 1 to index 0 (move tab left by one).
|
| - [tabModelObserver_ setTabMovedWasCalled:NO];
|
| - [tabModel_ moveTab:[tabModel_ tabAtIndex:1] toIndex:0];
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_TRUE([tabModelObserver_ tabMovedWasCalled]);
|
| + [tab_model_observer_ setTabMovedWasCalled:NO];
|
| + [tab_model_ moveTab:[tab_model_ tabAtIndex:1] toIndex:0];
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]);
|
|
|
| // Move a tab from index 1 to index 2 (move tab right by one).
|
| - [tabModelObserver_ setTabMovedWasCalled:NO];
|
| - [tabModel_ moveTab:[tabModel_ tabAtIndex:1] toIndex:2];
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_TRUE([tabModelObserver_ tabMovedWasCalled]);
|
| + [tab_model_observer_ setTabMovedWasCalled:NO];
|
| + [tab_model_ moveTab:[tab_model_ tabAtIndex:1] toIndex:2];
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]);
|
|
|
| // Move a tab from index 0 to index 2 (move tab right by more than one).
|
| - [tabModelObserver_ setTabMovedWasCalled:NO];
|
| - [tabModel_ moveTab:[tabModel_ tabAtIndex:0] toIndex:2];
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_TRUE([tabModelObserver_ tabMovedWasCalled]);
|
| + [tab_model_observer_ setTabMovedWasCalled:NO];
|
| + [tab_model_ moveTab:[tab_model_ tabAtIndex:0] toIndex:2];
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]);
|
|
|
| // Move a tab from index 2 to index 0 (move tab left by more than one).
|
| - [tabModelObserver_ setTabMovedWasCalled:NO];
|
| - [tabModel_ moveTab:[tabModel_ tabAtIndex:2] toIndex:0];
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_TRUE([tabModelObserver_ tabMovedWasCalled]);
|
| + [tab_model_observer_ setTabMovedWasCalled:NO];
|
| + [tab_model_ moveTab:[tab_model_ tabAtIndex:2] toIndex:0];
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_TRUE([tab_model_observer_ tabMovedWasCalled]);
|
|
|
| // Move a tab from index 2 to index 2 (move tab to the same index).
|
| - [tabModelObserver_ setTabMovedWasCalled:NO];
|
| - [tabModel_ moveTab:[tabModel_ tabAtIndex:2] toIndex:2];
|
| - ASSERT_EQ(3U, [tabModel_ count]);
|
| - EXPECT_NSEQ(@"window 2", [[tabModel_ tabAtIndex:0] windowName]);
|
| - EXPECT_NSEQ(@"window 3", [[tabModel_ tabAtIndex:1] windowName]);
|
| - EXPECT_NSEQ(@"window 1", [[tabModel_ tabAtIndex:2] windowName]);
|
| - EXPECT_FALSE([tabModelObserver_ tabMovedWasCalled]);
|
| + [tab_model_observer_ setTabMovedWasCalled:NO];
|
| + [tab_model_ moveTab:[tab_model_ tabAtIndex:2] toIndex:2];
|
| + ASSERT_EQ(3U, [tab_model_ count]);
|
| + EXPECT_NSEQ(@"window 2", [[tab_model_ tabAtIndex:0] windowName]);
|
| + EXPECT_NSEQ(@"window 3", [[tab_model_ tabAtIndex:1] windowName]);
|
| + EXPECT_NSEQ(@"window 1", [[tab_model_ tabAtIndex:2] windowName]);
|
| + EXPECT_FALSE([tab_model_observer_ tabMovedWasCalled]);
|
| }
|
|
|
| TEST_F(TabModelTest, SetParentModel) {
|
| @@ -838,20 +829,23 @@ TEST_F(TabModelTest, SetParentModel) {
|
| browserState:chrome_browser_state_.get()
|
| tabModel:nil]);
|
| EXPECT_TRUE([tab parentTabModel] == nil);
|
| - [tabModel_ insertTab:tab atIndex:0];
|
| - [tab setParentTabModel:tabModel_.get()];
|
| + [tab_model_ insertTab:tab atIndex:0];
|
| + [tab setParentTabModel:tab_model_.get()];
|
| EXPECT_FALSE([tab parentTabModel] == nil);
|
| - [tabModel_ closeTabAtIndex:0];
|
| + [tab_model_ closeTabAtIndex:0];
|
| }
|
|
|
| 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());
|
| + base::SysUTF8ToNSString(chrome_browser_state->GetStatePath().value());
|
|
|
| base::scoped_nsobject<TabModel> model([[TabModel alloc]
|
| - initWithSessionWindow:sessionWindow_.get()
|
| + initWithSessionWindow:session_window_.get()
|
| sessionService:[SessionServiceIOS sharedService]
|
| - browserState:chrome_browser_state_.get()]);
|
| + browserState:chrome_browser_state.get()]);
|
|
|
| [model addTabWithURL:kURL referrer:kReferrer windowName:@"window 1"];
|
| [model addTabWithURL:kURL referrer:kReferrer windowName:@"window 2"];
|
| @@ -869,7 +863,7 @@ TEST_F(TabModelTest, PersistSelectionChange) {
|
| 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(
|
| @@ -878,7 +872,7 @@ TEST_F(TabModelTest, PersistSelectionChange) {
|
| model.reset([[TabModel alloc]
|
| initWithSessionWindow:sessionWindow
|
| sessionService:test_service
|
| - browserState:chrome_browser_state_.get()]);
|
| + browserState:chrome_browser_state.get()]);
|
| EXPECT_EQ(model.get().currentTab, [model tabAtIndex:1]);
|
| [model browserStateDestroyed];
|
|
|
|
|