| OLD | NEW | 
|     1 // Copyright 2014 The Chromium Authors. All rights reserved. |     1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #import "ios/web/navigation/navigation_manager_impl.h" |     5 #import "ios/web/navigation/navigation_manager_impl.h" | 
|     6  |     6  | 
|     7 #include "base/logging.h" |     7 #include "base/logging.h" | 
|     8 #include "base/mac/bind_objc_block.h" |     8 #include "base/mac/bind_objc_block.h" | 
|     9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" |     9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 
|    10 #import "ios/web/navigation/legacy_navigation_manager_impl.h" |    10 #import "ios/web/navigation/legacy_navigation_manager_impl.h" | 
|    11 #import "ios/web/navigation/navigation_manager_delegate.h" |    11 #import "ios/web/navigation/navigation_manager_delegate.h" | 
 |    12 #import "ios/web/navigation/wk_based_navigation_manager_impl.h" | 
|    12 #include "ios/web/public/navigation_item.h" |    13 #include "ios/web/public/navigation_item.h" | 
|    13 #include "ios/web/public/test/fakes/test_browser_state.h" |    14 #include "ios/web/public/test/fakes/test_browser_state.h" | 
|    14 #include "ios/web/test/test_url_constants.h" |    15 #include "ios/web/test/test_url_constants.h" | 
 |    16 #import "ios/web/web_state/ui/crw_web_view_navigation_proxy.h" | 
|    15 #include "testing/gtest/include/gtest/gtest.h" |    17 #include "testing/gtest/include/gtest/gtest.h" | 
|    16 #include "testing/platform_test.h" |    18 #include "testing/platform_test.h" | 
|    17 #include "url/scheme_host_port.h" |    19 #include "url/scheme_host_port.h" | 
|    18 #include "url/url_util.h" |    20 #include "url/url_util.h" | 
|    19  |    21  | 
|    20 #if !defined(__has_feature) || !__has_feature(objc_arc) |    22 #if !defined(__has_feature) || !__has_feature(objc_arc) | 
|    21 #error "This file requires ARC support." |    23 #error "This file requires ARC support." | 
|    22 #endif |    24 #endif | 
|    23  |    25  | 
|    24 namespace web { |    26 namespace web { | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|    35     scheme_replacements.SetSchemeStr(kTestWebUIScheme); |    37     scheme_replacements.SetSchemeStr(kTestWebUIScheme); | 
|    36     *url = url->ReplaceComponents(scheme_replacements); |    38     *url = url->ReplaceComponents(scheme_replacements); | 
|    37   } |    39   } | 
|    38   return false; |    40   return false; | 
|    39 } |    41 } | 
|    40  |    42  | 
|    41 // Stub class for NavigationManagerDelegate. |    43 // Stub class for NavigationManagerDelegate. | 
|    42 class TestNavigationManagerDelegate : public NavigationManagerDelegate { |    44 class TestNavigationManagerDelegate : public NavigationManagerDelegate { | 
|    43  public: |    45  public: | 
|    44   bool reload_called() { return reload_called_; } |    46   bool reload_called() { return reload_called_; } | 
 |    47   void SetSessionController(CRWSessionController* session_controller) { | 
 |    48     session_controller_ = session_controller; | 
 |    49   } | 
|    45  |    50  | 
|    46  private: |    51  private: | 
|    47   // NavigationManagerDelegate overrides. |    52   // NavigationManagerDelegate overrides. | 
|    48   void GoToIndex(int index) override {} |    53   void GoToIndex(int index) override { | 
 |    54     [session_controller_ goToItemAtIndex:index discardNonCommittedItems:NO]; | 
 |    55   } | 
|    49   void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} |    56   void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} | 
|    50   void Reload() override { reload_called_ = true; } |    57   void Reload() override { reload_called_ = true; } | 
|    51   void OnNavigationItemsPruned(size_t pruned_item_count) override {} |    58   void OnNavigationItemsPruned(size_t pruned_item_count) override {} | 
|    52   void OnNavigationItemChanged() override {} |    59   void OnNavigationItemChanged() override {} | 
|    53   void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} |    60   void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} | 
|    54   WebState* GetWebState() override { return nullptr; } |    61   WebState* GetWebState() override { return nullptr; } | 
 |    62   id<CRWWebViewNavigationProxy> GetWebViewNavigationProxy() const override { | 
 |    63     return nil; | 
 |    64   } | 
|    55  |    65  | 
|    56   bool reload_called_ = false; |    66   bool reload_called_ = false; | 
 |    67   CRWSessionController* session_controller_; | 
|    57 }; |    68 }; | 
|    58 }  // namespace |    69 }  // namespace | 
|    59  |    70  | 
 |    71 // NavigationManagerTest is parameterized on this enum to test both the legacy | 
 |    72 // implementation of navigation manager and the experimental implementation. | 
 |    73 enum NavigationManagerChoice { | 
 |    74   TEST_LEGACY_NAVIGATION_MANAGER, | 
 |    75   TEST_WK_BASED_NAVIGATION_MANAGER, | 
 |    76 }; | 
 |    77  | 
