Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Side by Side Diff: ios/web/navigation/navigation_manager_impl_unittest.mm

Issue 2944093002: Extract NavigationManagerImpl interface for navigation experiment. (Closed)
Patch Set: Patch for landing Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/navigation_manager_delegate.h" 11 #import "ios/web/navigation/navigation_manager_delegate.h"
11 #include "ios/web/public/navigation_item.h" 12 #include "ios/web/public/navigation_item.h"
12 #include "ios/web/public/test/fakes/test_browser_state.h" 13 #include "ios/web/public/test/fakes/test_browser_state.h"
13 #include "ios/web/test/test_url_constants.h" 14 #include "ios/web/test/test_url_constants.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 #include "testing/platform_test.h" 16 #include "testing/platform_test.h"
16 #include "url/scheme_host_port.h" 17 #include "url/scheme_host_port.h"
17 #include "url/url_util.h" 18 #include "url/url_util.h"
18 19
19 #if !defined(__has_feature) || !__has_feature(objc_arc) 20 #if !defined(__has_feature) || !__has_feature(objc_arc)
(...skipping 29 matching lines...) Expand all
49 void Reload() override { reload_called_ = true; } 50 void Reload() override { reload_called_ = true; }
50 void OnNavigationItemsPruned(size_t pruned_item_count) override {} 51 void OnNavigationItemsPruned(size_t pruned_item_count) override {}
51 void OnNavigationItemChanged() override {} 52 void OnNavigationItemChanged() override {}
52 void OnNavigationItemCommitted(const LoadCommittedDetails&) override {} 53 void OnNavigationItemCommitted(const LoadCommittedDetails&) override {}
53 WebState* GetWebState() override { return nullptr; } 54 WebState* GetWebState() override { return nullptr; }
54 55
55 bool reload_called_ = false; 56 bool reload_called_ = false;
56 }; 57 };
57 } // namespace 58 } // namespace
58 59
59 // Test fixture for NavigationManagerImpl testing. 60 // Programmatic test fixture for NavigationManagerImpl testing.
60 class NavigationManagerTest : public PlatformTest { 61 // GetParam() chooses whether to run tests on LegacyNavigationManagerImpl or
62 // (the soon-to-be-implemented) WKBasedNavigationManagerImpl.
63 // TODO(crbug.com/734150): cleanup the LegacyNavigationManagerImpl use case.
64 class NavigationManagerTest : public PlatformTest,
65 public ::testing::WithParamInterface<bool> {
61 protected: 66 protected:
62 NavigationManagerTest() : manager_(new NavigationManagerImpl()) { 67 NavigationManagerTest() {
68 bool test_legacy_navigation_manager = GetParam();
69 if (test_legacy_navigation_manager) {
70 manager_.reset(new LegacyNavigationManagerImpl);
71 } else {
72 DCHECK(false) << "Not implemented.";
73 }
63 // Setup rewriter. 74 // Setup rewriter.
64 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter); 75 BrowserURLRewriter::GetInstance()->AddURLRewriter(UrlRewriter);
65 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT); 76 url::AddStandardScheme(kSchemeToRewrite, url::SCHEME_WITHOUT_PORT);
66 77
67 manager_->SetDelegate(&delegate_); 78 manager_->SetDelegate(&delegate_);
68 manager_->SetBrowserState(&browser_state_); 79 manager_->SetBrowserState(&browser_state_);
69 controller_ = 80 controller_ =
70 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]; 81 [[CRWSessionController alloc] initWithBrowserState:&browser_state_];
71 manager_->SetSessionController(controller_); 82 manager_->SetSessionController(controller_);
72 } 83 }
73 CRWSessionController* session_controller() { return controller_; } 84 CRWSessionController* session_controller() { return controller_; }
74 NavigationManagerImpl* navigation_manager() { return manager_.get(); } 85 NavigationManagerImpl* navigation_manager() { return manager_.get(); }
86
75 TestNavigationManagerDelegate navigation_manager_delegate() { 87 TestNavigationManagerDelegate navigation_manager_delegate() {
76 return delegate_; 88 return delegate_;
77 } 89 }
78 90
79 private: 91 private:
80 TestBrowserState browser_state_; 92 TestBrowserState browser_state_;
81 TestNavigationManagerDelegate delegate_; 93 TestNavigationManagerDelegate delegate_;
82 std::unique_ptr<NavigationManagerImpl> manager_; 94 std::unique_ptr<NavigationManagerImpl> manager_;
83 CRWSessionController* controller_; 95 CRWSessionController* controller_;
84 }; 96 };
85 97
86 // Tests state of an empty navigation manager. 98 // Tests state of an empty navigation manager.
87 TEST_F(NavigationManagerTest, EmptyManager) { 99 TEST_P(NavigationManagerTest, EmptyManager) {
88 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 100 EXPECT_EQ(0, navigation_manager()->GetItemCount());
89 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); 101 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex());
90 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); 102 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex());
91 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 103 EXPECT_FALSE(navigation_manager()->GetPendingItem());
92 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 104 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
93 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); 105 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0));
94 } 106 }
95 107
96 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. 108 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry.
97 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { 109 TEST_P(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) {
98 navigation_manager()->AddPendingItem( 110 navigation_manager()->AddPendingItem(
99 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 111 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
100 web::NavigationInitiationType::USER_INITIATED, 112 web::NavigationInitiationType::USER_INITIATED,
101 web::NavigationManager::UserAgentOverrideOption::INHERIT); 113 web::NavigationManager::UserAgentOverrideOption::INHERIT);
102 [session_controller() commitPendingItem]; 114 [session_controller() commitPendingItem];
103 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 115 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
104 } 116 }
105 117
106 // Tests that GetPendingItemIndex() returns current item index if there is a 118 // Tests that GetPendingItemIndex() returns current item index if there is a
107 // pending entry. 119 // pending entry.
108 TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { 120 TEST_P(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) {
109 navigation_manager()->AddPendingItem( 121 navigation_manager()->AddPendingItem(
110 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 122 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
111 web::NavigationInitiationType::USER_INITIATED, 123 web::NavigationInitiationType::USER_INITIATED,
112 web::NavigationManager::UserAgentOverrideOption::INHERIT); 124 web::NavigationManager::UserAgentOverrideOption::INHERIT);
113 [session_controller() commitPendingItem]; 125 [session_controller() commitPendingItem];
114 navigation_manager()->AddPendingItem( 126 navigation_manager()->AddPendingItem(
115 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 127 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
116 web::NavigationInitiationType::USER_INITIATED, 128 web::NavigationInitiationType::USER_INITIATED,
117 web::NavigationManager::UserAgentOverrideOption::INHERIT); 129 web::NavigationManager::UserAgentOverrideOption::INHERIT);
118 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 130 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
119 } 131 }
120 132
121 // Tests that GetPendingItemIndex() returns same index as was set by 133 // Tests that GetPendingItemIndex() returns same index as was set by
122 // -[CRWSessionController setPendingItemIndex:]. 134 // -[CRWSessionController setPendingItemIndex:].
123 TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { 135 TEST_P(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) {
124 navigation_manager()->AddPendingItem( 136 navigation_manager()->AddPendingItem(
125 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 137 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
126 web::NavigationInitiationType::USER_INITIATED, 138 web::NavigationInitiationType::USER_INITIATED,
127 web::NavigationManager::UserAgentOverrideOption::INHERIT); 139 web::NavigationManager::UserAgentOverrideOption::INHERIT);
128 [session_controller() commitPendingItem]; 140 [session_controller() commitPendingItem];
129 navigation_manager()->AddPendingItem( 141 navigation_manager()->AddPendingItem(
130 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 142 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
131 web::NavigationInitiationType::USER_INITIATED, 143 web::NavigationInitiationType::USER_INITIATED,
132 web::NavigationManager::UserAgentOverrideOption::INHERIT); 144 web::NavigationManager::UserAgentOverrideOption::INHERIT);
133 [session_controller() commitPendingItem]; 145 [session_controller() commitPendingItem];
134 146
135 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 147 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
136 [session_controller() setPendingItemIndex:0]; 148 [session_controller() setPendingItemIndex:0];
137 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 149 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
138 } 150 }
139 151
140 // Tests that going back or negative offset is not possible without a committed 152 // Tests that going back or negative offset is not possible without a committed
141 // item. 153 // item.
142 TEST_F(NavigationManagerTest, CanGoBackWithoutCommitedItem) { 154 TEST_P(NavigationManagerTest, CanGoBackWithoutCommitedItem) {
143 EXPECT_FALSE(navigation_manager()->CanGoBack()); 155 EXPECT_FALSE(navigation_manager()->CanGoBack());
144 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 156 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
145 } 157 }
146 158
147 // Tests that going back or negative offset is not possible if there is a 159 // Tests that going back or negative offset is not possible if there is a
148 // transient item, but not committed items. 160 // transient item, but not committed items.
149 TEST_F(NavigationManagerTest, CanGoBackWithTransientItem) { 161 TEST_P(NavigationManagerTest, CanGoBackWithTransientItem) {
150 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 162 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
151 163
152 EXPECT_FALSE(navigation_manager()->CanGoBack()); 164 EXPECT_FALSE(navigation_manager()->CanGoBack());
153 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 165 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
154 } 166 }
155 167
156 // Tests that going back or negative offset is possible if there is a transient 168 // Tests that going back or negative offset is possible if there is a transient
157 // item and at least one committed item. 169 // item and at least one committed item.
158 TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { 170 TEST_P(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) {
159 navigation_manager()->AddPendingItem( 171 navigation_manager()->AddPendingItem(
160 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 172 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
161 web::NavigationInitiationType::USER_INITIATED, 173 web::NavigationInitiationType::USER_INITIATED,
162 web::NavigationManager::UserAgentOverrideOption::INHERIT); 174 web::NavigationManager::UserAgentOverrideOption::INHERIT);
163 [session_controller() commitPendingItem]; 175 [session_controller() commitPendingItem];
164 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; 176 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")];
165 177
166 EXPECT_TRUE(navigation_manager()->CanGoBack()); 178 EXPECT_TRUE(navigation_manager()->CanGoBack());
167 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 179 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
168 } 180 }
169 181
170 // Tests that going back or negative offset is not possible if there is ony one 182 // Tests that going back or negative offset is not possible if there is ony one
171 // committed item and no transient item. 183 // committed item and no transient item.
172 TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { 184 TEST_P(NavigationManagerTest, CanGoBackWithSingleCommitedItem) {
173 navigation_manager()->AddPendingItem( 185 navigation_manager()->AddPendingItem(
174 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 186 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
175 web::NavigationInitiationType::USER_INITIATED, 187 web::NavigationInitiationType::USER_INITIATED,
176 web::NavigationManager::UserAgentOverrideOption::INHERIT); 188 web::NavigationManager::UserAgentOverrideOption::INHERIT);
177 [session_controller() commitPendingItem]; 189 [session_controller() commitPendingItem];
178 190
179 EXPECT_FALSE(navigation_manager()->CanGoBack()); 191 EXPECT_FALSE(navigation_manager()->CanGoBack());
180 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 192 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
181 } 193 }
182 194
183 // Tests going back possibility with multiple committed items. 195 // Tests going back possibility with multiple committed items.
184 TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { 196 TEST_P(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) {
185 navigation_manager()->AddPendingItem( 197 navigation_manager()->AddPendingItem(
186 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 198 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
187 web::NavigationInitiationType::USER_INITIATED, 199 web::NavigationInitiationType::USER_INITIATED,
188 web::NavigationManager::UserAgentOverrideOption::INHERIT); 200 web::NavigationManager::UserAgentOverrideOption::INHERIT);
189 [session_controller() commitPendingItem]; 201 [session_controller() commitPendingItem];
190 navigation_manager()->AddPendingItem( 202 navigation_manager()->AddPendingItem(
191 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 203 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
192 web::NavigationInitiationType::USER_INITIATED, 204 web::NavigationInitiationType::USER_INITIATED,
193 web::NavigationManager::UserAgentOverrideOption::INHERIT); 205 web::NavigationManager::UserAgentOverrideOption::INHERIT);
194 [session_controller() commitPendingItem]; 206 [session_controller() commitPendingItem];
(...skipping 14 matching lines...) Expand all
209 EXPECT_FALSE(navigation_manager()->CanGoBack()); 221 EXPECT_FALSE(navigation_manager()->CanGoBack());
210 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 222 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
211 223
212 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO]; 224 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
213 EXPECT_TRUE(navigation_manager()->CanGoBack()); 225 EXPECT_TRUE(navigation_manager()->CanGoBack());
214 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 226 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
215 } 227 }
216 228
217 // Tests that going forward or positive offset is not possible without a 229 // Tests that going forward or positive offset is not possible without a
218 // committed item. 230 // committed item.
219 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { 231 TEST_P(NavigationManagerTest, CanGoForwardWithoutCommitedItem) {
220 EXPECT_FALSE(navigation_manager()->CanGoForward()); 232 EXPECT_FALSE(navigation_manager()->CanGoForward());
221 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 233 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
222 } 234 }
223 235
224 // Tests that going forward or positive offset is not possible if there is ony 236 // Tests that going forward or positive offset is not possible if there is ony
225 // one committed item and no transient item. 237 // one committed item and no transient item.
226 TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { 238 TEST_P(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) {
227 navigation_manager()->AddPendingItem( 239 navigation_manager()->AddPendingItem(
228 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 240 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
229 web::NavigationInitiationType::USER_INITIATED, 241 web::NavigationInitiationType::USER_INITIATED,
230 web::NavigationManager::UserAgentOverrideOption::INHERIT); 242 web::NavigationManager::UserAgentOverrideOption::INHERIT);
231 [session_controller() commitPendingItem]; 243 [session_controller() commitPendingItem];
232 244
233 EXPECT_FALSE(navigation_manager()->CanGoForward()); 245 EXPECT_FALSE(navigation_manager()->CanGoForward());
234 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 246 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
235 } 247 }
236 248
237 // Tests going forward possibility with multiple committed items. 249 // Tests going forward possibility with multiple committed items.
238 TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { 250 TEST_P(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) {
239 navigation_manager()->AddPendingItem( 251 navigation_manager()->AddPendingItem(
240 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 252 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
241 web::NavigationInitiationType::USER_INITIATED, 253 web::NavigationInitiationType::USER_INITIATED,
242 web::NavigationManager::UserAgentOverrideOption::INHERIT); 254 web::NavigationManager::UserAgentOverrideOption::INHERIT);
243 [session_controller() commitPendingItem]; 255 [session_controller() commitPendingItem];
244 navigation_manager()->AddPendingItem( 256 navigation_manager()->AddPendingItem(
245 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 257 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
246 web::NavigationInitiationType::USER_INITIATED, 258 web::NavigationInitiationType::USER_INITIATED,
247 web::NavigationManager::UserAgentOverrideOption::INHERIT); 259 web::NavigationManager::UserAgentOverrideOption::INHERIT);
248 [session_controller() commitPendingItem]; 260 [session_controller() commitPendingItem];
(...skipping 19 matching lines...) Expand all
268 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 280 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
269 281
270 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO]; 282 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO];
271 EXPECT_FALSE(navigation_manager()->CanGoForward()); 283 EXPECT_FALSE(navigation_manager()->CanGoForward());
272 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 284 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
273 } 285 }
274 286
275 // Tests CanGoToOffset API for positive, negative and zero delta. Tested 287 // Tests CanGoToOffset API for positive, negative and zero delta. Tested
276 // navigation manager will have redirect entries to make sure they are 288 // navigation manager will have redirect entries to make sure they are
277 // appropriately skipped. 289 // appropriately skipped.
278 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { 290 TEST_P(NavigationManagerTest, OffsetsWithoutPendingIndex) {
279 navigation_manager()->AddPendingItem( 291 navigation_manager()->AddPendingItem(
280 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, 292 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
281 web::NavigationInitiationType::USER_INITIATED, 293 web::NavigationInitiationType::USER_INITIATED,
282 web::NavigationManager::UserAgentOverrideOption::INHERIT); 294 web::NavigationManager::UserAgentOverrideOption::INHERIT);
283 [session_controller() commitPendingItem]; 295 [session_controller() commitPendingItem];
284 navigation_manager()->AddPendingItem( 296 navigation_manager()->AddPendingItem(
285 GURL("http://www.url.com/redirect"), Referrer(), 297 GURL("http://www.url.com/redirect"), Referrer(),
286 ui::PAGE_TRANSITION_CLIENT_REDIRECT, 298 ui::PAGE_TRANSITION_CLIENT_REDIRECT,
287 web::NavigationInitiationType::USER_INITIATED, 299 web::NavigationInitiationType::USER_INITIATED,
288 web::NavigationManager::UserAgentOverrideOption::INHERIT); 300 web::NavigationManager::UserAgentOverrideOption::INHERIT);
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 507 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
496 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 508 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
497 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN)); 509 EXPECT_EQ(-2147483645, navigation_manager()->GetIndexForOffset(INT_MIN));
498 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); 510 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000));
499 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 511 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
500 } 512 }
501 513
502 // Tests offsets with pending transient entries (specifically gong back and 514 // Tests offsets with pending transient entries (specifically gong back and
503 // forward from a pending navigation entry that is added to the middle of the 515 // forward from a pending navigation entry that is added to the middle of the
504 // navigation stack). 516 // navigation stack).
505 TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) { 517 TEST_P(NavigationManagerTest, OffsetsWithPendingTransientEntry) {
506 // Create a transient item in the middle of the navigation stack and go back 518 // Create a transient item in the middle of the navigation stack and go back
507 // to it (pending index is 1, current index is 2). 519 // to it (pending index is 1, current index is 2).
508 navigation_manager()->AddPendingItem( 520 navigation_manager()->AddPendingItem(
509 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, 521 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
510 web::NavigationInitiationType::USER_INITIATED, 522 web::NavigationInitiationType::USER_INITIATED,
511 web::NavigationManager::UserAgentOverrideOption::INHERIT); 523 web::NavigationManager::UserAgentOverrideOption::INHERIT);
512 [session_controller() commitPendingItem]; 524 [session_controller() commitPendingItem];
513 navigation_manager()->AddPendingItem( 525 navigation_manager()->AddPendingItem(
514 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, 526 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
515 web::NavigationInitiationType::USER_INITIATED, 527 web::NavigationInitiationType::USER_INITIATED,
(...skipping 19 matching lines...) Expand all
535 [session_controller() setPendingItemIndex:1]; 547 [session_controller() setPendingItemIndex:1];
536 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 548 ASSERT_EQ(3, navigation_manager()->GetItemCount());
537 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); 549 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex());
538 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 550 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
539 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 551 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
540 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 552 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
541 } 553 }
542 554
543 // Tests that when given a pending item, adding a new pending item replaces the 555 // Tests that when given a pending item, adding a new pending item replaces the
544 // existing pending item if their URLs are different. 556 // existing pending item if their URLs are different.
545 TEST_F(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) { 557 TEST_P(NavigationManagerTest, ReplacePendingItemIfDiffernetURL) {
546 GURL existing_url = GURL("http://www.existing.com"); 558 GURL existing_url = GURL("http://www.existing.com");
547 navigation_manager()->AddPendingItem( 559 navigation_manager()->AddPendingItem(
548 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 560 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
549 web::NavigationInitiationType::USER_INITIATED, 561 web::NavigationInitiationType::USER_INITIATED,
550 web::NavigationManager::UserAgentOverrideOption::INHERIT); 562 web::NavigationManager::UserAgentOverrideOption::INHERIT);
551 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 563 ASSERT_TRUE(navigation_manager()->GetPendingItem());
552 EXPECT_EQ(existing_url, navigation_manager()->GetPendingItem()->GetURL()); 564 EXPECT_EQ(existing_url, navigation_manager()->GetPendingItem()->GetURL());
553 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 565 EXPECT_EQ(0, navigation_manager()->GetItemCount());
554 566
555 GURL new_url = GURL("http://www.new.com"); 567 GURL new_url = GURL("http://www.new.com");
556 navigation_manager()->AddPendingItem( 568 navigation_manager()->AddPendingItem(
557 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 569 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
558 web::NavigationInitiationType::USER_INITIATED, 570 web::NavigationInitiationType::USER_INITIATED,
559 web::NavigationManager::UserAgentOverrideOption::INHERIT); 571 web::NavigationManager::UserAgentOverrideOption::INHERIT);
560 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 572 ASSERT_TRUE(navigation_manager()->GetPendingItem());
561 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); 573 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL());
562 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 574 EXPECT_EQ(0, navigation_manager()->GetItemCount());
563 } 575 }
564 576
565 // Tests that when given a pending item, adding a new pending item with the same 577 // Tests that when given a pending item, adding a new pending item with the same
566 // URL doesn't replace the existing pending item if new pending item is not a 578 // URL doesn't replace the existing pending item if new pending item is not a
567 // form submission. 579 // form submission.
568 TEST_F(NavigationManagerTest, NotReplaceSameUrlPendingItemIfNotFormSubmission) { 580 TEST_P(NavigationManagerTest, NotReplaceSameUrlPendingItemIfNotFormSubmission) {
569 GURL existing_url = GURL("http://www.existing.com"); 581 GURL existing_url = GURL("http://www.existing.com");
570 navigation_manager()->AddPendingItem( 582 navigation_manager()->AddPendingItem(
571 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 583 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
572 web::NavigationInitiationType::USER_INITIATED, 584 web::NavigationInitiationType::USER_INITIATED,
573 web::NavigationManager::UserAgentOverrideOption::INHERIT); 585 web::NavigationManager::UserAgentOverrideOption::INHERIT);
574 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 586 ASSERT_TRUE(navigation_manager()->GetPendingItem());
575 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 587 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
576 navigation_manager()->GetPendingItem()->GetTransitionType(), 588 navigation_manager()->GetPendingItem()->GetTransitionType(),
577 ui::PAGE_TRANSITION_TYPED)); 589 ui::PAGE_TRANSITION_TYPED));
578 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 590 EXPECT_EQ(0, navigation_manager()->GetItemCount());
579 591
580 navigation_manager()->AddPendingItem( 592 navigation_manager()->AddPendingItem(
581 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, 593 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK,
582 web::NavigationInitiationType::USER_INITIATED, 594 web::NavigationInitiationType::USER_INITIATED,
583 web::NavigationManager::UserAgentOverrideOption::INHERIT); 595 web::NavigationManager::UserAgentOverrideOption::INHERIT);
584 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 596 ASSERT_TRUE(navigation_manager()->GetPendingItem());
585 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 597 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
586 navigation_manager()->GetPendingItem()->GetTransitionType(), 598 navigation_manager()->GetPendingItem()->GetTransitionType(),
587 ui::PAGE_TRANSITION_TYPED)); 599 ui::PAGE_TRANSITION_TYPED));
588 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 600 EXPECT_EQ(0, navigation_manager()->GetItemCount());
589 } 601 }
590 602
591 // Tests that when given a pending item, adding a new pending item with the same 603 // Tests that when given a pending item, adding a new pending item with the same
592 // URL replaces the existing pending item if new pending item is a form 604 // URL replaces the existing pending item if new pending item is a form
593 // submission while existing pending item is not. 605 // submission while existing pending item is not.
594 TEST_F(NavigationManagerTest, ReplaceSameUrlPendingItemIfFormSubmission) { 606 TEST_P(NavigationManagerTest, ReplaceSameUrlPendingItemIfFormSubmission) {
595 GURL existing_url = GURL("http://www.existing.com"); 607 GURL existing_url = GURL("http://www.existing.com");
596 navigation_manager()->AddPendingItem( 608 navigation_manager()->AddPendingItem(
597 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 609 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
598 web::NavigationInitiationType::USER_INITIATED, 610 web::NavigationInitiationType::USER_INITIATED,
599 web::NavigationManager::UserAgentOverrideOption::INHERIT); 611 web::NavigationManager::UserAgentOverrideOption::INHERIT);
600 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 612 ASSERT_TRUE(navigation_manager()->GetPendingItem());
601 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 613 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
602 navigation_manager()->GetPendingItem()->GetTransitionType(), 614 navigation_manager()->GetPendingItem()->GetTransitionType(),
603 ui::PAGE_TRANSITION_TYPED)); 615 ui::PAGE_TRANSITION_TYPED));
604 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 616 EXPECT_EQ(0, navigation_manager()->GetItemCount());
605 617
606 navigation_manager()->AddPendingItem( 618 navigation_manager()->AddPendingItem(
607 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, 619 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT,
608 web::NavigationInitiationType::USER_INITIATED, 620 web::NavigationInitiationType::USER_INITIATED,
609 web::NavigationManager::UserAgentOverrideOption::INHERIT); 621 web::NavigationManager::UserAgentOverrideOption::INHERIT);
610 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 622 ASSERT_TRUE(navigation_manager()->GetPendingItem());
611 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 623 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
612 navigation_manager()->GetPendingItem()->GetTransitionType(), 624 navigation_manager()->GetPendingItem()->GetTransitionType(),
613 ui::PAGE_TRANSITION_FORM_SUBMIT)); 625 ui::PAGE_TRANSITION_FORM_SUBMIT));
614 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 626 EXPECT_EQ(0, navigation_manager()->GetItemCount());
615 } 627 }
616 628
617 // Tests that when given a pending item, adding a new pending item with the same 629 // Tests that when given a pending item, adding a new pending item with the same
618 // URL doesn't replace the existing pending item if the user agent override 630 // URL doesn't replace the existing pending item if the user agent override
619 // option is INHERIT. 631 // option is INHERIT.
620 TEST_F(NavigationManagerTest, NotReplaceSameUrlPendingItemIfOverrideInherit) { 632 TEST_P(NavigationManagerTest, NotReplaceSameUrlPendingItemIfOverrideInherit) {
621 GURL existing_url = GURL("http://www.existing.com"); 633 GURL existing_url = GURL("http://www.existing.com");
622 navigation_manager()->AddPendingItem( 634 navigation_manager()->AddPendingItem(
623 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 635 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
624 web::NavigationInitiationType::USER_INITIATED, 636 web::NavigationInitiationType::USER_INITIATED,
625 web::NavigationManager::UserAgentOverrideOption::INHERIT); 637 web::NavigationManager::UserAgentOverrideOption::INHERIT);
626 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 638 ASSERT_TRUE(navigation_manager()->GetPendingItem());
627 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 639 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
628 navigation_manager()->GetPendingItem()->GetTransitionType(), 640 navigation_manager()->GetPendingItem()->GetTransitionType(),
629 ui::PAGE_TRANSITION_TYPED)); 641 ui::PAGE_TRANSITION_TYPED));
630 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 642 EXPECT_EQ(0, navigation_manager()->GetItemCount());
631 643
632 navigation_manager()->AddPendingItem( 644 navigation_manager()->AddPendingItem(
633 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 645 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
634 web::NavigationInitiationType::USER_INITIATED, 646 web::NavigationInitiationType::USER_INITIATED,
635 web::NavigationManager::UserAgentOverrideOption::INHERIT); 647 web::NavigationManager::UserAgentOverrideOption::INHERIT);
636 648
637 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 649 ASSERT_TRUE(navigation_manager()->GetPendingItem());
638 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 650 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
639 navigation_manager()->GetPendingItem()->GetTransitionType(), 651 navigation_manager()->GetPendingItem()->GetTransitionType(),
640 ui::PAGE_TRANSITION_TYPED)); 652 ui::PAGE_TRANSITION_TYPED));
641 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 653 EXPECT_EQ(0, navigation_manager()->GetItemCount());
642 } 654 }
643 655
644 // Tests that when given a pending item, adding a new pending item with the same 656 // Tests that when given a pending item, adding a new pending item with the same
645 // URL replaces the existing pending item if the user agent override option is 657 // URL replaces the existing pending item if the user agent override option is
646 // DESKTOP. 658 // DESKTOP.
647 TEST_F(NavigationManagerTest, ReplaceSameUrlPendingItemIfOverrideDesktop) { 659 TEST_P(NavigationManagerTest, ReplaceSameUrlPendingItemIfOverrideDesktop) {
648 GURL existing_url = GURL("http://www.existing.com"); 660 GURL existing_url = GURL("http://www.existing.com");
649 navigation_manager()->AddPendingItem( 661 navigation_manager()->AddPendingItem(
650 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 662 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
651 web::NavigationInitiationType::USER_INITIATED, 663 web::NavigationInitiationType::USER_INITIATED,
652 web::NavigationManager::UserAgentOverrideOption::MOBILE); 664 web::NavigationManager::UserAgentOverrideOption::MOBILE);
653 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 665 ASSERT_TRUE(navigation_manager()->GetPendingItem());
654 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 666 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
655 navigation_manager()->GetPendingItem()->GetTransitionType(), 667 navigation_manager()->GetPendingItem()->GetTransitionType(),
656 ui::PAGE_TRANSITION_TYPED)); 668 ui::PAGE_TRANSITION_TYPED));
657 EXPECT_EQ(web::UserAgentType::MOBILE, 669 EXPECT_EQ(web::UserAgentType::MOBILE,
658 navigation_manager()->GetPendingItem()->GetUserAgentType()); 670 navigation_manager()->GetPendingItem()->GetUserAgentType());
659 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 671 EXPECT_EQ(0, navigation_manager()->GetItemCount());
660 672
661 navigation_manager()->AddPendingItem( 673 navigation_manager()->AddPendingItem(
662 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 674 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
663 web::NavigationInitiationType::USER_INITIATED, 675 web::NavigationInitiationType::USER_INITIATED,
664 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 676 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
665 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 677 ASSERT_TRUE(navigation_manager()->GetPendingItem());
666 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 678 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
667 navigation_manager()->GetPendingItem()->GetTransitionType(), 679 navigation_manager()->GetPendingItem()->GetTransitionType(),
668 ui::PAGE_TRANSITION_RELOAD)); 680 ui::PAGE_TRANSITION_RELOAD));
669 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 681 EXPECT_EQ(0, navigation_manager()->GetItemCount());
670 } 682 }
671 683
672 // Tests that when given a pending item, adding a new pending item with the same 684 // Tests that when given a pending item, adding a new pending item with the same
673 // URL replaces the existing pending item if the user agent override option is 685 // URL replaces the existing pending item if the user agent override option is
674 // MOBILE. 686 // MOBILE.
675 TEST_F(NavigationManagerTest, ReplaceSameUrlPendingItemIfOverrideMobile) { 687 TEST_P(NavigationManagerTest, ReplaceSameUrlPendingItemIfOverrideMobile) {
676 GURL existing_url = GURL("http://www.existing.com"); 688 GURL existing_url = GURL("http://www.existing.com");
677 navigation_manager()->AddPendingItem( 689 navigation_manager()->AddPendingItem(
678 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 690 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
679 web::NavigationInitiationType::USER_INITIATED, 691 web::NavigationInitiationType::USER_INITIATED,
680 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 692 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
681 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 693 ASSERT_TRUE(navigation_manager()->GetPendingItem());
682 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 694 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
683 navigation_manager()->GetPendingItem()->GetTransitionType(), 695 navigation_manager()->GetPendingItem()->GetTransitionType(),
684 ui::PAGE_TRANSITION_TYPED)); 696 ui::PAGE_TRANSITION_TYPED));
685 EXPECT_EQ(web::UserAgentType::DESKTOP, 697 EXPECT_EQ(web::UserAgentType::DESKTOP,
686 navigation_manager()->GetPendingItem()->GetUserAgentType()); 698 navigation_manager()->GetPendingItem()->GetUserAgentType());
687 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 699 EXPECT_EQ(0, navigation_manager()->GetItemCount());
688 700
689 navigation_manager()->AddPendingItem( 701 navigation_manager()->AddPendingItem(
690 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 702 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
691 web::NavigationInitiationType::USER_INITIATED, 703 web::NavigationInitiationType::USER_INITIATED,
692 web::NavigationManager::UserAgentOverrideOption::MOBILE); 704 web::NavigationManager::UserAgentOverrideOption::MOBILE);
693 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 705 ASSERT_TRUE(navigation_manager()->GetPendingItem());
694 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 706 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
695 navigation_manager()->GetPendingItem()->GetTransitionType(), 707 navigation_manager()->GetPendingItem()->GetTransitionType(),
696 ui::PAGE_TRANSITION_RELOAD)); 708 ui::PAGE_TRANSITION_RELOAD));
697 EXPECT_EQ(0, navigation_manager()->GetItemCount()); 709 EXPECT_EQ(0, navigation_manager()->GetItemCount());
698 } 710 }
699 711
700 // Tests that when the last committed item exists, adding a pending item 712 // Tests that when the last committed item exists, adding a pending item
701 // succeeds if the new item's URL is different from the last committed item. 713 // succeeds if the new item's URL is different from the last committed item.
702 TEST_F(NavigationManagerTest, AddPendingItemIfDiffernetURL) { 714 TEST_P(NavigationManagerTest, AddPendingItemIfDiffernetURL) {
703 GURL existing_url = GURL("http://www.existing.com"); 715 GURL existing_url = GURL("http://www.existing.com");
704 navigation_manager()->AddPendingItem( 716 navigation_manager()->AddPendingItem(
705 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 717 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
706 web::NavigationInitiationType::USER_INITIATED, 718 web::NavigationInitiationType::USER_INITIATED,
707 web::NavigationManager::UserAgentOverrideOption::INHERIT); 719 web::NavigationManager::UserAgentOverrideOption::INHERIT);
708 [session_controller() commitPendingItem]; 720 [session_controller() commitPendingItem];
709 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 721 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
710 EXPECT_EQ(existing_url, 722 EXPECT_EQ(existing_url,
711 navigation_manager()->GetLastCommittedItem()->GetURL()); 723 navigation_manager()->GetLastCommittedItem()->GetURL());
712 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 724 EXPECT_EQ(1, navigation_manager()->GetItemCount());
713 725
714 GURL new_url = GURL("http://www.new.com"); 726 GURL new_url = GURL("http://www.new.com");
715 navigation_manager()->AddPendingItem( 727 navigation_manager()->AddPendingItem(
716 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 728 new_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
717 web::NavigationInitiationType::USER_INITIATED, 729 web::NavigationInitiationType::USER_INITIATED,
718 web::NavigationManager::UserAgentOverrideOption::INHERIT); 730 web::NavigationManager::UserAgentOverrideOption::INHERIT);
719 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 731 ASSERT_TRUE(navigation_manager()->GetPendingItem());
720 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL()); 732 EXPECT_EQ(new_url, navigation_manager()->GetPendingItem()->GetURL());
721 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 733 EXPECT_EQ(1, navigation_manager()->GetItemCount());
722 } 734 }
723 735
724 // Tests that when the last committed item exists, adding a pending item with 736 // Tests that when the last committed item exists, adding a pending item with
725 // the same URL fails if the new item is not form submission. 737 // the same URL fails if the new item is not form submission.
726 TEST_F(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) { 738 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfNotFormSubmission) {
727 GURL existing_url = GURL("http://www.existing.com"); 739 GURL existing_url = GURL("http://www.existing.com");
728 navigation_manager()->AddPendingItem( 740 navigation_manager()->AddPendingItem(
729 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 741 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
730 web::NavigationInitiationType::USER_INITIATED, 742 web::NavigationInitiationType::USER_INITIATED,
731 web::NavigationManager::UserAgentOverrideOption::INHERIT); 743 web::NavigationManager::UserAgentOverrideOption::INHERIT);
732 [session_controller() commitPendingItem]; 744 [session_controller() commitPendingItem];
733 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 745 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
734 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 746 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
735 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), 747 navigation_manager()->GetLastCommittedItem()->GetTransitionType(),
736 ui::PAGE_TRANSITION_TYPED)); 748 ui::PAGE_TRANSITION_TYPED));
737 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 749 EXPECT_FALSE(navigation_manager()->GetPendingItem());
738 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 750 EXPECT_EQ(1, navigation_manager()->GetItemCount());
739 751
740 navigation_manager()->AddPendingItem( 752 navigation_manager()->AddPendingItem(
741 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK, 753 existing_url, Referrer(), ui::PAGE_TRANSITION_LINK,
742 web::NavigationInitiationType::USER_INITIATED, 754 web::NavigationInitiationType::USER_INITIATED,
743 web::NavigationManager::UserAgentOverrideOption::INHERIT); 755 web::NavigationManager::UserAgentOverrideOption::INHERIT);
744 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 756 EXPECT_FALSE(navigation_manager()->GetPendingItem());
745 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 757 EXPECT_EQ(1, navigation_manager()->GetItemCount());
746 } 758 }
747 759
748 // Tests that when the last committed item exists, adding a pending item with 760 // Tests that when the last committed item exists, adding a pending item with
749 // the same URL succeeds if the new item is a form submission while the last 761 // the same URL succeeds if the new item is a form submission while the last
750 // committed item is not. 762 // committed item is not.
751 TEST_F(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) { 763 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfFormSubmission) {
752 GURL existing_url = GURL("http://www.existing.com"); 764 GURL existing_url = GURL("http://www.existing.com");
753 navigation_manager()->AddPendingItem( 765 navigation_manager()->AddPendingItem(
754 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 766 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
755 web::NavigationInitiationType::USER_INITIATED, 767 web::NavigationInitiationType::USER_INITIATED,
756 web::NavigationManager::UserAgentOverrideOption::INHERIT); 768 web::NavigationManager::UserAgentOverrideOption::INHERIT);
757 [session_controller() commitPendingItem]; 769 [session_controller() commitPendingItem];
758 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 770 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
759 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 771 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
760 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), 772 navigation_manager()->GetLastCommittedItem()->GetTransitionType(),
761 ui::PAGE_TRANSITION_TYPED)); 773 ui::PAGE_TRANSITION_TYPED));
762 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 774 EXPECT_FALSE(navigation_manager()->GetPendingItem());
763 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 775 EXPECT_EQ(1, navigation_manager()->GetItemCount());
764 776
765 // Add if new transition is a form submission. 777 // Add if new transition is a form submission.
766 navigation_manager()->AddPendingItem( 778 navigation_manager()->AddPendingItem(
767 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, 779 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT,
768 web::NavigationInitiationType::USER_INITIATED, 780 web::NavigationInitiationType::USER_INITIATED,
769 web::NavigationManager::UserAgentOverrideOption::INHERIT); 781 web::NavigationManager::UserAgentOverrideOption::INHERIT);
770 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 782 ASSERT_TRUE(navigation_manager()->GetPendingItem());
771 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 783 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
772 navigation_manager()->GetPendingItem()->GetTransitionType(), 784 navigation_manager()->GetPendingItem()->GetTransitionType(),
773 ui::PAGE_TRANSITION_FORM_SUBMIT)); 785 ui::PAGE_TRANSITION_FORM_SUBMIT));
774 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 786 EXPECT_EQ(1, navigation_manager()->GetItemCount());
775 } 787 }
776 788
777 // Tests that when the last committed item exists, adding a pending item with 789 // Tests that when the last committed item exists, adding a pending item with
778 // the same URL fails if both the new item and the last committed item are form 790 // the same URL fails if both the new item and the last committed item are form
779 // submissions. 791 // submissions.
780 TEST_F(NavigationManagerTest, 792 TEST_P(NavigationManagerTest,
781 NotAddSameUrlPendingItemIfDuplicateFormSubmission) { 793 NotAddSameUrlPendingItemIfDuplicateFormSubmission) {
782 GURL existing_url = GURL("http://www.existing.com"); 794 GURL existing_url = GURL("http://www.existing.com");
783 navigation_manager()->AddPendingItem( 795 navigation_manager()->AddPendingItem(
784 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, 796 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT,
785 web::NavigationInitiationType::USER_INITIATED, 797 web::NavigationInitiationType::USER_INITIATED,
786 web::NavigationManager::UserAgentOverrideOption::INHERIT); 798 web::NavigationManager::UserAgentOverrideOption::INHERIT);
787 [session_controller() commitPendingItem]; 799 [session_controller() commitPendingItem];
788 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 800 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
789 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 801 EXPECT_FALSE(navigation_manager()->GetPendingItem());
790 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 802 EXPECT_EQ(1, navigation_manager()->GetItemCount());
791 803
792 navigation_manager()->AddPendingItem( 804 navigation_manager()->AddPendingItem(
793 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT, 805 existing_url, Referrer(), ui::PAGE_TRANSITION_FORM_SUBMIT,
794 web::NavigationInitiationType::USER_INITIATED, 806 web::NavigationInitiationType::USER_INITIATED,
795 web::NavigationManager::UserAgentOverrideOption::INHERIT); 807 web::NavigationManager::UserAgentOverrideOption::INHERIT);
796 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 808 EXPECT_FALSE(navigation_manager()->GetPendingItem());
797 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 809 EXPECT_EQ(1, navigation_manager()->GetItemCount());
798 } 810 }
799 811
800 // Tests that when the last committed item exists, adding a pending item with 812 // Tests that when the last committed item exists, adding a pending item with
801 // the same URL fails if the user agent override option is INHERIT. 813 // the same URL fails if the user agent override option is INHERIT.
802 TEST_F(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) { 814 TEST_P(NavigationManagerTest, NotAddSameUrlPendingItemIfOverrideInherit) {
803 GURL existing_url = GURL("http://www.existing.com"); 815 GURL existing_url = GURL("http://www.existing.com");
804 navigation_manager()->AddPendingItem( 816 navigation_manager()->AddPendingItem(
805 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 817 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
806 web::NavigationInitiationType::USER_INITIATED, 818 web::NavigationInitiationType::USER_INITIATED,
807 web::NavigationManager::UserAgentOverrideOption::INHERIT); 819 web::NavigationManager::UserAgentOverrideOption::INHERIT);
808 [session_controller() commitPendingItem]; 820 [session_controller() commitPendingItem];
809 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 821 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
810 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 822 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
811 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), 823 navigation_manager()->GetLastCommittedItem()->GetTransitionType(),
812 ui::PAGE_TRANSITION_TYPED)); 824 ui::PAGE_TRANSITION_TYPED));
813 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 825 EXPECT_EQ(1, navigation_manager()->GetItemCount());
814 826
815 navigation_manager()->AddPendingItem( 827 navigation_manager()->AddPendingItem(
816 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 828 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
817 web::NavigationInitiationType::USER_INITIATED, 829 web::NavigationInitiationType::USER_INITIATED,
818 web::NavigationManager::UserAgentOverrideOption::INHERIT); 830 web::NavigationManager::UserAgentOverrideOption::INHERIT);
819 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 831 EXPECT_FALSE(navigation_manager()->GetPendingItem());
820 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 832 EXPECT_EQ(1, navigation_manager()->GetItemCount());
821 } 833 }
822 834
823 // Tests that when the last committed item exists, adding a pending item with 835 // Tests that when the last committed item exists, adding a pending item with
824 // the same URL succeeds if the user agent override option is DESKTOP. 836 // the same URL succeeds if the user agent override option is DESKTOP.
825 TEST_F(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) { 837 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideDesktop) {
826 GURL existing_url = GURL("http://www.existing.com"); 838 GURL existing_url = GURL("http://www.existing.com");
827 navigation_manager()->AddPendingItem( 839 navigation_manager()->AddPendingItem(
828 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 840 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
829 web::NavigationInitiationType::USER_INITIATED, 841 web::NavigationInitiationType::USER_INITIATED,
830 web::NavigationManager::UserAgentOverrideOption::MOBILE); 842 web::NavigationManager::UserAgentOverrideOption::MOBILE);
831 [session_controller() commitPendingItem]; 843 [session_controller() commitPendingItem];
832 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 844 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
833 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 845 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
834 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), 846 navigation_manager()->GetLastCommittedItem()->GetTransitionType(),
835 ui::PAGE_TRANSITION_TYPED)); 847 ui::PAGE_TRANSITION_TYPED));
836 EXPECT_EQ(web::UserAgentType::MOBILE, 848 EXPECT_EQ(web::UserAgentType::MOBILE,
837 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 849 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
838 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 850 EXPECT_EQ(1, navigation_manager()->GetItemCount());
839 851
840 navigation_manager()->AddPendingItem( 852 navigation_manager()->AddPendingItem(
841 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 853 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
842 web::NavigationInitiationType::USER_INITIATED, 854 web::NavigationInitiationType::USER_INITIATED,
843 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 855 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
844 856
845 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 857 ASSERT_TRUE(navigation_manager()->GetPendingItem());
846 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 858 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
847 navigation_manager()->GetPendingItem()->GetTransitionType(), 859 navigation_manager()->GetPendingItem()->GetTransitionType(),
848 ui::PAGE_TRANSITION_RELOAD)); 860 ui::PAGE_TRANSITION_RELOAD));
849 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 861 EXPECT_EQ(1, navigation_manager()->GetItemCount());
850 } 862 }
851 863
852 // Tests that when the last committed item exists, adding a pending item with 864 // Tests that when the last committed item exists, adding a pending item with
853 // the same URL succeeds if the user agent override option is MOBILE. 865 // the same URL succeeds if the user agent override option is MOBILE.
854 TEST_F(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) { 866 TEST_P(NavigationManagerTest, AddSameUrlPendingItemIfOverrideMobile) {
855 GURL existing_url = GURL("http://www.existing.com"); 867 GURL existing_url = GURL("http://www.existing.com");
856 navigation_manager()->AddPendingItem( 868 navigation_manager()->AddPendingItem(
857 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED, 869 existing_url, Referrer(), ui::PAGE_TRANSITION_TYPED,
858 web::NavigationInitiationType::USER_INITIATED, 870 web::NavigationInitiationType::USER_INITIATED,
859 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 871 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
860 [session_controller() commitPendingItem]; 872 [session_controller() commitPendingItem];
861 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 873 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
862 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 874 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
863 navigation_manager()->GetLastCommittedItem()->GetTransitionType(), 875 navigation_manager()->GetLastCommittedItem()->GetTransitionType(),
864 ui::PAGE_TRANSITION_TYPED)); 876 ui::PAGE_TRANSITION_TYPED));
865 EXPECT_EQ(web::UserAgentType::DESKTOP, 877 EXPECT_EQ(web::UserAgentType::DESKTOP,
866 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 878 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
867 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 879 EXPECT_EQ(1, navigation_manager()->GetItemCount());
868 880
869 navigation_manager()->AddPendingItem( 881 navigation_manager()->AddPendingItem(
870 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD, 882 existing_url, Referrer(), ui::PAGE_TRANSITION_RELOAD,
871 web::NavigationInitiationType::USER_INITIATED, 883 web::NavigationInitiationType::USER_INITIATED,
872 web::NavigationManager::UserAgentOverrideOption::MOBILE); 884 web::NavigationManager::UserAgentOverrideOption::MOBILE);
873 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 885 ASSERT_TRUE(navigation_manager()->GetPendingItem());
874 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( 886 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(
875 navigation_manager()->GetPendingItem()->GetTransitionType(), 887 navigation_manager()->GetPendingItem()->GetTransitionType(),
876 ui::PAGE_TRANSITION_RELOAD)); 888 ui::PAGE_TRANSITION_RELOAD));
877 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 889 EXPECT_EQ(1, navigation_manager()->GetItemCount());
878 } 890 }
879 891
880 // Tests that desktop user agent can be enforced to use for next pending item 892 // Tests that desktop user agent can be enforced to use for next pending item
881 // when UserAgentOverrideOption is DESKTOP. 893 // when UserAgentOverrideOption is DESKTOP.
882 TEST_F(NavigationManagerTest, OverrideUserAgentWithDesktop) { 894 TEST_P(NavigationManagerTest, OverrideUserAgentWithDesktop) {
883 navigation_manager()->AddPendingItem( 895 navigation_manager()->AddPendingItem(
884 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 896 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
885 web::NavigationInitiationType::USER_INITIATED, 897 web::NavigationInitiationType::USER_INITIATED,
886 web::NavigationManager::UserAgentOverrideOption::MOBILE); 898 web::NavigationManager::UserAgentOverrideOption::MOBILE);
887 [session_controller() commitPendingItem]; 899 [session_controller() commitPendingItem];
888 NavigationItem* last_committed_item = 900 NavigationItem* last_committed_item =
889 navigation_manager()->GetLastCommittedItem(); 901 navigation_manager()->GetLastCommittedItem();
890 EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType()); 902 EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType());
891 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 903 EXPECT_EQ(1, navigation_manager()->GetItemCount());
892 904
893 navigation_manager()->AddPendingItem( 905 navigation_manager()->AddPendingItem(
894 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 906 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
895 web::NavigationInitiationType::USER_INITIATED, 907 web::NavigationInitiationType::USER_INITIATED,
896 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 908 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
897 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 909 ASSERT_TRUE(navigation_manager()->GetPendingItem());
898 EXPECT_EQ(UserAgentType::DESKTOP, 910 EXPECT_EQ(UserAgentType::DESKTOP,
899 navigation_manager()->GetPendingItem()->GetUserAgentType()); 911 navigation_manager()->GetPendingItem()->GetUserAgentType());
900 EXPECT_EQ(1, navigation_manager()->GetItemCount()); 912 EXPECT_EQ(1, navigation_manager()->GetItemCount());
901 } 913 }
902 914
903 // Tests that mobile user agent can be enforced to use for next pending item 915 // Tests that mobile user agent can be enforced to use for next pending item
904 // when UserAgentOverrideOption is MOBILE. 916 // when UserAgentOverrideOption is MOBILE.
905 TEST_F(NavigationManagerTest, OverrideUserAgentWithMobile) { 917 TEST_P(NavigationManagerTest, OverrideUserAgentWithMobile) {
906 navigation_manager()->AddPendingItem( 918 navigation_manager()->AddPendingItem(
907 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 919 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
908 web::NavigationInitiationType::USER_INITIATED, 920 web::NavigationInitiationType::USER_INITIATED,
909 web::NavigationManager::UserAgentOverrideOption::INHERIT); 921 web::NavigationManager::UserAgentOverrideOption::INHERIT);
910 [session_controller() commitPendingItem]; 922 [session_controller() commitPendingItem];
911 NavigationItem* last_committed_item = 923 NavigationItem* last_committed_item =
912 navigation_manager()->GetLastCommittedItem(); 924 navigation_manager()->GetLastCommittedItem();
913 last_committed_item->SetUserAgentType(UserAgentType::DESKTOP); 925 last_committed_item->SetUserAgentType(UserAgentType::DESKTOP);
914 EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType()); 926 EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType());
915 927
916 navigation_manager()->AddPendingItem( 928 navigation_manager()->AddPendingItem(
917 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 929 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
918 web::NavigationInitiationType::USER_INITIATED, 930 web::NavigationInitiationType::USER_INITIATED,
919 web::NavigationManager::UserAgentOverrideOption::MOBILE); 931 web::NavigationManager::UserAgentOverrideOption::MOBILE);
920 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 932 ASSERT_TRUE(navigation_manager()->GetPendingItem());
921 EXPECT_EQ(UserAgentType::MOBILE, 933 EXPECT_EQ(UserAgentType::MOBILE,
922 navigation_manager()->GetPendingItem()->GetUserAgentType()); 934 navigation_manager()->GetPendingItem()->GetUserAgentType());
923 } 935 }
924 936
925 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent 937 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent
926 // item when UserAgentOverrideOption is INHERIT 938 // item when UserAgentOverrideOption is INHERIT
927 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) { 939 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) {
928 navigation_manager()->AddPendingItem( 940 navigation_manager()->AddPendingItem(
929 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 941 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
930 web::NavigationInitiationType::USER_INITIATED, 942 web::NavigationInitiationType::USER_INITIATED,
931 web::NavigationManager::UserAgentOverrideOption::INHERIT); 943 web::NavigationManager::UserAgentOverrideOption::INHERIT);
932 [session_controller() commitPendingItem]; 944 [session_controller() commitPendingItem];
933 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 945 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
934 EXPECT_EQ(web::UserAgentType::MOBILE, 946 EXPECT_EQ(web::UserAgentType::MOBILE,
935 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 947 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
936 948
937 navigation_manager()->AddPendingItem( 949 navigation_manager()->AddPendingItem(
938 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 950 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
939 web::NavigationInitiationType::USER_INITIATED, 951 web::NavigationInitiationType::USER_INITIATED,
940 web::NavigationManager::UserAgentOverrideOption::INHERIT); 952 web::NavigationManager::UserAgentOverrideOption::INHERIT);
941 [session_controller() commitPendingItem]; 953 [session_controller() commitPendingItem];
942 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 954 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
943 EXPECT_EQ(web::UserAgentType::MOBILE, 955 EXPECT_EQ(web::UserAgentType::MOBILE,
944 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 956 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
945 } 957 }
946 958
947 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent 959 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent
948 // item when UserAgentOverrideOption is INHERIT 960 // item when UserAgentOverrideOption is INHERIT
949 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) { 961 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) {
950 navigation_manager()->AddPendingItem( 962 navigation_manager()->AddPendingItem(
951 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 963 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
952 web::NavigationInitiationType::USER_INITIATED, 964 web::NavigationInitiationType::USER_INITIATED,
953 web::NavigationManager::UserAgentOverrideOption::MOBILE); 965 web::NavigationManager::UserAgentOverrideOption::MOBILE);
954 [session_controller() commitPendingItem]; 966 [session_controller() commitPendingItem];
955 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 967 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
956 EXPECT_EQ(web::UserAgentType::MOBILE, 968 EXPECT_EQ(web::UserAgentType::MOBILE,
957 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 969 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
958 970
959 navigation_manager()->AddPendingItem( 971 navigation_manager()->AddPendingItem(
960 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 972 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
961 web::NavigationInitiationType::USER_INITIATED, 973 web::NavigationInitiationType::USER_INITIATED,
962 web::NavigationManager::UserAgentOverrideOption::INHERIT); 974 web::NavigationManager::UserAgentOverrideOption::INHERIT);
963 [session_controller() commitPendingItem]; 975 [session_controller() commitPendingItem];
964 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 976 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
965 EXPECT_EQ(web::UserAgentType::MOBILE, 977 EXPECT_EQ(web::UserAgentType::MOBILE,
966 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 978 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
967 } 979 }
968 980
969 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent 981 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent
970 // item when UserAgentOverrideOption is INHERIT 982 // item when UserAgentOverrideOption is INHERIT
971 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) { 983 TEST_P(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) {
972 navigation_manager()->AddPendingItem( 984 navigation_manager()->AddPendingItem(
973 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 985 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
974 web::NavigationInitiationType::USER_INITIATED, 986 web::NavigationInitiationType::USER_INITIATED,
975 web::NavigationManager::UserAgentOverrideOption::DESKTOP); 987 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
976 [session_controller() commitPendingItem]; 988 [session_controller() commitPendingItem];
977 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 989 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
978 EXPECT_EQ(web::UserAgentType::DESKTOP, 990 EXPECT_EQ(web::UserAgentType::DESKTOP,
979 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 991 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
980 992
981 navigation_manager()->AddPendingItem( 993 navigation_manager()->AddPendingItem(
982 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 994 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
983 web::NavigationInitiationType::USER_INITIATED, 995 web::NavigationInitiationType::USER_INITIATED,
984 web::NavigationManager::UserAgentOverrideOption::INHERIT); 996 web::NavigationManager::UserAgentOverrideOption::INHERIT);
985 [session_controller() commitPendingItem]; 997 [session_controller() commitPendingItem];
986 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 998 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
987 EXPECT_EQ(web::UserAgentType::DESKTOP, 999 EXPECT_EQ(web::UserAgentType::DESKTOP,
988 navigation_manager()->GetLastCommittedItem()->GetUserAgentType()); 1000 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
989 } 1001 }
990 1002
991 // Tests that the UserAgentType is propagated to subsequent NavigationItems if 1003 // Tests that the UserAgentType is propagated to subsequent NavigationItems if
992 // a native URL exists in between naviations. 1004 // a native URL exists in between naviations.
993 TEST_F(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { 1005 TEST_P(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) {
994 // GURL::Replacements that will replace a GURL's scheme with the test native 1006 // GURL::Replacements that will replace a GURL's scheme with the test native
995 // scheme. 1007 // scheme.
996 GURL::Replacements native_scheme_replacement; 1008 GURL::Replacements native_scheme_replacement;
997 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); 1009 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme);
998 1010
999 // Create two non-native navigations that are separated by a native one. 1011 // Create two non-native navigations that are separated by a native one.
1000 navigation_manager()->AddPendingItem( 1012 navigation_manager()->AddPendingItem(
1001 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1013 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1002 web::NavigationInitiationType::USER_INITIATED, 1014 web::NavigationInitiationType::USER_INITIATED,
1003 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1015 web::NavigationManager::UserAgentOverrideOption::INHERIT);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1052 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1041 [session_controller() commitPendingItem]; 1053 [session_controller() commitPendingItem];
1042 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); 1054 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem();
1043 1055
1044 // Verify that |item2|'s UserAgentType is propagated to |item3|. 1056 // Verify that |item2|'s UserAgentType is propagated to |item3|.
1045 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); 1057 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType());
1046 } 1058 }
1047 1059
1048 // Tests that adding transient item for a pending item with mobile user agent 1060 // Tests that adding transient item for a pending item with mobile user agent
1049 // type results in a transient item with mobile user agent type. 1061 // type results in a transient item with mobile user agent type.
1050 TEST_F(NavigationManagerTest, AddTransientItemForMobilePendingItem) { 1062 TEST_P(NavigationManagerTest, AddTransientItemForMobilePendingItem) {
1051 navigation_manager()->AddPendingItem( 1063 navigation_manager()->AddPendingItem(
1052 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1064 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1053 web::NavigationInitiationType::USER_INITIATED, 1065 web::NavigationInitiationType::USER_INITIATED,
1054 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1066 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1055 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1067 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1056 navigation_manager()->GetPendingItem()->SetUserAgentType( 1068 navigation_manager()->GetPendingItem()->SetUserAgentType(
1057 UserAgentType::MOBILE); 1069 UserAgentType::MOBILE);
1058 1070
1059 navigation_manager()->AddTransientItem(GURL("http://www.url.com")); 1071 navigation_manager()->AddTransientItem(GURL("http://www.url.com"));
1060 ASSERT_TRUE(navigation_manager()->GetTransientItem()); 1072 ASSERT_TRUE(navigation_manager()->GetTransientItem());
1061 EXPECT_EQ(UserAgentType::MOBILE, 1073 EXPECT_EQ(UserAgentType::MOBILE,
1062 navigation_manager()->GetTransientItem()->GetUserAgentType()); 1074 navigation_manager()->GetTransientItem()->GetUserAgentType());
1063 EXPECT_EQ(UserAgentType::MOBILE, 1075 EXPECT_EQ(UserAgentType::MOBILE,
1064 navigation_manager()->GetPendingItem()->GetUserAgentType()); 1076 navigation_manager()->GetPendingItem()->GetUserAgentType());
1065 } 1077 }
1066 1078
1067 // Tests that adding transient item for a pending item with desktop user agent 1079 // Tests that adding transient item for a pending item with desktop user agent
1068 // type results in a transient item with desktop user agent type. 1080 // type results in a transient item with desktop user agent type.
1069 TEST_F(NavigationManagerTest, AddTransientItemForDesktopPendingItem) { 1081 TEST_P(NavigationManagerTest, AddTransientItemForDesktopPendingItem) {
1070 navigation_manager()->AddPendingItem( 1082 navigation_manager()->AddPendingItem(
1071 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1083 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1072 web::NavigationInitiationType::USER_INITIATED, 1084 web::NavigationInitiationType::USER_INITIATED,
1073 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1085 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1074 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1086 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1075 navigation_manager()->GetPendingItem()->SetUserAgentType( 1087 navigation_manager()->GetPendingItem()->SetUserAgentType(
1076 UserAgentType::DESKTOP); 1088 UserAgentType::DESKTOP);
1077 1089
1078 navigation_manager()->AddTransientItem(GURL("http://www.url.com")); 1090 navigation_manager()->AddTransientItem(GURL("http://www.url.com"));
1079 ASSERT_TRUE(navigation_manager()->GetTransientItem()); 1091 ASSERT_TRUE(navigation_manager()->GetTransientItem());
1080 EXPECT_EQ(UserAgentType::DESKTOP, 1092 EXPECT_EQ(UserAgentType::DESKTOP,
1081 navigation_manager()->GetTransientItem()->GetUserAgentType()); 1093 navigation_manager()->GetTransientItem()->GetUserAgentType());
1082 EXPECT_EQ(UserAgentType::DESKTOP, 1094 EXPECT_EQ(UserAgentType::DESKTOP,
1083 navigation_manager()->GetPendingItem()->GetUserAgentType()); 1095 navigation_manager()->GetPendingItem()->GetUserAgentType());
1084 } 1096 }
1085 1097
1086 // Tests that calling |Reload| with web::ReloadType::NORMAL is no-op when there 1098 // Tests that calling |Reload| with web::ReloadType::NORMAL is no-op when there
1087 // are no transient, pending and committed items. 1099 // are no transient, pending and committed items.
1088 TEST_F(NavigationManagerTest, ReloadEmptyWithNormalType) { 1100 TEST_P(NavigationManagerTest, ReloadEmptyWithNormalType) {
1089 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 1101 ASSERT_FALSE(navigation_manager()->GetTransientItem());
1090 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 1102 ASSERT_FALSE(navigation_manager()->GetPendingItem());
1091 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 1103 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
1092 1104
1093 navigation_manager()->Reload(web::ReloadType::NORMAL, 1105 navigation_manager()->Reload(web::ReloadType::NORMAL,
1094 false /* check_for_repost */); 1106 false /* check_for_repost */);
1095 EXPECT_FALSE(navigation_manager_delegate().reload_called()); 1107 EXPECT_FALSE(navigation_manager_delegate().reload_called());
1096 1108
1097 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 1109 ASSERT_FALSE(navigation_manager()->GetTransientItem());
1098 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 1110 ASSERT_FALSE(navigation_manager()->GetPendingItem());
1099 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 1111 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
1100 } 1112 }
1101 1113
1102 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 1114 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
1103 // the renderer initiated pending item unchanged when there is one. 1115 // the renderer initiated pending item unchanged when there is one.
1104 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithNormalType) { 1116 TEST_P(NavigationManagerTest, ReloadRendererPendingItemWithNormalType) {
1105 GURL url_before_reload = GURL("http://www.url.com"); 1117 GURL url_before_reload = GURL("http://www.url.com");
1106 navigation_manager()->AddPendingItem( 1118 navigation_manager()->AddPendingItem(
1107 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 1119 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
1108 web::NavigationInitiationType::RENDERER_INITIATED, 1120 web::NavigationInitiationType::RENDERER_INITIATED,
1109 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1121 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1110 1122
1111 navigation_manager()->Reload(web::ReloadType::NORMAL, 1123 navigation_manager()->Reload(web::ReloadType::NORMAL,
1112 false /* check_for_repost */); 1124 false /* check_for_repost */);
1113 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1125 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1114 1126
1115 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1127 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1116 EXPECT_EQ(url_before_reload, 1128 EXPECT_EQ(url_before_reload,
1117 navigation_manager()->GetPendingItem()->GetURL()); 1129 navigation_manager()->GetPendingItem()->GetURL());
1118 } 1130 }
1119 1131
1120 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 1132 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
1121 // the user initiated pending item unchanged when there is one. 1133 // the user initiated pending item unchanged when there is one.
1122 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithNormalType) { 1134 TEST_P(NavigationManagerTest, ReloadUserPendingItemWithNormalType) {
1123 GURL url_before_reload = GURL("http://www.url.com"); 1135 GURL url_before_reload = GURL("http://www.url.com");
1124 navigation_manager()->AddPendingItem( 1136 navigation_manager()->AddPendingItem(
1125 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 1137 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
1126 web::NavigationInitiationType::USER_INITIATED, 1138 web::NavigationInitiationType::USER_INITIATED,
1127 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1139 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1128 1140
1129 navigation_manager()->Reload(web::ReloadType::NORMAL, 1141 navigation_manager()->Reload(web::ReloadType::NORMAL,
1130 false /* check_for_repost */); 1142 false /* check_for_repost */);
1131 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1143 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1132 1144
1133 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1145 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1134 EXPECT_EQ(url_before_reload, 1146 EXPECT_EQ(url_before_reload,
1135 navigation_manager()->GetPendingItem()->GetURL()); 1147 navigation_manager()->GetPendingItem()->GetURL());
1136 } 1148 }
1137 1149
1138 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 1150 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
1139 // the last committed item unchanged when there is no pending item. 1151 // the last committed item unchanged when there is no pending item.
1140 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { 1152 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) {
1141 navigation_manager()->AddPendingItem( 1153 navigation_manager()->AddPendingItem(
1142 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1154 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1143 web::NavigationInitiationType::USER_INITIATED, 1155 web::NavigationInitiationType::USER_INITIATED,
1144 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1156 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1145 [session_controller() commitPendingItem]; 1157 [session_controller() commitPendingItem];
1146 1158
1147 GURL url_before_reload = GURL("http://www.url.com/1"); 1159 GURL url_before_reload = GURL("http://www.url.com/1");
1148 navigation_manager()->AddPendingItem( 1160 navigation_manager()->AddPendingItem(
1149 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 1161 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
1150 web::NavigationInitiationType::USER_INITIATED, 1162 web::NavigationInitiationType::USER_INITIATED,
1151 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1163 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1152 [session_controller() commitPendingItem]; 1164 [session_controller() commitPendingItem];
1153 1165
1154 navigation_manager()->Reload(web::ReloadType::NORMAL, 1166 navigation_manager()->Reload(web::ReloadType::NORMAL,
1155 false /* check_for_repost */); 1167 false /* check_for_repost */);
1156 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1168 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1157 1169
1158 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1170 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1159 EXPECT_EQ(url_before_reload, 1171 EXPECT_EQ(url_before_reload,
1160 navigation_manager()->GetLastCommittedItem()->GetURL()); 1172 navigation_manager()->GetLastCommittedItem()->GetURL());
1161 } 1173 }
1162 1174
1163 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 1175 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
1164 // the last committed item unchanged when there is no pending item, but there 1176 // the last committed item unchanged when there is no pending item, but there
1165 // forward items after last committed item. 1177 // forward items after last committed item.
1166 TEST_F(NavigationManagerTest, 1178 TEST_P(NavigationManagerTest,
1167 ReloadLastCommittedItemWithNormalTypeWithForwardItems) { 1179 ReloadLastCommittedItemWithNormalTypeWithForwardItems) {
1168 navigation_manager()->AddPendingItem( 1180 navigation_manager()->AddPendingItem(
1169 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1181 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1170 web::NavigationInitiationType::USER_INITIATED, 1182 web::NavigationInitiationType::USER_INITIATED,
1171 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1183 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1172 [session_controller() commitPendingItem]; 1184 [session_controller() commitPendingItem];
1173 1185
1174 GURL url_before_reload = GURL("http://www.url.com/1"); 1186 GURL url_before_reload = GURL("http://www.url.com/1");
1175 navigation_manager()->AddPendingItem( 1187 navigation_manager()->AddPendingItem(
1176 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 1188 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
(...skipping 14 matching lines...) Expand all
1191 false /* check_for_repost */); 1203 false /* check_for_repost */);
1192 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1204 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1193 1205
1194 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1206 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1195 EXPECT_EQ(url_before_reload, 1207 EXPECT_EQ(url_before_reload,
1196 navigation_manager()->GetLastCommittedItem()->GetURL()); 1208 navigation_manager()->GetLastCommittedItem()->GetURL());
1197 } 1209 }
1198 1210
1199 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL is 1211 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL is
1200 // no-op when there are no transient, pending and committed items. 1212 // no-op when there are no transient, pending and committed items.
1201 TEST_F(NavigationManagerTest, ReloadEmptyWithOriginalType) { 1213 TEST_P(NavigationManagerTest, ReloadEmptyWithOriginalType) {
1202 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 1214 ASSERT_FALSE(navigation_manager()->GetTransientItem());
1203 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 1215 ASSERT_FALSE(navigation_manager()->GetPendingItem());
1204 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 1216 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
1205 1217
1206 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 1218 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
1207 false /* check_for_repost */); 1219 false /* check_for_repost */);
1208 EXPECT_FALSE(navigation_manager_delegate().reload_called()); 1220 EXPECT_FALSE(navigation_manager_delegate().reload_called());
1209 1221
1210 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 1222 ASSERT_FALSE(navigation_manager()->GetTransientItem());
1211 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 1223 ASSERT_FALSE(navigation_manager()->GetPendingItem());
1212 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 1224 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
1213 } 1225 }
1214 1226
1215 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 1227 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
1216 // changes the renderer initiated pending item's url to its original request url 1228 // changes the renderer initiated pending item's url to its original request url
1217 // when there is one. 1229 // when there is one.
1218 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithOriginalType) { 1230 TEST_P(NavigationManagerTest, ReloadRendererPendingItemWithOriginalType) {
1219 navigation_manager()->AddPendingItem( 1231 navigation_manager()->AddPendingItem(
1220 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1232 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1221 web::NavigationInitiationType::RENDERER_INITIATED, 1233 web::NavigationInitiationType::RENDERER_INITIATED,
1222 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1234 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1223 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1235 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1224 GURL expected_original_url = GURL("http://www.url.com/original"); 1236 GURL expected_original_url = GURL("http://www.url.com/original");
1225 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 1237 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
1226 expected_original_url); 1238 expected_original_url);
1227 1239
1228 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 1240 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
1229 false /* check_for_repost */); 1241 false /* check_for_repost */);
1230 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1242 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1231 1243
1232 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1244 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1233 EXPECT_EQ(expected_original_url, 1245 EXPECT_EQ(expected_original_url,
1234 navigation_manager()->GetPendingItem()->GetURL()); 1246 navigation_manager()->GetPendingItem()->GetURL());
1235 } 1247 }
1236 1248
1237 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 1249 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
1238 // changes the user initiated pending item's url to its original request url 1250 // changes the user initiated pending item's url to its original request url
1239 // when there is one. 1251 // when there is one.
1240 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithOriginalType) { 1252 TEST_P(NavigationManagerTest, ReloadUserPendingItemWithOriginalType) {
1241 navigation_manager()->AddPendingItem( 1253 navigation_manager()->AddPendingItem(
1242 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1254 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1243 web::NavigationInitiationType::USER_INITIATED, 1255 web::NavigationInitiationType::USER_INITIATED,
1244 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1256 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1245 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1257 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1246 GURL expected_original_url = GURL("http://www.url.com/original"); 1258 GURL expected_original_url = GURL("http://www.url.com/original");
1247 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 1259 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
1248 expected_original_url); 1260 expected_original_url);
1249 1261
1250 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 1262 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
1251 false /* check_for_repost */); 1263 false /* check_for_repost */);
1252 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1264 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1253 1265
1254 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1266 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1255 EXPECT_EQ(expected_original_url, 1267 EXPECT_EQ(expected_original_url,
1256 navigation_manager()->GetPendingItem()->GetURL()); 1268 navigation_manager()->GetPendingItem()->GetURL());
1257 } 1269 }
1258 1270
1259 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 1271 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
1260 // changes the last committed item's url to its original request url when there 1272 // changes the last committed item's url to its original request url when there
1261 // is no pending item. 1273 // is no pending item.
1262 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { 1274 TEST_P(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) {
1263 navigation_manager()->AddPendingItem( 1275 navigation_manager()->AddPendingItem(
1264 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1276 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1265 web::NavigationInitiationType::USER_INITIATED, 1277 web::NavigationInitiationType::USER_INITIATED,
1266 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1278 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1267 [session_controller() commitPendingItem]; 1279 [session_controller() commitPendingItem];
1268 1280
1269 navigation_manager()->AddPendingItem( 1281 navigation_manager()->AddPendingItem(
1270 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1282 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1271 web::NavigationInitiationType::USER_INITIATED, 1283 web::NavigationInitiationType::USER_INITIATED,
1272 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1284 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1273 GURL expected_original_url = GURL("http://www.url.com/1/original"); 1285 GURL expected_original_url = GURL("http://www.url.com/1/original");
1274 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 1286 ASSERT_TRUE(navigation_manager()->GetPendingItem());
1275 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 1287 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
1276 expected_original_url); 1288 expected_original_url);
1277 [session_controller() commitPendingItem]; 1289 [session_controller() commitPendingItem];
1278 1290
1279 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 1291 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
1280 false /* check_for_repost */); 1292 false /* check_for_repost */);
1281 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1293 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1282 1294
1283 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1295 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1284 EXPECT_EQ(expected_original_url, 1296 EXPECT_EQ(expected_original_url,
1285 navigation_manager()->GetLastCommittedItem()->GetURL()); 1297 navigation_manager()->GetLastCommittedItem()->GetURL());
1286 } 1298 }
1287 1299
1288 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 1300 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
1289 // changes the last committed item's url to its original request url when there 1301 // changes the last committed item's url to its original request url when there
1290 // is no pending item, but there are forward items after last committed item. 1302 // is no pending item, but there are forward items after last committed item.
1291 TEST_F(NavigationManagerTest, 1303 TEST_P(NavigationManagerTest,
1292 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { 1304 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) {
1293 navigation_manager()->AddPendingItem( 1305 navigation_manager()->AddPendingItem(
1294 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1306 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1295 web::NavigationInitiationType::USER_INITIATED, 1307 web::NavigationInitiationType::USER_INITIATED,
1296 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1308 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1297 [session_controller() commitPendingItem]; 1309 [session_controller() commitPendingItem];
1298 1310
1299 navigation_manager()->AddPendingItem( 1311 navigation_manager()->AddPendingItem(
1300 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1312 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1301 web::NavigationInitiationType::USER_INITIATED, 1313 web::NavigationInitiationType::USER_INITIATED,
(...skipping 17 matching lines...) Expand all
1319 false /* check_for_repost */); 1331 false /* check_for_repost */);
1320 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1332 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1321 1333
1322 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1334 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1323 EXPECT_EQ(expected_original_url, 1335 EXPECT_EQ(expected_original_url,
1324 navigation_manager()->GetLastCommittedItem()->GetURL()); 1336 navigation_manager()->GetLastCommittedItem()->GetURL());
1325 } 1337 }
1326 1338
1327 // Tests that app-specific URLs are not rewritten for renderer-initiated loads 1339 // Tests that app-specific URLs are not rewritten for renderer-initiated loads
1328 // unless requested by a page with app-specific url. 1340 // unless requested by a page with app-specific url.
1329 TEST_F(NavigationManagerTest, RewritingAppSpecificUrls) { 1341 TEST_P(NavigationManagerTest, RewritingAppSpecificUrls) {
1330 // URL should not be rewritten as there is no committed URL. 1342 // URL should not be rewritten as there is no committed URL.
1331 GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize()); 1343 GURL url1(url::SchemeHostPort(kSchemeToRewrite, "test", 0).Serialize());
1332 navigation_manager()->AddPendingItem( 1344 navigation_manager()->AddPendingItem(
1333 url1, Referrer(), ui::PAGE_TRANSITION_LINK, 1345 url1, Referrer(), ui::PAGE_TRANSITION_LINK,
1334 web::NavigationInitiationType::RENDERER_INITIATED, 1346 web::NavigationInitiationType::RENDERER_INITIATED,
1335 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1347 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1336 EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL()); 1348 EXPECT_EQ(url1, navigation_manager()->GetPendingItem()->GetURL());
1337 1349
1338 // URL should not be rewritten because last committed URL is not app-specific. 1350 // URL should not be rewritten because last committed URL is not app-specific.
1339 [session_controller() commitPendingItem]; 1351 [session_controller() commitPendingItem];
(...skipping 20 matching lines...) Expand all
1360 navigation_manager()->AddPendingItem( 1372 navigation_manager()->AddPendingItem(
1361 url4, Referrer(), ui::PAGE_TRANSITION_LINK, 1373 url4, Referrer(), ui::PAGE_TRANSITION_LINK,
1362 web::NavigationInitiationType::RENDERER_INITIATED, 1374 web::NavigationInitiationType::RENDERER_INITIATED,
1363 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1375 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1364 GURL rewritten_url4( 1376 GURL rewritten_url4(
1365 url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize()); 1377 url::SchemeHostPort(kTestWebUIScheme, "test4", 0).Serialize());
1366 EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL()); 1378 EXPECT_EQ(rewritten_url4, navigation_manager()->GetPendingItem()->GetURL());
1367 } 1379 }
1368 1380
1369 // Tests that GetIndexOfItem() returns the correct values. 1381 // Tests that GetIndexOfItem() returns the correct values.
1370 TEST_F(NavigationManagerTest, GetIndexOfItem) { 1382 TEST_P(NavigationManagerTest, GetIndexOfItem) {
1371 // Create two items and add them to the NavigationManagerImpl. 1383 // Create two items and add them to the NavigationManagerImpl.
1372 navigation_manager()->AddPendingItem( 1384 navigation_manager()->AddPendingItem(
1373 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1385 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1374 web::NavigationInitiationType::USER_INITIATED, 1386 web::NavigationInitiationType::USER_INITIATED,
1375 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1387 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1376 navigation_manager()->CommitPendingItem(); 1388 navigation_manager()->CommitPendingItem();
1377 web::NavigationItem* item0 = navigation_manager()->GetLastCommittedItem(); 1389 web::NavigationItem* item0 = navigation_manager()->GetLastCommittedItem();
1378 navigation_manager()->AddPendingItem( 1390 navigation_manager()->AddPendingItem(
1379 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1391 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1380 web::NavigationInitiationType::USER_INITIATED, 1392 web::NavigationInitiationType::USER_INITIATED,
1381 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1393 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1382 navigation_manager()->CommitPendingItem(); 1394 navigation_manager()->CommitPendingItem();
1383 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); 1395 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem();
1384 // Create an item that does not exist in the NavigationManagerImpl. 1396 // Create an item that does not exist in the NavigationManagerImpl.
1385 std::unique_ptr<web::NavigationItem> item_not_found = 1397 std::unique_ptr<web::NavigationItem> item_not_found =
1386 web::NavigationItem::Create(); 1398 web::NavigationItem::Create();
1387 // Verify GetIndexOfItem() results. 1399 // Verify GetIndexOfItem() results.
1388 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0)); 1400 EXPECT_EQ(0, navigation_manager()->GetIndexOfItem(item0));
1389 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1)); 1401 EXPECT_EQ(1, navigation_manager()->GetIndexOfItem(item1));
1390 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get())); 1402 EXPECT_EQ(-1, navigation_manager()->GetIndexOfItem(item_not_found.get()));
1391 } 1403 }
1392 1404
1405 INSTANTIATE_TEST_CASE_P(
1406 ProgrammaticNavigationManagerTest,
1407 NavigationManagerTest,
1408 ::testing::Values(true /* test_legacy_navigation_manager */));
1409
1393 } // namespace web 1410 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/navigation/navigation_manager_util_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698