|    60 // Programmatic test fixture for NavigationManagerImpl testing. |    78 // Programmatic test fixture for NavigationManagerImpl testing. | 
|    61 // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or |    79 // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or | 
|    62 // (the soon-to-be-implemented) WKBasedNavigationManagerImpl. |    80 // WKBasedNavigationManagerImpl. | 
|    63 // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case. |    81 // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case. | 
|    64 class NavigationManagerTest : public PlatformTest, |    82 class NavigationManagerTest | 
|    65                               public ::testing::WithParamInterface<bool> { |    83     : public PlatformTest, | 
 |    84       public ::testing::WithParamInterface<NavigationManagerChoice> { | 
|    66  protected: |    85  protected: | 
|    67   NavigationManagerTest() { |    86   NavigationManagerTest() { | 
|    68     bool test_legacy_navigation_manager = GetParam(); |    87     if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
|    69     if (test_legacy_navigation_manager) { |  | 
|    70       manager_.reset(new LegacyNavigationManagerImpl); |    88       manager_.reset(new LegacyNavigationManagerImpl); | 
 |    89       controller_ = | 
 |    90           [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; | 
 |    91       delegate_.SetSessionController(session_controller()); | 
|    71     } else { |    92     } else { | 
|    72       DCHECK(false) << "Not implemented."; |    93       manager_.reset(new WKBasedNavigationManagerImpl); | 
|    73     } |    94     } | 
|    74     // Setup rewriter. |    95     // Setup rewriter. | 
|    75     BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); |    96     BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); | 
|    76     url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); |    97     url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); | 
|    77  |    98  | 
|    78     manager_->SetDelegate(&delegate_); |    99     manager_->SetDelegate(&delegate_); | 
|    79     manager_->SetBrowserState(&browser_state_); |   100     manager_->SetBrowserState(&browser_state_); | 
|    80     controller_ = |  | 
|    81         [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; |  | 
|    82     manager_->SetSessionController(controller_); |   101     manager_->SetSessionController(controller_); | 
|    83   } |   102   } | 
|    84   CRWSessionController* session_controller() { return controller_; } |   103   CRWSessionController* session_controller() { return controller_; } | 
|    85   NavigationManagerImpl* navigation_manager() { return manager_.get(); } |   104   NavigationManagerImpl* navigation_manager() { return manager_.get(); } | 
|    86  |   105  | 
|    87   TestNavigationManagerDelegate navigation_manager_delegate() { |   106   TestNavigationManagerDelegate navigation_manager_delegate() { | 
|    88     return delegate_; |   107     return delegate_; | 
|    89   } |   108   } | 
|    90  |   109  | 
|    91  private: |   110  private: | 
|    92   TestBrowserState browser_state_; |   111   TestBrowserState browser_state_; | 
|    93   TestNavigationManagerDelegate delegate_; |   112   TestNavigationManagerDelegate delegate_; | 
|    94   std::unique_ptr<NavigationManagerImpl> manager_; |   113   std::unique_ptr<NavigationManagerImpl> manager_; | 
|    95   CRWSessionController* controller_; |   114   CRWSessionController* controller_; | 
|    96 }; |   115 }; | 
|    97  |   116  | 
|    98 // Tests state of an empty navigation manager. |   117 // Tests state of an empty navigation manager. | 
|    99 TEST_P(NavigationManagerTest, EmptyManager) { |   118 TEST_P(NavigationManagerTest, EmptyManager) { | 
|   100   EXPECT_EQ(0, navigation_manager()->GetItemCount()); |   119   EXPECT_EQ(0, navigation_manager()->GetItemCount()); | 
|   101   EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |   120   EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); | 
|   102   EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); |  | 
|   103   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   121   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   104   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   122   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   105   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); |   123   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); | 
|   106   EXPECT_EQ(-1, navigation_manager()->GetPreviousItemIndex()); |   124   EXPECT_EQ(-1, navigation_manager()->GetPreviousItemIndex()); | 
|   107 } |   125 } | 
|   108  |   126  | 
|   109 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. |   127 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. | 
|   110 TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { |   128 TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { | 
|   111   navigation_manager()->AddPendingItem( |   129   navigation_manager()->AddPendingItem( | 
|   112       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   130       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   113       web::NavigationInitiationType::USER_INITIATED, |   131       web::NavigationInitiationType::USER_INITIATED, | 
|   114       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   132       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   115   [session_controller() commitPendingItem]; |   133   navigation_manager()->CommitPendingItem(); | 
|   116   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   134   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   117 } |   135 } | 
|   118  |   136  | 
|   119 // Tests that GetPendingItemIndex() returns current item index if there is a |   137 // Tests that GetPendingItemIndex() returns current item index if there is a | 
|   120 // pending entry. |   138 // pending entry. | 
|   121 TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { |   139 TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { | 
|   122   navigation_manager()->AddPendingItem( |   140   navigation_manager()->AddPendingItem( | 
|   123       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   141       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   124       web::NavigationInitiationType::USER_INITIATED, |   142       web::NavigationInitiationType::USER_INITIATED, | 
|   125       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   143       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   126   [session_controller() commitPendingItem]; |   144   navigation_manager()->CommitPendingItem(); | 
|   127   navigation_manager()->AddPendingItem( |   145   navigation_manager()->AddPendingItem( | 
|   128       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   146       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   129       web::NavigationInitiationType::USER_INITIATED, |   147       web::NavigationInitiationType::USER_INITIATED, | 
|   130       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   148       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   131   EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); |   149   EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 
|   132 } |   150 } | 
|   133  |   151  | 
|   134 // Tests that GetPendingItemIndex() returns same index as was set by |   152 // Tests that GetPendingItemIndex() returns same index as was set by | 
|   135 // -[CRWSessionController setPendingItemIndex:]. |   153 // -[CRWSessionController setPendingItemIndex:]. | 
|   136 TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { |   154 TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { | 
|   137   navigation_manager()->AddPendingItem( |   155   navigation_manager()->AddPendingItem( | 
|   138       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   156       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   139       web::NavigationInitiationType::USER_INITIATED, |   157       web::NavigationInitiationType::USER_INITIATED, | 
|   140       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   158       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   141   [session_controller() commitPendingItem]; |   159   navigation_manager()->CommitPendingItem(); | 
|   142   navigation_manager()->AddPendingItem( |   160   navigation_manager()->AddPendingItem( | 
|   143       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   161       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   144       web::NavigationInitiationType::USER_INITIATED, |   162       web::NavigationInitiationType::USER_INITIATED, | 
|   145       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   163       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   146   [session_controller() commitPendingItem]; |   164   navigation_manager()->CommitPendingItem(); | 
|   147  |   165  | 
|   148   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   166   EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   149   [session_controller() setPendingItemIndex:0]; |   167   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   168     [session_controller() setPendingItemIndex:0]; | 
 |   169   } | 
|   150   EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); |   170   EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); | 
|   151 } |   171 } | 
|   152  |   172  | 
|   153 // Tests that going back or negative offset is not possible without a committed |   173 // Tests that going back or negative offset is not possible without a committed | 
|   154 // item. |   174 // item. | 
|   155 TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) { |   175 TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) { | 
|   156   EXPECT_FALSE(navigation_manager()->CanGoBack()); |   176   EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
|   157   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   177   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   158 } |   178 } | 
|   159  |   179  | 
|   160 // Tests that going back or negative offset is not possible if there is a |   180 // Tests that going back or negative offset is not possible if there is a | 
|   161 // transient item, but not committed items. |   181 // transient item, but not committed items. | 
|   162 TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) { |   182 TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) { | 
|   163   [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |   183   navigation_manager()->AddPendingItem( | 
 |   184       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
 |   185       web::NavigationInitiationType::USER_INITIATED, | 
 |   186       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
 |   187   navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | 
|   164  |   188  | 
|   165   EXPECT_FALSE(navigation_manager()->CanGoBack()); |   189   EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
|   166   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   190   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   167 } |   191 } | 
|   168  |   192  | 
|   169 // Tests that going back or negative offset is possible if there is a transient |   193 // Tests that going back or negative offset is possible if there is a transient | 
|   170 // item and at least one committed item. |   194 // item and at least one committed item. | 
|   171 TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { |   195 TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { | 
|   172   navigation_manager()->AddPendingItem( |   196   navigation_manager()->AddPendingItem( | 
|   173       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   197       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   174       web::NavigationInitiationType::USER_INITIATED, |   198       web::NavigationInitiationType::USER_INITIATED, | 
|   175       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   199       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   176   [session_controller() commitPendingItem]; |   200   navigation_manager()->CommitPendingItem(); | 
|   177   [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; |   201   navigation_manager()->AddTransientItem(GURL("http://www.url.com/0")); | 
|   178  |   202  | 
|   179   EXPECT_TRUE(navigation_manager()->CanGoBack()); |   203   EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
|   180   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   204   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   181 } |   205 } | 
|   182  |   206  | 
|   183 // Tests that going back or negative offset is not possible if there is ony one |   207 // Tests that going back or negative offset is not possible if there is ony one | 
|   184 // committed item and no transient item. |   208 // committed item and no transient item. | 
|   185 TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { |   209 TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { | 
|   186   navigation_manager()->AddPendingItem( |   210   navigation_manager()->AddPendingItem( | 
|   187       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   211       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   188       web::NavigationInitiationType::USER_INITIATED, |   212       web::NavigationInitiationType::USER_INITIATED, | 
|   189       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   213       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   190   [session_controller() commitPendingItem]; |   214   navigation_manager()->CommitPendingItem(); | 
|   191  |   215  | 
|   192   EXPECT_FALSE(navigation_manager()->CanGoBack()); |   216   EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
|   193   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   217   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   194 } |   218 } | 
|   195  |   219  | 
|   196 // Tests going back possibility with multiple committed items. |   220 // Tests going back possibility with multiple committed items. | 
|   197 TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { |   221 TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { | 
|   198   navigation_manager()->AddPendingItem( |   222   navigation_manager()->AddPendingItem( | 
|   199       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   223       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   200       web::NavigationInitiationType::USER_INITIATED, |   224       web::NavigationInitiationType::USER_INITIATED, | 
|   201       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   225       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   202   [session_controller() commitPendingItem]; |   226   navigation_manager()->CommitPendingItem(); | 
|   203   navigation_manager()->AddPendingItem( |   227   navigation_manager()->AddPendingItem( | 
|   204       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   228       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   205       web::NavigationInitiationType::USER_INITIATED, |   229       web::NavigationInitiationType::USER_INITIATED, | 
|   206       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   230       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   207   [session_controller() commitPendingItem]; |   231   navigation_manager()->CommitPendingItem(); | 
|   208   navigation_manager()->AddPendingItem( |   232   navigation_manager()->AddPendingItem( | 
|   209       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   233       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   210       web::NavigationInitiationType::USER_INITIATED, |   234       web::NavigationInitiationType::USER_INITIATED, | 
|   211       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   235       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   212   [session_controller() commitPendingItem]; |   236   navigation_manager()->CommitPendingItem(); | 
|   213  |   237  | 
|   214   EXPECT_TRUE(navigation_manager()->CanGoBack()); |   238   EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
|   215   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   239   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   216  |   240  | 
|   217   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   241   navigation_manager()->GoToIndex(1); | 
|   218   EXPECT_TRUE(navigation_manager()->CanGoBack()); |   242   EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
|   219   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   243   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   220  |   244  | 
|   221   [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |   245   navigation_manager()->GoToIndex(0); | 
|   222   EXPECT_FALSE(navigation_manager()->CanGoBack()); |   246   EXPECT_FALSE(navigation_manager()->CanGoBack()); | 
|   223   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   247   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   224  |   248  | 
|   225   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   249   navigation_manager()->GoToIndex(1); | 
|   226   EXPECT_TRUE(navigation_manager()->CanGoBack()); |   250   EXPECT_TRUE(navigation_manager()->CanGoBack()); | 
|   227   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   251   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   228 } |   252 } | 
|   229  |   253  | 
|   230 // Tests that going forward or positive offset is not possible without a |   254 // Tests that going forward or positive offset is not possible without a | 
|   231 // committed item. |   255 // committed item. | 
|   232 TEST_P(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { |   256 TEST_P(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { | 
|   233   EXPECT_FALSE(navigation_manager()->CanGoForward()); |   257   EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
|   234   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   258   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   235 } |   259 } | 
|   236  |   260  | 
|   237 // Tests that going forward or positive offset is not possible if there is ony |   261 // Tests that going forward or positive offset is not possible if there is ony | 
|   238 // one committed item and no transient item. |   262 // one committed item and no transient item. | 
|   239 TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { |   263 TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { | 
|   240   navigation_manager()->AddPendingItem( |   264   navigation_manager()->AddPendingItem( | 
|   241       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   265       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   242       web::NavigationInitiationType::USER_INITIATED, |   266       web::NavigationInitiationType::USER_INITIATED, | 
|   243       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   267       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   244   [session_controller() commitPendingItem]; |   268   navigation_manager()->CommitPendingItem(); | 
|   245  |   269  | 
|   246   EXPECT_FALSE(navigation_manager()->CanGoForward()); |   270   EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
|   247   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   271   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   248 } |   272 } | 
|   249  |   273  | 
|   250 // Tests going forward possibility with multiple committed items. |   274 // Tests going forward possibility with multiple committed items. | 
|   251 TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { |   275 TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { | 
|   252   navigation_manager()->AddPendingItem( |   276   navigation_manager()->AddPendingItem( | 
|   253       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   277       GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   254       web::NavigationInitiationType::USER_INITIATED, |   278       web::NavigationInitiationType::USER_INITIATED, | 
|   255       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   279       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   256   [session_controller() commitPendingItem]; |   280   navigation_manager()->CommitPendingItem(); | 
|   257   navigation_manager()->AddPendingItem( |   281   navigation_manager()->AddPendingItem( | 
|   258       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   282       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   259       web::NavigationInitiationType::USER_INITIATED, |   283       web::NavigationInitiationType::USER_INITIATED, | 
|   260       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   284       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   261   [session_controller() commitPendingItem]; |   285   navigation_manager()->CommitPendingItem(); | 
|   262   navigation_manager()->AddPendingItem( |   286   navigation_manager()->AddPendingItem( | 
|   263       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   287       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   264       web::NavigationInitiationType::USER_INITIATED, |   288       web::NavigationInitiationType::USER_INITIATED, | 
|   265       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   289       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   266   [session_controller() commitPendingItem]; |   290   navigation_manager()->CommitPendingItem(); | 
|   267  |   291  | 
|   268   EXPECT_FALSE(navigation_manager()->CanGoForward()); |   292   EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
|   269   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   293   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   270  |   294  | 
|   271   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   295   navigation_manager()->GoToIndex(1); | 
|   272   EXPECT_TRUE(navigation_manager()->CanGoForward()); |   296   EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
|   273   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   297   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   274  |   298  | 
|   275   [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |   299   navigation_manager()->GoToIndex(0); | 
|   276   EXPECT_TRUE(navigation_manager()->CanGoForward()); |   300   EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
|   277   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   301   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   278  |   302  | 
|   279   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   303   navigation_manager()->GoToIndex(1); | 
|   280   EXPECT_TRUE(navigation_manager()->CanGoForward()); |   304   EXPECT_TRUE(navigation_manager()->CanGoForward()); | 
|   281   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   305   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   282  |   306  | 
|   283   [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |   307   navigation_manager()->GoToIndex(2); | 
|   284   EXPECT_FALSE(navigation_manager()->CanGoForward()); |   308   EXPECT_FALSE(navigation_manager()->CanGoForward()); | 
|   285   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   309   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   286 } |   310 } | 
|   287  |   311  | 
|   288 // Tests CanGoToOffset API for positive, negative and zero delta. Tested |   312 // Tests CanGoToOffset API for positive, negative and zero delta. Tested | 
|   289 // navigation manager will have redirect entries to make sure they are |   313 // navigation manager will have redirect entries to make sure they are | 
|   290 // appropriately skipped. |   314 // appropriately skipped. | 
|   291 TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { |   315 TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) { | 
|   292   navigation_manager()->AddPendingItem( |   316   navigation_manager()->AddPendingItem( | 
|   293       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, |   317       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   294       web::NavigationInitiationType::USER_INITIATED, |   318       web::NavigationInitiationType::USER_INITIATED, | 
|   295       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   319       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   296   [session_controller() commitPendingItem]; |   320   navigation_manager()->CommitPendingItem(); | 
|   297   navigation_manager()->AddPendingItem( |   321   navigation_manager()->AddPendingItem( | 
|   298       GURL("http://www.url.com/redirect"), Referrer(), |   322       GURL("http://www.url.com/redirect"), Referrer(), | 
|   299       ui::PAGE_TRANSITION_CLIENT_REDIRECT, |   323       ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 
|   300       web::NavigationInitiationType::USER_INITIATED, |   324       web::NavigationInitiationType::USER_INITIATED, | 
|   301       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   325       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   302   [session_controller() commitPendingItem]; |   326   navigation_manager()->CommitPendingItem(); | 
|   303   navigation_manager()->AddPendingItem( |   327   navigation_manager()->AddPendingItem( | 
|   304       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, |   328       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   305       web::NavigationInitiationType::USER_INITIATED, |   329       web::NavigationInitiationType::USER_INITIATED, | 
|   306       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   330       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   307   [session_controller() commitPendingItem]; |   331   navigation_manager()->CommitPendingItem(); | 
|   308   navigation_manager()->AddPendingItem( |   332   navigation_manager()->AddPendingItem( | 
|   309       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, |   333       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   310       web::NavigationInitiationType::USER_INITIATED, |   334       web::NavigationInitiationType::USER_INITIATED, | 
|   311       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   335       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   312   [session_controller() commitPendingItem]; |   336   navigation_manager()->CommitPendingItem(); | 
|   313   navigation_manager()->AddPendingItem( |   337   navigation_manager()->AddPendingItem( | 
|   314       GURL("http://www.url.com/redirect"), Referrer(), |   338       GURL("http://www.url.com/redirect"), Referrer(), | 
|   315       ui::PAGE_TRANSITION_CLIENT_REDIRECT, |   339       ui::PAGE_TRANSITION_CLIENT_REDIRECT, | 
|   316       web::NavigationInitiationType::USER_INITIATED, |   340       web::NavigationInitiationType::USER_INITIATED, | 
|   317       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   341       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   318   [session_controller() commitPendingItem]; |   342   navigation_manager()->CommitPendingItem(); | 
|   319   ASSERT_EQ(5, navigation_manager()->GetItemCount()); |   343   ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
|   320   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   344   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   321  |   345  | 
|   322   // Go to entry at index 1 and test API from that state. |   346   // Go to entry at index 1 and test API from that state. | 
|   323   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   347   navigation_manager()->GoToIndex(1); | 
|   324   ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |   348   ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
|   325   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   349   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   326   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   350   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   327   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); |   351   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 
|   328   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |   352   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
|   329   EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); |   353   EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 
|   330   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   354   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   331   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |   355   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
|   332   EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); |   356   EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 
|   333   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); |   357   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 
|   334   EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); |   358   EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 
|   335   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); |   359   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 
|   336   // Test with large values. |   360   // Test with large values. | 
|   337   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   361   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   338   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   362   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   339   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   363   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   340   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   364   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   341   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   365   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   342   EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); |   366   EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   343   EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); |   367   EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   344   EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); |   368   EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   345  |   369  | 
|   346   // Go to entry at index 2 and test API from that state. |   370   // Go to entry at index 2 and test API from that state. | 
|   347   [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; |   371   navigation_manager()->GoToIndex(2); | 
|   348   ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |   372   ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 
|   349   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   373   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   350   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   374   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   351   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); |   375   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 
|   352   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |   376   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
|   353   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); |   377   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 
|   354   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   378   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   355   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); |   379   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 
|   356   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |   380   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
|   357   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); |   381   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 
|   358   // Test with large values. |   382   // Test with large values. | 
|   359   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   383   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   360   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   384   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   361   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   385   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   362   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   386   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   363   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   387   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   364   EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); |   388   EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   365   EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); |   389   EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   366   EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |   390   EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   367  |   391  | 
|   368   // Go to entry at index 4 and test API from that state. |   392   // Go to entry at index 4 and test API from that state. | 
|   369   [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |   393   navigation_manager()->GoToIndex(4); | 
|   370   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   394   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   371   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   395   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   372   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   396   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   373   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); |   397   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 
|   374   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |   398   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
|   375   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); |   399   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 
|   376   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   400   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   377   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); |   401   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
|   378   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |   402   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
|   379   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); |   403   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
|   380   // Test with large values. |   404   // Test with large values. | 
|   381   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   405   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   382   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   406   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   383   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   407   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   384   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   408   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   385   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   409   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   386   EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); |   410   EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   387   EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); |   411   EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   388   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |   412   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   389  |   413  | 
|   390   // Test with existing transient entry. |   414   // Test with existing transient entry. | 
|   391   [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |   415   navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | 
|   392   ASSERT_EQ(5, navigation_manager()->GetItemCount()); |   416   ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
|   393   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   417   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   394   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   418   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   395   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   419   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   396   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); |   420   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 
|   397   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |   421   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
|   398   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); |   422   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 
|   399   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); |   423   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 
|   400   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); |   424   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 
|   401   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   425   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   402   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); |   426   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
|   403   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |   427   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
|   404   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); |   428   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
|   405   // Test with large values. |   429   // Test with large values. | 
|   406   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   430   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   407   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   431   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   408   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   432   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   409   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   433   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   410   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   434   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   411   EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); |   435   EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   412   EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); |   436   EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   413   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |   437   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   414  |   438  | 
|   415   // Now test with pending item index. |   439   // Now test with pending item index. | 
|   416   [session_controller() discardNonCommittedItems]; |   440   navigation_manager()->DiscardNonCommittedItems(); | 
|   417  |   441  | 
|   418   // Set pending index to 1 and test API from that state. |   442   // Set pending index to 1 and test API from that state. | 
|   419   [session_controller() setPendingItemIndex:1]; |   443   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   444     [session_controller() setPendingItemIndex:1]; | 
 |   445   } | 
|   420   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   446   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   421   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |   447   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
|   422   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); |   448   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); | 
|   423   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); |   449   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); | 
|   424   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |   450   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
|   425   EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); |   451   EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); | 
|   426   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   452   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   427   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |   453   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
|   428   EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); |   454   EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); | 
|   429   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); |   455   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); | 
|   430   EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); |   456   EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); | 
|   431   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); |   457   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); | 
|   432   // Test with large values. |   458   // Test with large values. | 
|   433   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   459   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   434   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   460   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   435   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   461   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   436   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   462   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   437   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   463   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   438   EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); |   464   EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   439   EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); |   465   EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   440   EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); |   466   EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   441  |   467  | 
|   442   // Set pending index to 2 and test API from that state. |   468   // Set pending index to 2 and test API from that state. | 
|   443   [session_controller() setPendingItemIndex:2]; |   469   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   470     [session_controller() setPendingItemIndex:2]; | 
 |   471   } | 
|   444   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   472   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   445   ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); |   473   ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex()); | 
|   446   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   474   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   447   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); |   475   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); | 
|   448   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); |   476   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); | 
|   449   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); |   477   EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); | 
|   450   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); |   478   EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); | 
|   451   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); |   479   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); | 
|   452   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |   480   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
|   453   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); |   481   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); | 
|   454   // Test with large values. |   482   // Test with large values. | 
|   455   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   483   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   456   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   484   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   457   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   485   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   458   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   486   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   459   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   487   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   460   EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); |   488   EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   461   EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); |   489   EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   462   EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); |   490   EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   463  |   491  | 
|   464   // Set pending index to 4 and committed entry to 1 and test. |   492   // Set pending index to 4 and committed entry to 1 and test. | 
|   465   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |   493   navigation_manager()->GoToIndex(1); | 
|   466   [session_controller() setPendingItemIndex:4]; |   494   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   495     [session_controller() setPendingItemIndex:4]; | 
 |   496   } | 
|   467   ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |   497   ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
|   468   ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); |   498   ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); | 
|   469   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   499   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   470   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); |   500   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); | 
|   471   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |   501   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
|   472   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); |   502   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); | 
|   473   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   503   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
|   474   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); |   504   EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); | 
|   475   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); |   505   EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); | 
|   476   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); |   506   EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); | 
|   477   // Test with large values. |   507   // Test with large values. | 
|   478   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); |   508   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); | 
|   479   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); |   509   EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); | 
|   480   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); |   510   EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); | 
|   481   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); |   511   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); | 
|   482   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); |   512   EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); | 
|   483   EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); |   513   EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); | 
|   484   EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); |   514   EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); | 
|   485   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); |   515   EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); | 
|   486  |   516  | 
|   487   // Test with existing transient entry in the end of the stack. |   517   // Test with existing transient entry in the end of the stack. | 
|   488   [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO]; |   518   navigation_manager()->GoToIndex(4); | 
|   489   [session_controller() setPendingItemIndex:-1]; |   519   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
|   490   [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; |   520     [session_controller() setPendingItemIndex:-1]; | 
 |   521   } | 
 |   522   navigation_manager()->AddTransientItem(GURL("http://www.url.com")); | 
|   491   ASSERT_EQ(5, navigation_manager()->GetItemCount()); |   523   ASSERT_EQ(5, navigation_manager()->GetItemCount()); | 
|   492   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); |   524   ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); | 
|   493   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); |   525   ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); | 
|   494   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); |   526   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); | 
|   495   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); |   527   EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); | 
|   496   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); |   528   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); | 
|   497   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); |   529   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); | 
|   498   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); |   530   EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); | 
|   499   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); |   531   EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-3)); | 
|   500   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); |   532   EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|   515 // Tests offsets with pending transient entries (specifically gong back and |   547 // Tests offsets with pending transient entries (specifically gong back and | 
|   516 // forward from a pending navigation entry that is added to the middle of the |   548 // forward from a pending navigation entry that is added to the middle of the | 
|   517 // navigation stack). |   549 // navigation stack). | 
|   518 TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { |   550 TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) { | 
|   519   // Create a transient item in the middle of the navigation stack and go back |   551   // Create a transient item in the middle of the navigation stack and go back | 
|   520   // to it (pending index is 1, current index is 2). |   552   // to it (pending index is 1, current index is 2). | 
|   521   navigation_manager()->AddPendingItem( |   553   navigation_manager()->AddPendingItem( | 
|   522       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, |   554       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   523       web::NavigationInitiationType::USER_INITIATED, |   555       web::NavigationInitiationType::USER_INITIATED, | 
|   524       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   556       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   525   [session_controller() commitPendingItem]; |   557   navigation_manager()->CommitPendingItem(); | 
|   526   navigation_manager()->AddPendingItem( |   558   navigation_manager()->AddPendingItem( | 
|   527       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, |   559       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   528       web::NavigationInitiationType::USER_INITIATED, |   560       web::NavigationInitiationType::USER_INITIATED, | 
|   529       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   561       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   530   [session_controller() commitPendingItem]; |   562   navigation_manager()->CommitPendingItem(); | 
|   531   navigation_manager()->AddPendingItem( |   563   navigation_manager()->AddPendingItem( | 
|   532       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, |   564       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   533       web::NavigationInitiationType::USER_INITIATED, |   565       web::NavigationInitiationType::USER_INITIATED, | 
|   534       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   566       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   535   [session_controller() commitPendingItem]; |   567   navigation_manager()->CommitPendingItem(); | 
|   536   [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; |   568   navigation_manager()->AddTransientItem(GURL("http://www.url.com/1")); | 
|   537   [session_controller() setPendingItemIndex:1]; |   569   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   570     [session_controller() setPendingItemIndex:1]; | 
 |   571   } | 
|   538  |   572  | 
|   539   ASSERT_EQ(3, navigation_manager()->GetItemCount()); |   573   ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 
|   540   ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); |   574   ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); | 
|   541   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |   575   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
|   542   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |   576   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
|   543   EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); |   577   EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 
|   544  |   578  | 
|   545   // Now go forward to that middle transient item (pending index is 1, |   579   // Now go forward to that middle transient item (pending index is 1, | 
|   546   // current index is 0). |   580   // current index is 0). | 
|   547   [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO]; |   581   navigation_manager()->GoToIndex(0); | 
|   548   [session_controller() setPendingItemIndex:1]; |   582   if (GetParam() == TEST_LEGACY_NAVIGATION_MANAGER) { | 
 |   583     [session_controller() setPendingItemIndex:1]; | 
 |   584   } | 
|   549   ASSERT_EQ(3, navigation_manager()->GetItemCount()); |   585   ASSERT_EQ(3, navigation_manager()->GetItemCount()); | 
|   550   ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); |   586   ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); | 
|   551   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); |   587   ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); | 
|   552   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); |   588   EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); | 
|   553   EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); |   589   EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); | 
|   554 } |   590 } | 
|   555  |   591  | 
|   556 // Tests that when given a pending item, adding a new pending item replaces the |   592 // Tests that when given a pending item, adding a new pending item replaces the | 
|   557 // existing pending item if their URLs are different. |   593 // existing pending item if their URLs are different. | 
|   558 TEST_P(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) { |   594 TEST_P(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) { | 
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   711 } |   747 } | 
|   712  |   748  | 
|   713 // Tests that when the last committed item exists, adding a pending item |   749 // Tests that when the last committed item exists, adding a pending item | 
|   714 // succeeds if the new item's URL is different from the last committed item. |   750 // succeeds if the new item's URL is different from the last committed item. | 
|   715 TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) { |   751 TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) { | 
|   716   GURL existing_url = GURL("http://www.existing.com"); |   752   GURL existing_url = GURL("http://www.existing.com"); | 
|   717   navigation_manager()->AddPendingItem( |   753   navigation_manager()->AddPendingItem( | 
|   718       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   754       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   719       web::NavigationInitiationType::USER_INITIATED, |   755       web::NavigationInitiationType::USER_INITIATED, | 
|   720       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   756       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   721   [session_controller() commitPendingItem]; |   757   navigation_manager()->CommitPendingItem(); | 
|   722   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   758   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   723   EXPECT_EQ(existing_url, |   759   EXPECT_EQ(existing_url, | 
|   724             navigation_manager()->GetLastCommittedItem()->GetURL()); |   760             navigation_manager()->GetLastCommittedItem()->GetURL()); | 
|   725   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   761   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   726  |   762  | 
|   727   GURL new_url = GURL("http://www.new.com"); |   763   GURL new_url = GURL("http://www.new.com"); | 
|   728   navigation_manager()->AddPendingItem( |   764   navigation_manager()->AddPendingItem( | 
|   729       new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   765       new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   730       web::NavigationInitiationType::USER_INITIATED, |   766       web::NavigationInitiationType::USER_INITIATED, | 
|   731       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   767       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   732   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   768   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   733   EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); |   769   EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); | 
|   734   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   770   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   735 } |   771 } | 
|   736  |   772  | 
|   737 // Tests that when the last committed item exists, adding a pending item with |   773 // Tests that when the last committed item exists, adding a pending item with | 
|   738 // the same URL fails if the new item is not form submission. |   774 // the same URL fails if the new item is not form submission. | 
|   739 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { |   775 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { | 
|   740   GURL existing_url = GURL("http://www.existing.com"); |   776   GURL existing_url = GURL("http://www.existing.com"); | 
|   741   navigation_manager()->AddPendingItem( |   777   navigation_manager()->AddPendingItem( | 
|   742       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   778       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   743       web::NavigationInitiationType::USER_INITIATED, |   779       web::NavigationInitiationType::USER_INITIATED, | 
|   744       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   780       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   745   [session_controller() commitPendingItem]; |   781   navigation_manager()->CommitPendingItem(); | 
|   746   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   782   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   747   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   783   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   748       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |   784       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
|   749       ui::PAGE_TRANSITION_TYPED)); |   785       ui::PAGE_TRANSITION_TYPED)); | 
|   750   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   786   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   751   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   787   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   752  |   788  | 
|   753   navigation_manager()->AddPendingItem( |   789   navigation_manager()->AddPendingItem( | 
|   754       existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, |   790       existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, | 
|   755       web::NavigationInitiationType::USER_INITIATED, |   791       web::NavigationInitiationType::USER_INITIATED, | 
|   756       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   792       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   757   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   793   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   758   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   794   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   759 } |   795 } | 
|   760  |   796  | 
|   761 // Tests that when the last committed item exists, adding a pending item with |   797 // Tests that when the last committed item exists, adding a pending item with | 
|   762 // the same URL succeeds if the new item is a form submission while the last |   798 // the same URL succeeds if the new item is a form submission while the last | 
|   763 // committed item is not. |   799 // committed item is not. | 
|   764 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { |   800 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { | 
|   765   GURL existing_url = GURL("http://www.existing.com"); |   801   GURL existing_url = GURL("http://www.existing.com"); | 
|   766   navigation_manager()->AddPendingItem( |   802   navigation_manager()->AddPendingItem( | 
|   767       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   803       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   768       web::NavigationInitiationType::USER_INITIATED, |   804       web::NavigationInitiationType::USER_INITIATED, | 
|   769       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   805       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   770   [session_controller() commitPendingItem]; |   806   navigation_manager()->CommitPendingItem(); | 
|   771   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   807   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   772   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   808   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   773       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |   809       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
|   774       ui::PAGE_TRANSITION_TYPED)); |   810       ui::PAGE_TRANSITION_TYPED)); | 
|   775   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   811   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   776   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   812   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   777  |   813  | 
|   778   // Add if new transition is a form submission. |   814   // Add if new transition is a form submission. | 
|   779   navigation_manager()->AddPendingItem( |   815   navigation_manager()->AddPendingItem( | 
|   780       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, |   816       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
|   781       web::NavigationInitiationType::USER_INITIATED, |   817       web::NavigationInitiationType::USER_INITIATED, | 
|   782       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   818       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   783   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   819   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   784   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   820   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   785       navigation_manager()->GetPendingItem()->GetTransitionType(), |   821       navigation_manager()->GetPendingItem()->GetTransitionType(), | 
|   786       ui::PAGE_TRANSITION_FORM_SUBMIT)); |   822       ui::PAGE_TRANSITION_FORM_SUBMIT)); | 
|   787   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   823   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   788 } |   824 } | 
|   789  |   825  | 
|   790 // Tests that when the last committed item exists, adding a pending item with |   826 // Tests that when the last committed item exists, adding a pending item with | 
|   791 // the same URL fails if both the new item and the last committed item are form |   827 // the same URL fails if both the new item and the last committed item are form | 
|   792 // submissions. |   828 // submissions. | 
|   793 TEST_P(NavigationManagerTest, |   829 TEST_P(NavigationManagerTest, | 
|   794        NotAddSameUrlPendingItemIfDuplicateFormSubmission) { |   830        NotAddSameUrlPendingItemIfDuplicateFormSubmission) { | 
|   795   GURL existing_url = GURL("http://www.existing.com"); |   831   GURL existing_url = GURL("http://www.existing.com"); | 
|   796   navigation_manager()->AddPendingItem( |   832   navigation_manager()->AddPendingItem( | 
|   797       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, |   833       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
|   798       web::NavigationInitiationType::USER_INITIATED, |   834       web::NavigationInitiationType::USER_INITIATED, | 
|   799       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   835       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   800   [session_controller() commitPendingItem]; |   836   navigation_manager()->CommitPendingItem(); | 
|   801   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   837   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   802   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   838   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   803   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   839   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   804  |   840  | 
|   805   navigation_manager()->AddPendingItem( |   841   navigation_manager()->AddPendingItem( | 
|   806       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, |   842       existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, | 
|   807       web::NavigationInitiationType::USER_INITIATED, |   843       web::NavigationInitiationType::USER_INITIATED, | 
|   808       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   844       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   809   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   845   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   810   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   846   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   811 } |   847 } | 
|   812  |   848  | 
|   813 // Tests that when the last committed item exists, adding a pending item with |   849 // Tests that when the last committed item exists, adding a pending item with | 
|   814 // the same URL fails if the user agent override option is INHERIT. |   850 // the same URL fails if the user agent override option is INHERIT. | 
|   815 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { |   851 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { | 
|   816   GURL existing_url = GURL("http://www.existing.com"); |   852   GURL existing_url = GURL("http://www.existing.com"); | 
|   817   navigation_manager()->AddPendingItem( |   853   navigation_manager()->AddPendingItem( | 
|   818       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   854       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   819       web::NavigationInitiationType::USER_INITIATED, |   855       web::NavigationInitiationType::USER_INITIATED, | 
|   820       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   856       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   821   [session_controller() commitPendingItem]; |   857   navigation_manager()->CommitPendingItem(); | 
|   822   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   858   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   823   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   859   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   824       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |   860       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
|   825       ui::PAGE_TRANSITION_TYPED)); |   861       ui::PAGE_TRANSITION_TYPED)); | 
|   826   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   862   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   827  |   863  | 
|   828   navigation_manager()->AddPendingItem( |   864   navigation_manager()->AddPendingItem( | 
|   829       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, |   865       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
|   830       web::NavigationInitiationType::USER_INITIATED, |   866       web::NavigationInitiationType::USER_INITIATED, | 
|   831       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   867       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   832   EXPECT_FALSE(navigation_manager()->GetPendingItem()); |   868   EXPECT_FALSE(navigation_manager()->GetPendingItem()); | 
|   833   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   869   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   834 } |   870 } | 
|   835  |   871  | 
|   836 // Tests that when the last committed item exists, adding a pending item with |   872 // Tests that when the last committed item exists, adding a pending item with | 
|   837 // the same URL succeeds if the user agent override option is DESKTOP. |   873 // the same URL succeeds if the user agent override option is DESKTOP. | 
|   838 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { |   874 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { | 
|   839   GURL existing_url = GURL("http://www.existing.com"); |   875   GURL existing_url = GURL("http://www.existing.com"); | 
|   840   navigation_manager()->AddPendingItem( |   876   navigation_manager()->AddPendingItem( | 
|   841       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   877       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   842       web::NavigationInitiationType::USER_INITIATED, |   878       web::NavigationInitiationType::USER_INITIATED, | 
|   843       web::NavigationManager::UserAgentOverrideOption::MOBILE); |   879       web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
|   844   [session_controller() commitPendingItem]; |   880   navigation_manager()->CommitPendingItem(); | 
|   845   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   881   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   846   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   882   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   847       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |   883       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
|   848       ui::PAGE_TRANSITION_TYPED)); |   884       ui::PAGE_TRANSITION_TYPED)); | 
|   849   EXPECT_EQ(web::UserAgentType::MOBILE, |   885   EXPECT_EQ(web::UserAgentType::MOBILE, | 
|   850             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |   886             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   851   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   887   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   852  |   888  | 
|   853   navigation_manager()->AddPendingItem( |   889   navigation_manager()->AddPendingItem( | 
|   854       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, |   890       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
|   855       web::NavigationInitiationType::USER_INITIATED, |   891       web::NavigationInitiationType::USER_INITIATED, | 
|   856       web::NavigationManager::UserAgentOverrideOption::DESKTOP); |   892       web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
|   857  |   893  | 
|   858   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   894   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   859   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   895   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   860       navigation_manager()->GetPendingItem()->GetTransitionType(), |   896       navigation_manager()->GetPendingItem()->GetTransitionType(), | 
|   861       ui::PAGE_TRANSITION_RELOAD)); |   897       ui::PAGE_TRANSITION_RELOAD)); | 
|   862   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   898   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   863 } |   899 } | 
|   864  |   900  | 
|   865 // Tests that when the last committed item exists, adding a pending item with |   901 // Tests that when the last committed item exists, adding a pending item with | 
|   866 // the same URL succeeds if the user agent override option is MOBILE. |   902 // the same URL succeeds if the user agent override option is MOBILE. | 
|   867 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { |   903 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { | 
|   868   GURL existing_url = GURL("http://www.existing.com"); |   904   GURL existing_url = GURL("http://www.existing.com"); | 
|   869   navigation_manager()->AddPendingItem( |   905   navigation_manager()->AddPendingItem( | 
|   870       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, |   906       existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   871       web::NavigationInitiationType::USER_INITIATED, |   907       web::NavigationInitiationType::USER_INITIATED, | 
|   872       web::NavigationManager::UserAgentOverrideOption::DESKTOP); |   908       web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
|   873   [session_controller() commitPendingItem]; |   909   navigation_manager()->CommitPendingItem(); | 
|   874   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   910   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   875   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   911   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   876       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), |   912       navigation_manager()->GetLastCommittedItem()->GetTransitionType(), | 
|   877       ui::PAGE_TRANSITION_TYPED)); |   913       ui::PAGE_TRANSITION_TYPED)); | 
|   878   EXPECT_EQ(web::UserAgentType::DESKTOP, |   914   EXPECT_EQ(web::UserAgentType::DESKTOP, | 
|   879             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |   915             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   880   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   916   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   881  |   917  | 
|   882   navigation_manager()->AddPendingItem( |   918   navigation_manager()->AddPendingItem( | 
|   883       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, |   919       existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, | 
|   884       web::NavigationInitiationType::USER_INITIATED, |   920       web::NavigationInitiationType::USER_INITIATED, | 
|   885       web::NavigationManager::UserAgentOverrideOption::MOBILE); |   921       web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
|   886   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   922   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   887   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |   923   EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 
|   888       navigation_manager()->GetPendingItem()->GetTransitionType(), |   924       navigation_manager()->GetPendingItem()->GetTransitionType(), | 
|   889       ui::PAGE_TRANSITION_RELOAD)); |   925       ui::PAGE_TRANSITION_RELOAD)); | 
|   890   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   926   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   891 } |   927 } | 
|   892  |   928  | 
|   893 // Tests that desktop user agent can be enforced to use for next pending item |   929 // Tests that desktop user agent can be enforced to use for next pending item | 
|   894 // when UserAgentOverrideOption is DESKTOP. |   930 // when UserAgentOverrideOption is DESKTOP. | 
|   895 TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) { |   931 TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) { | 
|   896   navigation_manager()->AddPendingItem( |   932   navigation_manager()->AddPendingItem( | 
|   897       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   933       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   898       web::NavigationInitiationType::USER_INITIATED, |   934       web::NavigationInitiationType::USER_INITIATED, | 
|   899       web::NavigationManager::UserAgentOverrideOption::MOBILE); |   935       web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
|   900   [session_controller() commitPendingItem]; |   936   navigation_manager()->CommitPendingItem(); | 
|   901   NavigationItem* last_committed_item = |   937   NavigationItem* last_committed_item = | 
|   902       navigation_manager()->GetLastCommittedItem(); |   938       navigation_manager()->GetLastCommittedItem(); | 
|   903   EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); |   939   EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); | 
|   904   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   940   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   905  |   941  | 
|   906   navigation_manager()->AddPendingItem( |   942   navigation_manager()->AddPendingItem( | 
|   907       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   943       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   908       web::NavigationInitiationType::USER_INITIATED, |   944       web::NavigationInitiationType::USER_INITIATED, | 
|   909       web::NavigationManager::UserAgentOverrideOption::DESKTOP); |   945       web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
|   910   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   946   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   911   EXPECT_EQ(UserAgentType::DESKTOP, |   947   EXPECT_EQ(UserAgentType::DESKTOP, | 
|   912             navigation_manager()->GetPendingItem()->GetUserAgentType()); |   948             navigation_manager()->GetPendingItem()->GetUserAgentType()); | 
|   913   EXPECT_EQ(1, navigation_manager()->GetItemCount()); |   949   EXPECT_EQ(1, navigation_manager()->GetItemCount()); | 
|   914 } |   950 } | 
|   915  |   951  | 
|   916 // Tests that mobile user agent can be enforced to use for next pending item |   952 // Tests that mobile user agent can be enforced to use for next pending item | 
|   917 // when UserAgentOverrideOption is MOBILE. |   953 // when UserAgentOverrideOption is MOBILE. | 
|   918 TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) { |   954 TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) { | 
|   919   navigation_manager()->AddPendingItem( |   955   navigation_manager()->AddPendingItem( | 
|   920       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   956       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   921       web::NavigationInitiationType::USER_INITIATED, |   957       web::NavigationInitiationType::USER_INITIATED, | 
|   922       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   958       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   923   [session_controller() commitPendingItem]; |   959   navigation_manager()->CommitPendingItem(); | 
|   924   NavigationItem* last_committed_item = |   960   NavigationItem* last_committed_item = | 
|   925       navigation_manager()->GetLastCommittedItem(); |   961       navigation_manager()->GetLastCommittedItem(); | 
|   926   last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); |   962   last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); | 
|   927   EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType()); |   963   EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType()); | 
|   928  |   964  | 
|   929   navigation_manager()->AddPendingItem( |   965   navigation_manager()->AddPendingItem( | 
|   930       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   966       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   931       web::NavigationInitiationType::USER_INITIATED, |   967       web::NavigationInitiationType::USER_INITIATED, | 
|   932       web::NavigationManager::UserAgentOverrideOption::MOBILE); |   968       web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
|   933   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |   969   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|   934   EXPECT_EQ(UserAgentType::MOBILE, |   970   EXPECT_EQ(UserAgentType::MOBILE, | 
|   935             navigation_manager()->GetPendingItem()->GetUserAgentType()); |   971             navigation_manager()->GetPendingItem()->GetUserAgentType()); | 
|   936 } |   972 } | 
|   937  |   973  | 
|   938 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent |   974 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent | 
|   939 // item when UserAgentOverrideOption is INHERIT |   975 // item when UserAgentOverrideOption is INHERIT | 
|   940 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { |   976 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { | 
|   941   navigation_manager()->AddPendingItem( |   977   navigation_manager()->AddPendingItem( | 
|   942       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   978       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   943       web::NavigationInitiationType::USER_INITIATED, |   979       web::NavigationInitiationType::USER_INITIATED, | 
|   944       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   980       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   945   [session_controller() commitPendingItem]; |   981   navigation_manager()->CommitPendingItem(); | 
|   946   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   982   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   947   EXPECT_EQ(web::UserAgentType::MOBILE, |   983   EXPECT_EQ(web::UserAgentType::MOBILE, | 
|   948             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |   984             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   949  |   985  | 
|   950   navigation_manager()->AddPendingItem( |   986   navigation_manager()->AddPendingItem( | 
|   951       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |   987       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   952       web::NavigationInitiationType::USER_INITIATED, |   988       web::NavigationInitiationType::USER_INITIATED, | 
|   953       web::NavigationManager::UserAgentOverrideOption::INHERIT); |   989       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   954   [session_controller() commitPendingItem]; |   990   navigation_manager()->CommitPendingItem(); | 
|   955   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |   991   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   956   EXPECT_EQ(web::UserAgentType::MOBILE, |   992   EXPECT_EQ(web::UserAgentType::MOBILE, | 
|   957             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |   993             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   958 } |   994 } | 
|   959  |   995  | 
|   960 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent |   996 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent | 
|   961 // item when UserAgentOverrideOption is INHERIT |   997 // item when UserAgentOverrideOption is INHERIT | 
|   962 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { |   998 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { | 
|   963   navigation_manager()->AddPendingItem( |   999   navigation_manager()->AddPendingItem( | 
|   964       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1000       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   965       web::NavigationInitiationType::USER_INITIATED, |  1001       web::NavigationInitiationType::USER_INITIATED, | 
|   966       web::NavigationManager::UserAgentOverrideOption::MOBILE); |  1002       web::NavigationManager::UserAgentOverrideOption::MOBILE); | 
|   967   [session_controller() commitPendingItem]; |  1003   navigation_manager()->CommitPendingItem(); | 
|   968   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1004   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   969   EXPECT_EQ(web::UserAgentType::MOBILE, |  1005   EXPECT_EQ(web::UserAgentType::MOBILE, | 
|   970             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |  1006             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   971  |  1007  | 
|   972   navigation_manager()->AddPendingItem( |  1008   navigation_manager()->AddPendingItem( | 
|   973       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1009       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   974       web::NavigationInitiationType::USER_INITIATED, |  1010       web::NavigationInitiationType::USER_INITIATED, | 
|   975       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1011       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   976   [session_controller() commitPendingItem]; |  1012   navigation_manager()->CommitPendingItem(); | 
|   977   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1013   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   978   EXPECT_EQ(web::UserAgentType::MOBILE, |  1014   EXPECT_EQ(web::UserAgentType::MOBILE, | 
|   979             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |  1015             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   980 } |  1016 } | 
|   981  |  1017  | 
|   982 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent |  1018 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent | 
|   983 // item when UserAgentOverrideOption is INHERIT |  1019 // item when UserAgentOverrideOption is INHERIT | 
|   984 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { |  1020 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { | 
|   985   navigation_manager()->AddPendingItem( |  1021   navigation_manager()->AddPendingItem( | 
|   986       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1022       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   987       web::NavigationInitiationType::USER_INITIATED, |  1023       web::NavigationInitiationType::USER_INITIATED, | 
|   988       web::NavigationManager::UserAgentOverrideOption::DESKTOP); |  1024       web::NavigationManager::UserAgentOverrideOption::DESKTOP); | 
|   989   [session_controller() commitPendingItem]; |  1025   navigation_manager()->CommitPendingItem(); | 
|   990   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1026   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|   991   EXPECT_EQ(web::UserAgentType::DESKTOP, |  1027   EXPECT_EQ(web::UserAgentType::DESKTOP, | 
|   992             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |  1028             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|   993  |  1029  | 
|   994   navigation_manager()->AddPendingItem( |  1030   navigation_manager()->AddPendingItem( | 
|   995       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1031       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|   996       web::NavigationInitiationType::USER_INITIATED, |  1032       web::NavigationInitiationType::USER_INITIATED, | 
|   997       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1033       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|   998   [session_controller() commitPendingItem]; |  1034   navigation_manager()->CommitPendingItem(); | 
|   999   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1035   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|  1000   EXPECT_EQ(web::UserAgentType::DESKTOP, |  1036   EXPECT_EQ(web::UserAgentType::DESKTOP, | 
|  1001             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); |  1037             navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); | 
|  1002 } |  1038 } | 
|  1003  |  1039  | 
|  1004 // Tests that the UserAgentType is propagated to subsequent NavigationItems if |  1040 // Tests that the UserAgentType is propagated to subsequent NavigationItems if | 
|  1005 // a native URL exists in between naviations. |  1041 // a native URL exists in between naviations. | 
|  1006 TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { |  1042 TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { | 
|  1007   // GURL::Replacements that will replace a GURL's scheme with the test native |  1043   // GURL::Replacements that will replace a GURL's scheme with the test native | 
|  1008   // scheme. |  1044   // scheme. | 
|  1009   GURL::Replacements native_scheme_replacement; |  1045   GURL::Replacements native_scheme_replacement; | 
|  1010   native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); |  1046   native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); | 
|  1011  |  1047  | 
|  1012   // Create two non-native navigations that are separated by a native one. |  1048   // Create two non-native navigations that are separated by a native one. | 
|  1013   navigation_manager()->AddPendingItem( |  1049   navigation_manager()->AddPendingItem( | 
|  1014       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1050       GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1015       web::NavigationInitiationType::USER_INITIATED, |  1051       web::NavigationInitiationType::USER_INITIATED, | 
|  1016       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1052       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1017   [session_controller() commitPendingItem]; |  1053   navigation_manager()->CommitPendingItem(); | 
|  1018   web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); |  1054   web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); | 
|  1019   ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); |  1055   ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); | 
|  1020   navigation_manager()->AddPendingItem( |  1056   navigation_manager()->AddPendingItem( | 
|  1021       item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), |  1057       item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 
|  1022       ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, |  1058       ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 
|  1023       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1059       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1024   [session_controller() commitPendingItem]; |  1060   navigation_manager()->CommitPendingItem(); | 
|  1025   web::NavigationItem* native_item1 = |  1061   web::NavigationItem* native_item1 = | 
|  1026       navigation_manager()->GetLastCommittedItem(); |  1062       navigation_manager()->GetLastCommittedItem(); | 
|  1027   ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); |  1063   ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); | 
|  1028   navigation_manager()->AddPendingItem( |  1064   navigation_manager()->AddPendingItem( | 
|  1029       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1065       GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1030       web::NavigationInitiationType::USER_INITIATED, |  1066       web::NavigationInitiationType::USER_INITIATED, | 
|  1031       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1067       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1032   [session_controller() commitPendingItem]; |  1068   navigation_manager()->CommitPendingItem(); | 
|  1033   web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); |  1069   web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); | 
|  1034  |  1070  | 
|  1035   // Verify that |item1|'s UserAgentType is propagated to |item2|. |  1071   // Verify that |item1|'s UserAgentType is propagated to |item2|. | 
|  1036   EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); |  1072   EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); | 
|  1037  |  1073  | 
|  1038   // Update |item2|'s UA type to DESKTOP and add a third non-native navigation, |  1074   // Update |item2|'s UA type to DESKTOP and add a third non-native navigation, | 
|  1039   // once again separated by a native one. |  1075   // once again separated by a native one. | 
|  1040   item2->SetUserAgentType(web::UserAgentType::DESKTOP); |  1076   item2->SetUserAgentType(web::UserAgentType::DESKTOP); | 
|  1041   ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); |  1077   ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); | 
|  1042   navigation_manager()->AddPendingItem( |  1078   navigation_manager()->AddPendingItem( | 
|  1043       item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), |  1079       item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), | 
|  1044       ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, |  1080       ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED, | 
|  1045       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1081       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1046   [session_controller() commitPendingItem]; |  1082   navigation_manager()->CommitPendingItem(); | 
|  1047   web::NavigationItem* native_item2 = |  1083   web::NavigationItem* native_item2 = | 
|  1048       navigation_manager()->GetLastCommittedItem(); |  1084       navigation_manager()->GetLastCommittedItem(); | 
|  1049   ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); |  1085   ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); | 
|  1050   navigation_manager()->AddPendingItem( |  1086   navigation_manager()->AddPendingItem( | 
|  1051       GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1087       GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1052       web::NavigationInitiationType::USER_INITIATED, |  1088       web::NavigationInitiationType::USER_INITIATED, | 
|  1053       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1089       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1054   [session_controller() commitPendingItem]; |  1090   navigation_manager()->CommitPendingItem(); | 
|  1055   web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); |  1091   web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); | 
|  1056  |  1092  | 
|  1057   // Verify that |item2|'s UserAgentType is propagated to |item3|. |  1093   // Verify that |item2|'s UserAgentType is propagated to |item3|. | 
|  1058   EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); |  1094   EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); | 
|  1059 } |  1095 } | 
|  1060  |  1096  | 
|  1061 // Tests that adding transient item for a pending item with mobile user agent |  1097 // Tests that adding transient item for a pending item with mobile user agent | 
|  1062 // type results in a transient item with mobile user agent type. |  1098 // type results in a transient item with mobile user agent type. | 
|  1063 TEST_P(NavigationManagerTest, AddTransientItemForMobilePendingItem) { |  1099 TEST_P(NavigationManagerTest, AddTransientItemForMobilePendingItem) { | 
|  1064   navigation_manager()->AddPendingItem( |  1100   navigation_manager()->AddPendingItem( | 
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1148             navigation_manager()->GetPendingItem()->GetURL()); |  1184             navigation_manager()->GetPendingItem()->GetURL()); | 
|  1149 } |  1185 } | 
|  1150  |  1186  | 
|  1151 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of |  1187 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 
|  1152 // the last committed item unchanged when there is no pending item. |  1188 // the last committed item unchanged when there is no pending item. | 
|  1153 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { |  1189 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { | 
|  1154   navigation_manager()->AddPendingItem( |  1190   navigation_manager()->AddPendingItem( | 
|  1155       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1191       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1156       web::NavigationInitiationType::USER_INITIATED, |  1192       web::NavigationInitiationType::USER_INITIATED, | 
|  1157       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1193       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1158   [session_controller() commitPendingItem]; |  1194   navigation_manager()->CommitPendingItem(); | 
|  1159  |  1195  | 
|  1160   GURL url_before_reload = GURL("http://www.url.com/1"); |  1196   GURL url_before_reload = GURL("http://www.url.com/1"); | 
|  1161   navigation_manager()->AddPendingItem( |  1197   navigation_manager()->AddPendingItem( | 
|  1162       url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, |  1198       url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1163       web::NavigationInitiationType::USER_INITIATED, |  1199       web::NavigationInitiationType::USER_INITIATED, | 
|  1164       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1200       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1165   [session_controller() commitPendingItem]; |  1201   navigation_manager()->CommitPendingItem(); | 
|  1166  |  1202  | 
|  1167   navigation_manager()->Reload(web::ReloadType::NORMAL, |  1203   navigation_manager()->Reload(web::ReloadType::NORMAL, | 
|  1168                                false /* check_for_repost */); |  1204                                false /* check_for_repost */); | 
|  1169   EXPECT_TRUE(navigation_manager_delegate().reload_called()); |  1205   EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
|  1170  |  1206  | 
|  1171   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1207   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|  1172   EXPECT_EQ(url_before_reload, |  1208   EXPECT_EQ(url_before_reload, | 
|  1173             navigation_manager()->GetLastCommittedItem()->GetURL()); |  1209             navigation_manager()->GetLastCommittedItem()->GetURL()); | 
|  1174 } |  1210 } | 
|  1175  |  1211  | 
|  1176 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of |  1212 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of | 
|  1177 // the last committed item unchanged when there is no pending item, but there |  1213 // the last committed item unchanged when there is no pending item, but there | 
|  1178 // forward items after last committed item. |  1214 // forward items after last committed item. | 
|  1179 TEST_P(NavigationManagerTest, |  1215 TEST_P(NavigationManagerTest, | 
|  1180        ReloadLastCommittedItemWithNormalTypeWithForwardItems) { |  1216        ReloadLastCommittedItemWithNormalTypeWithForwardItems) { | 
|  1181   navigation_manager()->AddPendingItem( |  1217   navigation_manager()->AddPendingItem( | 
|  1182       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1218       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1183       web::NavigationInitiationType::USER_INITIATED, |  1219       web::NavigationInitiationType::USER_INITIATED, | 
|  1184       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1220       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1185   [session_controller() commitPendingItem]; |  1221   navigation_manager()->CommitPendingItem(); | 
|  1186  |  1222  | 
|  1187   GURL url_before_reload = GURL("http://www.url.com/1"); |  1223   GURL url_before_reload = GURL("http://www.url.com/1"); | 
|  1188   navigation_manager()->AddPendingItem( |  1224   navigation_manager()->AddPendingItem( | 
|  1189       url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, |  1225       url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1190       web::NavigationInitiationType::USER_INITIATED, |  1226       web::NavigationInitiationType::USER_INITIATED, | 
|  1191       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1227       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1192   [session_controller() commitPendingItem]; |  1228   navigation_manager()->CommitPendingItem(); | 
|  1193  |  1229  | 
|  1194   navigation_manager()->AddPendingItem( |  1230   navigation_manager()->AddPendingItem( | 
|  1195       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1231       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1196       web::NavigationInitiationType::USER_INITIATED, |  1232       web::NavigationInitiationType::USER_INITIATED, | 
|  1197       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1233       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1198   [session_controller() commitPendingItem]; |  1234   navigation_manager()->CommitPendingItem(); | 
|  1199  |  1235  | 
|  1200   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |  1236   navigation_manager()->GoToIndex(1); | 
|  1201   EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |  1237   EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
|  1202  |  1238  | 
|  1203   navigation_manager()->Reload(web::ReloadType::NORMAL, |  1239   navigation_manager()->Reload(web::ReloadType::NORMAL, | 
|  1204                                false /* check_for_repost */); |  1240                                false /* check_for_repost */); | 
|  1205   EXPECT_TRUE(navigation_manager_delegate().reload_called()); |  1241   EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
|  1206  |  1242  | 
|  1207   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1243   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|  1208   EXPECT_EQ(url_before_reload, |  1244   EXPECT_EQ(url_before_reload, | 
|  1209             navigation_manager()->GetLastCommittedItem()->GetURL()); |  1245             navigation_manager()->GetLastCommittedItem()->GetURL()); | 
|  1210 } |  1246 } | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1270 } |  1306 } | 
|  1271  |  1307  | 
|  1272 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL |  1308 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 
|  1273 // changes the last committed item's url to its original request url when there |  1309 // changes the last committed item's url to its original request url when there | 
|  1274 // is no pending item. |  1310 // is no pending item. | 
|  1275 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { |  1311 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { | 
|  1276   navigation_manager()->AddPendingItem( |  1312   navigation_manager()->AddPendingItem( | 
|  1277       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1313       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1278       web::NavigationInitiationType::USER_INITIATED, |  1314       web::NavigationInitiationType::USER_INITIATED, | 
|  1279       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1315       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1280   [session_controller() commitPendingItem]; |  1316   navigation_manager()->CommitPendingItem(); | 
|  1281  |  1317  | 
|  1282   navigation_manager()->AddPendingItem( |  1318   navigation_manager()->AddPendingItem( | 
|  1283       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1319       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1284       web::NavigationInitiationType::USER_INITIATED, |  1320       web::NavigationInitiationType::USER_INITIATED, | 
|  1285       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1321       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1286   GURL expected_original_url = GURL("http://www.url.com/1/original"); |  1322   GURL expected_original_url = GURL("http://www.url.com/1/original"); | 
|  1287   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |  1323   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|  1288   navigation_manager()->GetPendingItem()->SetOriginalRequestURL( |  1324   navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 
|  1289       expected_original_url); |  1325       expected_original_url); | 
|  1290   [session_controller() commitPendingItem]; |  1326   navigation_manager()->CommitPendingItem(); | 
|  1291  |  1327  | 
|  1292   navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, |  1328   navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 
|  1293                                false /* check_for_repost */); |  1329                                false /* check_for_repost */); | 
|  1294   EXPECT_TRUE(navigation_manager_delegate().reload_called()); |  1330   EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
|  1295  |  1331  | 
|  1296   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1332   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|  1297   EXPECT_EQ(expected_original_url, |  1333   EXPECT_EQ(expected_original_url, | 
|  1298             navigation_manager()->GetLastCommittedItem()->GetURL()); |  1334             navigation_manager()->GetLastCommittedItem()->GetURL()); | 
|  1299 } |  1335 } | 
|  1300  |  1336  | 
|  1301 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL |  1337 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL | 
|  1302 // changes the last committed item's url to its original request url when there |  1338 // changes the last committed item's url to its original request url when there | 
|  1303 // is no pending item, but there are forward items after last committed item. |  1339 // is no pending item, but there are forward items after last committed item. | 
|  1304 TEST_P(NavigationManagerTest, |  1340 TEST_P(NavigationManagerTest, | 
|  1305        ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { |  1341        ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { | 
|  1306   navigation_manager()->AddPendingItem( |  1342   navigation_manager()->AddPendingItem( | 
|  1307       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1343       GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1308       web::NavigationInitiationType::USER_INITIATED, |  1344       web::NavigationInitiationType::USER_INITIATED, | 
|  1309       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1345       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1310   [session_controller() commitPendingItem]; |  1346   navigation_manager()->CommitPendingItem(); | 
|  1311  |  1347  | 
|  1312   navigation_manager()->AddPendingItem( |  1348   navigation_manager()->AddPendingItem( | 
|  1313       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1349       GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1314       web::NavigationInitiationType::USER_INITIATED, |  1350       web::NavigationInitiationType::USER_INITIATED, | 
|  1315       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1351       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1316   GURL expected_original_url = GURL("http://www.url.com/1/original"); |  1352   GURL expected_original_url = GURL("http://www.url.com/1/original"); | 
|  1317   ASSERT_TRUE(navigation_manager()->GetPendingItem()); |  1353   ASSERT_TRUE(navigation_manager()->GetPendingItem()); | 
|  1318   navigation_manager()->GetPendingItem()->SetOriginalRequestURL( |  1354   navigation_manager()->GetPendingItem()->SetOriginalRequestURL( | 
|  1319       expected_original_url); |  1355       expected_original_url); | 
|  1320   [session_controller() commitPendingItem]; |  1356   navigation_manager()->CommitPendingItem(); | 
|  1321  |  1357  | 
|  1322   navigation_manager()->AddPendingItem( |  1358   navigation_manager()->AddPendingItem( | 
|  1323       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, |  1359       GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, | 
|  1324       web::NavigationInitiationType::USER_INITIATED, |  1360       web::NavigationInitiationType::USER_INITIATED, | 
|  1325       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1361       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1326   [session_controller() commitPendingItem]; |  1362   navigation_manager()->CommitPendingItem(); | 
|  1327  |  1363  | 
|  1328   [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; |  1364   navigation_manager()->GoToIndex(1); | 
|  1329   EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); |  1365   EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); | 
|  1330  |  1366  | 
|  1331   navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, |  1367   navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, | 
|  1332                                false /* check_for_repost */); |  1368                                false /* check_for_repost */); | 
|  1333   EXPECT_TRUE(navigation_manager_delegate().reload_called()); |  1369   EXPECT_TRUE(navigation_manager_delegate().reload_called()); | 
|  1334  |  1370  | 
|  1335   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); |  1371   ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); | 
|  1336   EXPECT_EQ(expected_original_url, |  1372   EXPECT_EQ(expected_original_url, | 
|  1337             navigation_manager()->GetLastCommittedItem()->GetURL()); |  1373             navigation_manager()->GetLastCommittedItem()->GetURL()); | 
|  1338 } |  1374 } | 
|  1339  |  1375  | 
|  1340 // Tests that app-specific URLs are not rewritten for renderer-initiated loads |  1376 // Tests that app-specific URLs are not rewritten for renderer-initiated loads | 
|  1341 // unless requested by a page with app-specific url. |  1377 // unless requested by a page with app-specific url. | 
|  1342 TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { |  1378 TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) { | 
|  1343   // URL should not be rewritten as there is no committed URL. |  1379   // URL should not be rewritten as there is no committed URL. | 
|  1344   GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize()); |  1380   GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize()); | 
|  1345   navigation_manager()->AddPendingItem( |  1381   navigation_manager()->AddPendingItem( | 
|  1346       url1, Referrer(), ui::PAGE_TRANSITION_LINK, |  1382       url1, Referrer(), ui::PAGE_TRANSITION_LINK, | 
|  1347       web::NavigationInitiationType::RENDERER_INITIATED, |  1383       web::NavigationInitiationType::RENDERER_INITIATED, | 
|  1348       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1384       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1349   EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); |  1385   EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); | 
|  1350  |  1386  | 
|  1351   // URL should not be rewritten because last committed URL is not app-specific. |  1387   // URL should not be rewritten because last committed URL is not app-specific. | 
|  1352   [session_controller() commitPendingItem]; |  1388   navigation_manager()->CommitPendingItem(); | 
|  1353   GURL url2(url::SchemeHostPort(kSchemeToRewrite, "test2", 0).Serialize()); |  1389   GURL url2(url::SchemeHostPort(kSchemeToRewrite, "test2", 0).Serialize()); | 
|  1354   navigation_manager()->AddPendingItem( |  1390   navigation_manager()->AddPendingItem( | 
|  1355       url2, Referrer(), ui::PAGE_TRANSITION_LINK, |  1391       url2, Referrer(), ui::PAGE_TRANSITION_LINK, | 
|  1356       web::NavigationInitiationType::RENDERER_INITIATED, |  1392       web::NavigationInitiationType::RENDERER_INITIATED, | 
|  1357       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1393       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1358   EXPECT_EQ(url2, navigation_manager()->GetPendingItem()->GetURL()); |  1394   EXPECT_EQ(url2, navigation_manager()->GetPendingItem()->GetURL()); | 
|  1359  |  1395  | 
|  1360   // URL should be rewritten for user initiated navigations. |  1396   // URL should be rewritten for user initiated navigations. | 
|  1361   GURL url3(url::SchemeHostPort(kSchemeToRewrite, "test3", 0).Serialize()); |  1397   GURL url3(url::SchemeHostPort(kSchemeToRewrite, "test3", 0).Serialize()); | 
|  1362   navigation_manager()->AddPendingItem( |  1398   navigation_manager()->AddPendingItem( | 
|  1363       url3, Referrer(), ui::PAGE_TRANSITION_LINK, |  1399       url3, Referrer(), ui::PAGE_TRANSITION_LINK, | 
|  1364       web::NavigationInitiationType::USER_INITIATED, |  1400       web::NavigationInitiationType::USER_INITIATED, | 
|  1365       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1401       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1366   GURL rewritten_url3( |  1402   GURL rewritten_url3( | 
|  1367       url::SchemeHostPort(kTestWebUIScheme, "test3", 0).Serialize()); |  1403       url::SchemeHostPort(kTestWebUIScheme, "test3", 0).Serialize()); | 
|  1368   EXPECT_EQ(rewritten_url3, navigation_manager()->GetPendingItem()->GetURL()); |  1404   EXPECT_EQ(rewritten_url3, navigation_manager()->GetPendingItem()->GetURL()); | 
|  1369  |  1405  | 
|  1370   // URL should be rewritten because last committed URL is app-specific. |  1406   // URL should be rewritten because last committed URL is app-specific. | 
|  1371   [session_controller() commitPendingItem]; |  1407   navigation_manager()->CommitPendingItem(); | 
|  1372   GURL url4(url::SchemeHostPort(kSchemeToRewrite, "test4", 0).Serialize()); |  1408   GURL url4(url::SchemeHostPort(kSchemeToRewrite, "test4", 0).Serialize()); | 
|  1373   navigation_manager()->AddPendingItem( |  1409   navigation_manager()->AddPendingItem( | 
|  1374       url4, Referrer(), ui::PAGE_TRANSITION_LINK, |  1410       url4, Referrer(), ui::PAGE_TRANSITION_LINK, | 
|  1375       web::NavigationInitiationType::RENDERER_INITIATED, |  1411       web::NavigationInitiationType::RENDERER_INITIATED, | 
|  1376       web::NavigationManager::UserAgentOverrideOption::INHERIT); |  1412       web::NavigationManager::UserAgentOverrideOption::INHERIT); | 
|  1377   GURL rewritten_url4( |  1413   GURL rewritten_url4( | 
|  1378       url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize()); |  1414       url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize()); | 
|  1379   EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL()); |  1415   EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL()); | 
|  1380 } |  1416 } | 
|  1381  |  1417  | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
|  1399       web::NavigationItem::Create(); |  1435       web::NavigationItem::Create(); | 
|  1400   // Verify GetIndexOfItem() results. |  1436   // Verify GetIndexOfItem() results. | 
|  1401   EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); |  1437   EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); | 
|  1402   EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); |  1438   EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); | 
|  1403   EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); |  1439   EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); | 
|  1404 } |  1440 } | 
|  1405  |  1441  | 
|  1406 INSTANTIATE_TEST_CASE_P( |  1442 INSTANTIATE_TEST_CASE_P( | 
|  1407     ProgrammaticNavigationManagerTest, |  1443     ProgrammaticNavigationManagerTest, | 
|  1408     NavigationManagerTest, |  1444     NavigationManagerTest, | 
|  1409     ::testing::Values(true /* test_legacy_navigation_manager */)); |  1445     ::testing::Values(NavigationManagerChoice::TEST_LEGACY_NAVIGATION_MANAGER)); | 
|  1410  |  1446  | 
|  1411 }  // namespace web |  1447 }  // namespace web | 
| OLD | NEW |