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

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

Issue 2779383002: implement user agent override option. (Closed)
Patch Set: Rebase Created 3 years, 8 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
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/public/navigation_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #import "base/mac/scoped_nsobject.h" 8 #import "base/mac/scoped_nsobject.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/navigation_manager_delegate.h" 10 #import "ios/web/navigation/navigation_manager_delegate.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex()); 65 EXPECT_EQ(-1, navigation_manager()->GetLastCommittedItemIndex());
66 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 66 EXPECT_FALSE(navigation_manager()->GetPendingItem());
67 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 67 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
68 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); 68 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0));
69 } 69 }
70 70
71 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. 71 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry.
72 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { 72 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) {
73 navigation_manager()->AddPendingItem( 73 navigation_manager()->AddPendingItem(
74 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 74 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
75 web::NavigationInitiationType::USER_INITIATED); 75 web::NavigationInitiationType::USER_INITIATED,
76 web::NavigationManager::UserAgentOverrideOption::INHERIT);
76 [session_controller() commitPendingItem]; 77 [session_controller() commitPendingItem];
77 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 78 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
78 } 79 }
79 80
80 // Tests that GetPendingItemIndex() returns current item index if there is a 81 // Tests that GetPendingItemIndex() returns current item index if there is a
81 // pending entry. 82 // pending entry.
82 TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { 83 TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) {
83 navigation_manager()->AddPendingItem( 84 navigation_manager()->AddPendingItem(
84 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 85 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
85 web::NavigationInitiationType::USER_INITIATED); 86 web::NavigationInitiationType::USER_INITIATED,
87 web::NavigationManager::UserAgentOverrideOption::INHERIT);
86 [session_controller() commitPendingItem]; 88 [session_controller() commitPendingItem];
87 navigation_manager()->AddPendingItem( 89 navigation_manager()->AddPendingItem(
88 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 90 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
89 web::NavigationInitiationType::USER_INITIATED); 91 web::NavigationInitiationType::USER_INITIATED,
92 web::NavigationManager::UserAgentOverrideOption::INHERIT);
90 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 93 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
91 } 94 }
92 95
93 // Tests that GetPendingItemIndex() returns same index as was set by 96 // Tests that GetPendingItemIndex() returns same index as was set by
94 // -[CRWSessionController setPendingItemIndex:]. 97 // -[CRWSessionController setPendingItemIndex:].
95 TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { 98 TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) {
96 navigation_manager()->AddPendingItem( 99 navigation_manager()->AddPendingItem(
97 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 100 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
98 web::NavigationInitiationType::USER_INITIATED); 101 web::NavigationInitiationType::USER_INITIATED,
102 web::NavigationManager::UserAgentOverrideOption::INHERIT);
99 [session_controller() commitPendingItem]; 103 [session_controller() commitPendingItem];
100 navigation_manager()->AddPendingItem( 104 navigation_manager()->AddPendingItem(
101 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 105 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
102 web::NavigationInitiationType::USER_INITIATED); 106 web::NavigationInitiationType::USER_INITIATED,
107 web::NavigationManager::UserAgentOverrideOption::INHERIT);
103 [session_controller() commitPendingItem]; 108 [session_controller() commitPendingItem];
104 109
105 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 110 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
106 [session_controller() setPendingItemIndex:0]; 111 [session_controller() setPendingItemIndex:0];
107 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 112 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
108 } 113 }
109 114
110 // Tests that going back or negative offset is not possible without a committed 115 // Tests that going back or negative offset is not possible without a committed
111 // item. 116 // item.
112 TEST_F(NavigationManagerTest, CanGoBackWithoutCommitedItem) { 117 TEST_F(NavigationManagerTest, CanGoBackWithoutCommitedItem) {
113 EXPECT_FALSE(navigation_manager()->CanGoBack()); 118 EXPECT_FALSE(navigation_manager()->CanGoBack());
114 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 119 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
115 } 120 }
116 121
117 // Tests that going back or negative offset is not possible if there is a 122 // Tests that going back or negative offset is not possible if there is a
118 // transient item, but not committed items. 123 // transient item, but not committed items.
119 TEST_F(NavigationManagerTest, CanGoBackWithTransientItem) { 124 TEST_F(NavigationManagerTest, CanGoBackWithTransientItem) {
120 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 125 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
121 126
122 EXPECT_FALSE(navigation_manager()->CanGoBack()); 127 EXPECT_FALSE(navigation_manager()->CanGoBack());
123 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 128 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
124 } 129 }
125 130
126 // Tests that going back or negative offset is possible if there is a transient 131 // Tests that going back or negative offset is possible if there is a transient
127 // item and at least one committed item. 132 // item and at least one committed item.
128 TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { 133 TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) {
129 navigation_manager()->AddPendingItem( 134 navigation_manager()->AddPendingItem(
130 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 135 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
131 web::NavigationInitiationType::USER_INITIATED); 136 web::NavigationInitiationType::USER_INITIATED,
137 web::NavigationManager::UserAgentOverrideOption::INHERIT);
132 [session_controller() commitPendingItem]; 138 [session_controller() commitPendingItem];
133 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; 139 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")];
134 140
135 EXPECT_TRUE(navigation_manager()->CanGoBack()); 141 EXPECT_TRUE(navigation_manager()->CanGoBack());
136 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 142 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
137 } 143 }
138 144
139 // Tests that going back or negative offset is not possible if there is ony one 145 // Tests that going back or negative offset is not possible if there is ony one
140 // committed item and no transient item. 146 // committed item and no transient item.
141 TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { 147 TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) {
142 navigation_manager()->AddPendingItem( 148 navigation_manager()->AddPendingItem(
143 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 149 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
144 web::NavigationInitiationType::USER_INITIATED); 150 web::NavigationInitiationType::USER_INITIATED,
151 web::NavigationManager::UserAgentOverrideOption::INHERIT);
145 [session_controller() commitPendingItem]; 152 [session_controller() commitPendingItem];
146 153
147 EXPECT_FALSE(navigation_manager()->CanGoBack()); 154 EXPECT_FALSE(navigation_manager()->CanGoBack());
148 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 155 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
149 } 156 }
150 157
151 // Tests going back possibility with multiple committed items. 158 // Tests going back possibility with multiple committed items.
152 TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { 159 TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) {
153 navigation_manager()->AddPendingItem( 160 navigation_manager()->AddPendingItem(
154 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 161 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
155 web::NavigationInitiationType::USER_INITIATED); 162 web::NavigationInitiationType::USER_INITIATED,
163 web::NavigationManager::UserAgentOverrideOption::INHERIT);
156 [session_controller() commitPendingItem]; 164 [session_controller() commitPendingItem];
157 navigation_manager()->AddPendingItem( 165 navigation_manager()->AddPendingItem(
158 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 166 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
159 web::NavigationInitiationType::USER_INITIATED); 167 web::NavigationInitiationType::USER_INITIATED,
168 web::NavigationManager::UserAgentOverrideOption::INHERIT);
160 [session_controller() commitPendingItem]; 169 [session_controller() commitPendingItem];
161 navigation_manager()->AddPendingItem( 170 navigation_manager()->AddPendingItem(
162 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 171 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
163 web::NavigationInitiationType::USER_INITIATED); 172 web::NavigationInitiationType::USER_INITIATED,
173 web::NavigationManager::UserAgentOverrideOption::INHERIT);
164 [session_controller() commitPendingItem]; 174 [session_controller() commitPendingItem];
165 175
166 EXPECT_TRUE(navigation_manager()->CanGoBack()); 176 EXPECT_TRUE(navigation_manager()->CanGoBack());
167 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 177 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
168 178
169 [session_controller() goToItemAtIndex:1]; 179 [session_controller() goToItemAtIndex:1];
170 EXPECT_TRUE(navigation_manager()->CanGoBack()); 180 EXPECT_TRUE(navigation_manager()->CanGoBack());
171 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
172 182
173 [session_controller() goToItemAtIndex:0]; 183 [session_controller() goToItemAtIndex:0];
(...skipping 10 matching lines...) Expand all
184 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { 194 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) {
185 EXPECT_FALSE(navigation_manager()->CanGoForward()); 195 EXPECT_FALSE(navigation_manager()->CanGoForward());
186 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 196 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
187 } 197 }
188 198
189 // Tests that going forward or positive offset is not possible if there is ony 199 // Tests that going forward or positive offset is not possible if there is ony
190 // one committed item and no transient item. 200 // one committed item and no transient item.
191 TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { 201 TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) {
192 navigation_manager()->AddPendingItem( 202 navigation_manager()->AddPendingItem(
193 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 203 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
194 web::NavigationInitiationType::USER_INITIATED); 204 web::NavigationInitiationType::USER_INITIATED,
205 web::NavigationManager::UserAgentOverrideOption::INHERIT);
195 [session_controller() commitPendingItem]; 206 [session_controller() commitPendingItem];
196 207
197 EXPECT_FALSE(navigation_manager()->CanGoForward()); 208 EXPECT_FALSE(navigation_manager()->CanGoForward());
198 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 209 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
199 } 210 }
200 211
201 // Tests going forward possibility with multiple committed items. 212 // Tests going forward possibility with multiple committed items.
202 TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { 213 TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) {
203 navigation_manager()->AddPendingItem( 214 navigation_manager()->AddPendingItem(
204 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 215 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
205 web::NavigationInitiationType::USER_INITIATED); 216 web::NavigationInitiationType::USER_INITIATED,
217 web::NavigationManager::UserAgentOverrideOption::INHERIT);
206 [session_controller() commitPendingItem]; 218 [session_controller() commitPendingItem];
207 navigation_manager()->AddPendingItem( 219 navigation_manager()->AddPendingItem(
208 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 220 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
209 web::NavigationInitiationType::USER_INITIATED); 221 web::NavigationInitiationType::USER_INITIATED,
222 web::NavigationManager::UserAgentOverrideOption::INHERIT);
210 [session_controller() commitPendingItem]; 223 [session_controller() commitPendingItem];
211 navigation_manager()->AddPendingItem( 224 navigation_manager()->AddPendingItem(
212 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 225 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
213 web::NavigationInitiationType::USER_INITIATED); 226 web::NavigationInitiationType::USER_INITIATED,
227 web::NavigationManager::UserAgentOverrideOption::INHERIT);
214 [session_controller() commitPendingItem]; 228 [session_controller() commitPendingItem];
215 229
216 EXPECT_FALSE(navigation_manager()->CanGoForward()); 230 EXPECT_FALSE(navigation_manager()->CanGoForward());
217 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
218 232
219 [session_controller() goToItemAtIndex:1]; 233 [session_controller() goToItemAtIndex:1];
220 EXPECT_TRUE(navigation_manager()->CanGoForward()); 234 EXPECT_TRUE(navigation_manager()->CanGoForward());
221 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
222 236
223 [session_controller() goToItemAtIndex:0]; 237 [session_controller() goToItemAtIndex:0];
224 EXPECT_TRUE(navigation_manager()->CanGoForward()); 238 EXPECT_TRUE(navigation_manager()->CanGoForward());
225 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
226 240
227 [session_controller() goToItemAtIndex:1]; 241 [session_controller() goToItemAtIndex:1];
228 EXPECT_TRUE(navigation_manager()->CanGoForward()); 242 EXPECT_TRUE(navigation_manager()->CanGoForward());
229 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
230 244
231 [session_controller() goToItemAtIndex:2]; 245 [session_controller() goToItemAtIndex:2];
232 EXPECT_FALSE(navigation_manager()->CanGoForward()); 246 EXPECT_FALSE(navigation_manager()->CanGoForward());
233 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
234 } 248 }
235 249
236 // Tests CanGoToOffset API for positive, negative and zero delta. Tested 250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested
237 // navigation manager will have redirect entries to make sure they are 251 // navigation manager will have redirect entries to make sure they are
238 // appropriately skipped. 252 // appropriately skipped.
239 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { 253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) {
240 navigation_manager()->AddPendingItem( 254 navigation_manager()->AddPendingItem(
241 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, 255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
242 web::NavigationInitiationType::USER_INITIATED); 256 web::NavigationInitiationType::USER_INITIATED,
257 web::NavigationManager::UserAgentOverrideOption::INHERIT);
243 [session_controller() commitPendingItem]; 258 [session_controller() commitPendingItem];
244 navigation_manager()->AddPendingItem( 259 navigation_manager()->AddPendingItem(
245 GURL("http://www.url.com/redirect"), Referrer(), 260 GURL("http://www.url.com/redirect"), Referrer(),
246 ui::PAGE_TRANSITION_CLIENT_REDIRECT, 261 ui::PAGE_TRANSITION_CLIENT_REDIRECT,
247 web::NavigationInitiationType::USER_INITIATED); 262 web::NavigationInitiationType::USER_INITIATED,
263 web::NavigationManager::UserAgentOverrideOption::INHERIT);
248 [session_controller() commitPendingItem]; 264 [session_controller() commitPendingItem];
249 navigation_manager()->AddPendingItem( 265 navigation_manager()->AddPendingItem(
250 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, 266 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
251 web::NavigationInitiationType::USER_INITIATED); 267 web::NavigationInitiationType::USER_INITIATED,
268 web::NavigationManager::UserAgentOverrideOption::INHERIT);
252 [session_controller() commitPendingItem]; 269 [session_controller() commitPendingItem];
253 navigation_manager()->AddPendingItem( 270 navigation_manager()->AddPendingItem(
254 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, 271 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
255 web::NavigationInitiationType::USER_INITIATED); 272 web::NavigationInitiationType::USER_INITIATED,
273 web::NavigationManager::UserAgentOverrideOption::INHERIT);
256 [session_controller() commitPendingItem]; 274 [session_controller() commitPendingItem];
257 navigation_manager()->AddPendingItem( 275 navigation_manager()->AddPendingItem(
258 GURL("http://www.url.com/redirect"), Referrer(), 276 GURL("http://www.url.com/redirect"), Referrer(),
259 ui::PAGE_TRANSITION_CLIENT_REDIRECT, 277 ui::PAGE_TRANSITION_CLIENT_REDIRECT,
260 web::NavigationInitiationType::USER_INITIATED); 278 web::NavigationInitiationType::USER_INITIATED,
279 web::NavigationManager::UserAgentOverrideOption::INHERIT);
261 [session_controller() commitPendingItem]; 280 [session_controller() commitPendingItem];
262 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 281 ASSERT_EQ(5, navigation_manager()->GetItemCount());
263 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); 282 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
264 283
265 // Go to entry at index 1 and test API from that state. 284 // Go to entry at index 1 and test API from that state.
266 [session_controller() goToItemAtIndex:1]; 285 [session_controller() goToItemAtIndex:1];
267 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 286 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
268 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 287 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
269 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
270 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); 289 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1));
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 } 475 }
457 476
458 // Tests offsets with pending transient entries (specifically gong back and 477 // Tests offsets with pending transient entries (specifically gong back and
459 // forward from a pending navigation entry that is added to the middle of the 478 // forward from a pending navigation entry that is added to the middle of the
460 // navigation stack). 479 // navigation stack).
461 TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) { 480 TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) {
462 // Create a transient item in the middle of the navigation stack and go back 481 // Create a transient item in the middle of the navigation stack and go back
463 // to it (pending index is 1, current index is 2). 482 // to it (pending index is 1, current index is 2).
464 navigation_manager()->AddPendingItem( 483 navigation_manager()->AddPendingItem(
465 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, 484 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
466 web::NavigationInitiationType::USER_INITIATED); 485 web::NavigationInitiationType::USER_INITIATED,
486 web::NavigationManager::UserAgentOverrideOption::INHERIT);
467 [session_controller() commitPendingItem]; 487 [session_controller() commitPendingItem];
468 navigation_manager()->AddPendingItem( 488 navigation_manager()->AddPendingItem(
469 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK, 489 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
470 web::NavigationInitiationType::USER_INITIATED); 490 web::NavigationInitiationType::USER_INITIATED,
491 web::NavigationManager::UserAgentOverrideOption::INHERIT);
471 [session_controller() commitPendingItem]; 492 [session_controller() commitPendingItem];
472 navigation_manager()->AddPendingItem( 493 navigation_manager()->AddPendingItem(
473 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK, 494 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
474 web::NavigationInitiationType::USER_INITIATED); 495 web::NavigationInitiationType::USER_INITIATED,
496 web::NavigationManager::UserAgentOverrideOption::INHERIT);
475 [session_controller() commitPendingItem]; 497 [session_controller() commitPendingItem];
476 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; 498 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")];
477 [session_controller() setPendingItemIndex:1]; 499 [session_controller() setPendingItemIndex:1];
478 500
479 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 501 ASSERT_EQ(3, navigation_manager()->GetItemCount());
480 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); 502 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex());
481 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 503 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
482 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
483 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 505 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
484 506
485 // Now go forward to that middle transient item (pending index is 1, 507 // Now go forward to that middle transient item (pending index is 1,
486 // current index is 0). 508 // current index is 0).
487 [session_controller() goToItemAtIndex:0]; 509 [session_controller() goToItemAtIndex:0];
488 [session_controller() setPendingItemIndex:1]; 510 [session_controller() setPendingItemIndex:1];
489 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 511 ASSERT_EQ(3, navigation_manager()->GetItemCount());
490 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); 512 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex());
491 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 513 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
492 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 514 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
493 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 515 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
494 } 516 }
495 517
496 // Tests that desktop user agent can be enforced to use for next pending item. 518 // Tests that desktop user agent can be enforced to use for next pending item
497 TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) { 519 // when UserAgentOverrideOption is DESKTOP.
498 navigation_manager()->OverrideDesktopUserAgentForNextPendingItem(); 520 TEST_F(NavigationManagerTest, OverrideUserAgentWithDesktop) {
499 navigation_manager()->AddPendingItem( 521 navigation_manager()->AddPendingItem(
500 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 522 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
501 web::NavigationInitiationType::USER_INITIATED); 523 web::NavigationInitiationType::USER_INITIATED,
524 web::NavigationManager::UserAgentOverrideOption::INHERIT);
502 [session_controller() commitPendingItem]; 525 [session_controller() commitPendingItem];
503 NavigationItem* visible_item = navigation_manager()->GetVisibleItem(); 526 NavigationItem* last_committed_item =
504 EXPECT_EQ(visible_item->GetUserAgentType(), UserAgentType::DESKTOP); 527 navigation_manager()->GetLastCommittedItem();
528 EXPECT_EQ(UserAgentType::MOBILE, last_committed_item->GetUserAgentType());
529
530 navigation_manager()->AddPendingItem(
531 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
532 web::NavigationInitiationType::USER_INITIATED,
533 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
534 ASSERT_TRUE(navigation_manager()->GetPendingItem());
535 EXPECT_EQ(UserAgentType::DESKTOP,
536 navigation_manager()->GetPendingItem()->GetUserAgentType());
505 } 537 }
506 538
507 // Tests that the UserAgentType is propagated to subsequent NavigationItems. 539 // Tests that mobile user agent can be enforced to use for next pending item
508 TEST_F(NavigationManagerTest, UserAgentTypePropagation) { 540 // when UserAgentOverrideOption is MOBILE.
509 // Add and commit two NavigationItems. 541 TEST_F(NavigationManagerTest, OverrideUserAgentWithMobile) {
510 navigation_manager()->AddPendingItem( 542 navigation_manager()->AddPendingItem(
511 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 543 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
512 web::NavigationInitiationType::USER_INITIATED); 544 web::NavigationInitiationType::USER_INITIATED,
545 web::NavigationManager::UserAgentOverrideOption::INHERIT);
513 [session_controller() commitPendingItem]; 546 [session_controller() commitPendingItem];
514 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); 547 NavigationItem* last_committed_item =
515 ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); 548 navigation_manager()->GetLastCommittedItem();
549 last_committed_item->SetUserAgentType(UserAgentType::DESKTOP);
550 EXPECT_EQ(UserAgentType::DESKTOP, last_committed_item->GetUserAgentType());
551
516 navigation_manager()->AddPendingItem( 552 navigation_manager()->AddPendingItem(
517 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 553 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
518 web::NavigationInitiationType::USER_INITIATED); 554 web::NavigationInitiationType::USER_INITIATED,
555 web::NavigationManager::UserAgentOverrideOption::MOBILE);
556 ASSERT_TRUE(navigation_manager()->GetPendingItem());
557 EXPECT_EQ(UserAgentType::MOBILE,
558 navigation_manager()->GetPendingItem()->GetUserAgentType());
559 }
560
561 // Tests that the UserAgentType of an INHERIT item is propagated to subsequent
562 // item when UserAgentOverrideOption is INHERIT
563 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterInherit) {
564 navigation_manager()->AddPendingItem(
565 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
566 web::NavigationInitiationType::USER_INITIATED,
567 web::NavigationManager::UserAgentOverrideOption::INHERIT);
519 [session_controller() commitPendingItem]; 568 [session_controller() commitPendingItem];
520 web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); 569 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
570 EXPECT_EQ(web::UserAgentType::MOBILE,
571 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
521 572
522 // Verify that the second item's UserAgentType is equal to the first. 573 navigation_manager()->AddPendingItem(
523 EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); 574 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
575 web::NavigationInitiationType::USER_INITIATED,
576 web::NavigationManager::UserAgentOverrideOption::INHERIT);
577 [session_controller() commitPendingItem];
578 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
579 EXPECT_EQ(web::UserAgentType::MOBILE,
580 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
581 }
524 582
525 // Update |item2|'s UA type to DESKTOP and commit a new item. 583 // Tests that the UserAgentType of a MOBILE item is propagated to subsequent
526 item2->SetUserAgentType(web::UserAgentType::DESKTOP); 584 // item when UserAgentOverrideOption is INHERIT
527 ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); 585 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterMobile) {
528 navigation_manager()->AddPendingItem( 586 navigation_manager()->AddPendingItem(
529 GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 587 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
530 web::NavigationInitiationType::USER_INITIATED); 588 web::NavigationInitiationType::USER_INITIATED,
589 web::NavigationManager::UserAgentOverrideOption::MOBILE);
531 [session_controller() commitPendingItem]; 590 [session_controller() commitPendingItem];
532 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); 591 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
592 EXPECT_EQ(web::UserAgentType::MOBILE,
593 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
533 594
534 // Verify that the third item's UserAgentType is equal to the second. 595 navigation_manager()->AddPendingItem(
535 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); 596 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
597 web::NavigationInitiationType::USER_INITIATED,
598 web::NavigationManager::UserAgentOverrideOption::INHERIT);
599 [session_controller() commitPendingItem];
600 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
601 EXPECT_EQ(web::UserAgentType::MOBILE,
602 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
603 }
604
605 // Tests that the UserAgentType of a DESKTOP item is propagated to subsequent
606 // item when UserAgentOverrideOption is INHERIT
607 TEST_F(NavigationManagerTest, OverrideUserAgentWithInheritAfterDesktop) {
608 navigation_manager()->AddPendingItem(
609 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
610 web::NavigationInitiationType::USER_INITIATED,
611 web::NavigationManager::UserAgentOverrideOption::DESKTOP);
612 [session_controller() commitPendingItem];
613 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
614 EXPECT_EQ(web::UserAgentType::DESKTOP,
615 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
616
617 navigation_manager()->AddPendingItem(
618 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
619 web::NavigationInitiationType::USER_INITIATED,
620 web::NavigationManager::UserAgentOverrideOption::INHERIT);
621 [session_controller() commitPendingItem];
622 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
623 EXPECT_EQ(web::UserAgentType::DESKTOP,
624 navigation_manager()->GetLastCommittedItem()->GetUserAgentType());
536 } 625 }
537 626
538 // Tests that the UserAgentType is propagated to subsequent NavigationItems if 627 // Tests that the UserAgentType is propagated to subsequent NavigationItems if
539 // a native URL exists in between naviations. 628 // a native URL exists in between naviations.
540 TEST_F(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) { 629 TEST_F(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) {
541 // GURL::Replacements that will replace a GURL's scheme with the test native 630 // GURL::Replacements that will replace a GURL's scheme with the test native
542 // scheme. 631 // scheme.
543 GURL::Replacements native_scheme_replacement; 632 GURL::Replacements native_scheme_replacement;
544 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme); 633 native_scheme_replacement.SetSchemeStr(kTestNativeContentScheme);
545 634
546 // Create two non-native navigations that are separated by a native one. 635 // Create two non-native navigations that are separated by a native one.
547 navigation_manager()->AddPendingItem( 636 navigation_manager()->AddPendingItem(
548 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 637 GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
549 web::NavigationInitiationType::USER_INITIATED); 638 web::NavigationInitiationType::USER_INITIATED,
639 web::NavigationManager::UserAgentOverrideOption::INHERIT);
550 [session_controller() commitPendingItem]; 640 [session_controller() commitPendingItem];
551 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem(); 641 web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem();
552 ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType()); 642 ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType());
553 navigation_manager()->AddPendingItem( 643 navigation_manager()->AddPendingItem(
554 item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), 644 item1->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(),
555 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED); 645 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED,
646 web::NavigationManager::UserAgentOverrideOption::INHERIT);
556 [session_controller() commitPendingItem]; 647 [session_controller() commitPendingItem];
557 web::NavigationItem* native_item1 = 648 web::NavigationItem* native_item1 =
558 navigation_manager()->GetLastCommittedItem(); 649 navigation_manager()->GetLastCommittedItem();
559 ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType()); 650 ASSERT_EQ(web::UserAgentType::NONE, native_item1->GetUserAgentType());
560 navigation_manager()->AddPendingItem( 651 navigation_manager()->AddPendingItem(
561 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 652 GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
562 web::NavigationInitiationType::USER_INITIATED); 653 web::NavigationInitiationType::USER_INITIATED,
654 web::NavigationManager::UserAgentOverrideOption::INHERIT);
563 [session_controller() commitPendingItem]; 655 [session_controller() commitPendingItem];
564 web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem(); 656 web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem();
565 657
566 // Verify that |item1|'s UserAgentType is propagated to |item2|. 658 // Verify that |item1|'s UserAgentType is propagated to |item2|.
567 EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType()); 659 EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType());
568 660
569 // Update |item2|'s UA type to DESKTOP and add a third non-native navigation, 661 // Update |item2|'s UA type to DESKTOP and add a third non-native navigation,
570 // once again separated by a native one. 662 // once again separated by a native one.
571 item2->SetUserAgentType(web::UserAgentType::DESKTOP); 663 item2->SetUserAgentType(web::UserAgentType::DESKTOP);
572 ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType()); 664 ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType());
573 navigation_manager()->AddPendingItem( 665 navigation_manager()->AddPendingItem(
574 item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(), 666 item2->GetURL().ReplaceComponents(native_scheme_replacement), Referrer(),
575 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED); 667 ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED,
668 web::NavigationManager::UserAgentOverrideOption::INHERIT);
576 [session_controller() commitPendingItem]; 669 [session_controller() commitPendingItem];
577 web::NavigationItem* native_item2 = 670 web::NavigationItem* native_item2 =
578 navigation_manager()->GetLastCommittedItem(); 671 navigation_manager()->GetLastCommittedItem();
579 ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType()); 672 ASSERT_EQ(web::UserAgentType::NONE, native_item2->GetUserAgentType());
580 navigation_manager()->AddPendingItem( 673 navigation_manager()->AddPendingItem(
581 GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 674 GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
582 web::NavigationInitiationType::USER_INITIATED); 675 web::NavigationInitiationType::USER_INITIATED,
676 web::NavigationManager::UserAgentOverrideOption::INHERIT);
583 [session_controller() commitPendingItem]; 677 [session_controller() commitPendingItem];
584 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem(); 678 web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem();
585 679
586 // Verify that |item2|'s UserAgentType is propagated to |item3|. 680 // Verify that |item2|'s UserAgentType is propagated to |item3|.
587 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType()); 681 EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType());
588 } 682 }
589 683
590 // Tests that calling |Reload| with web::ReloadType::NORMAL is no-op when there 684 // Tests that calling |Reload| with web::ReloadType::NORMAL is no-op when there
591 // are no transient, pending and committed items. 685 // are no transient, pending and committed items.
592 TEST_F(NavigationManagerTest, ReloadEmptyWithNormalType) { 686 TEST_F(NavigationManagerTest, ReloadEmptyWithNormalType) {
593 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 687 ASSERT_FALSE(navigation_manager()->GetTransientItem());
594 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 688 ASSERT_FALSE(navigation_manager()->GetPendingItem());
595 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 689 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
596 690
597 navigation_manager()->Reload(web::ReloadType::NORMAL, 691 navigation_manager()->Reload(web::ReloadType::NORMAL,
598 false /* check_for_repost */); 692 false /* check_for_repost */);
599 EXPECT_FALSE(navigation_manager_delegate().reload_called()); 693 EXPECT_FALSE(navigation_manager_delegate().reload_called());
600 694
601 ASSERT_FALSE(navigation_manager()->GetTransientItem()); 695 ASSERT_FALSE(navigation_manager()->GetTransientItem());
602 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 696 ASSERT_FALSE(navigation_manager()->GetPendingItem());
603 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 697 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
604 } 698 }
605 699
606 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 700 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
607 // the renderer initiated pending item unchanged when there is one. 701 // the renderer initiated pending item unchanged when there is one.
608 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithNormalType) { 702 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithNormalType) {
609 GURL url_before_reload = GURL("http://www.url.com"); 703 GURL url_before_reload = GURL("http://www.url.com");
610 navigation_manager()->AddPendingItem( 704 navigation_manager()->AddPendingItem(
611 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 705 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
612 web::NavigationInitiationType::RENDERER_INITIATED); 706 web::NavigationInitiationType::RENDERER_INITIATED,
707 web::NavigationManager::UserAgentOverrideOption::INHERIT);
613 708
614 navigation_manager()->Reload(web::ReloadType::NORMAL, 709 navigation_manager()->Reload(web::ReloadType::NORMAL,
615 false /* check_for_repost */); 710 false /* check_for_repost */);
616 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 711 EXPECT_TRUE(navigation_manager_delegate().reload_called());
617 712
618 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 713 ASSERT_TRUE(navigation_manager()->GetPendingItem());
619 EXPECT_EQ(url_before_reload, 714 EXPECT_EQ(url_before_reload,
620 navigation_manager()->GetPendingItem()->GetURL()); 715 navigation_manager()->GetPendingItem()->GetURL());
621 } 716 }
622 717
623 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 718 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
624 // the user initiated pending item unchanged when there is one. 719 // the user initiated pending item unchanged when there is one.
625 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithNormalType) { 720 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithNormalType) {
626 GURL url_before_reload = GURL("http://www.url.com"); 721 GURL url_before_reload = GURL("http://www.url.com");
627 navigation_manager()->AddPendingItem( 722 navigation_manager()->AddPendingItem(
628 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 723 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
629 web::NavigationInitiationType::USER_INITIATED); 724 web::NavigationInitiationType::USER_INITIATED,
725 web::NavigationManager::UserAgentOverrideOption::INHERIT);
630 726
631 navigation_manager()->Reload(web::ReloadType::NORMAL, 727 navigation_manager()->Reload(web::ReloadType::NORMAL,
632 false /* check_for_repost */); 728 false /* check_for_repost */);
633 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 729 EXPECT_TRUE(navigation_manager_delegate().reload_called());
634 730
635 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 731 ASSERT_TRUE(navigation_manager()->GetPendingItem());
636 EXPECT_EQ(url_before_reload, 732 EXPECT_EQ(url_before_reload,
637 navigation_manager()->GetPendingItem()->GetURL()); 733 navigation_manager()->GetPendingItem()->GetURL());
638 } 734 }
639 735
640 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 736 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
641 // the last committed item unchanged when there is no pending item. 737 // the last committed item unchanged when there is no pending item.
642 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) { 738 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithNormalType) {
643 navigation_manager()->AddPendingItem( 739 navigation_manager()->AddPendingItem(
644 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 740 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
645 web::NavigationInitiationType::USER_INITIATED); 741 web::NavigationInitiationType::USER_INITIATED,
742 web::NavigationManager::UserAgentOverrideOption::INHERIT);
646 [session_controller() commitPendingItem]; 743 [session_controller() commitPendingItem];
647 744
648 GURL url_before_reload = GURL("http://www.url.com/1"); 745 GURL url_before_reload = GURL("http://www.url.com/1");
649 navigation_manager()->AddPendingItem( 746 navigation_manager()->AddPendingItem(
650 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 747 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
651 web::NavigationInitiationType::USER_INITIATED); 748 web::NavigationInitiationType::USER_INITIATED,
749 web::NavigationManager::UserAgentOverrideOption::INHERIT);
652 [session_controller() commitPendingItem]; 750 [session_controller() commitPendingItem];
653 751
654 navigation_manager()->Reload(web::ReloadType::NORMAL, 752 navigation_manager()->Reload(web::ReloadType::NORMAL,
655 false /* check_for_repost */); 753 false /* check_for_repost */);
656 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 754 EXPECT_TRUE(navigation_manager_delegate().reload_called());
657 755
658 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 756 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
659 EXPECT_EQ(url_before_reload, 757 EXPECT_EQ(url_before_reload,
660 navigation_manager()->GetLastCommittedItem()->GetURL()); 758 navigation_manager()->GetLastCommittedItem()->GetURL());
661 } 759 }
662 760
663 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of 761 // Tests that calling |Reload| with web::ReloadType::NORMAL leaves the url of
664 // the last committed item unchanged when there is no pending item, but there 762 // the last committed item unchanged when there is no pending item, but there
665 // forward items after last committed item. 763 // forward items after last committed item.
666 TEST_F(NavigationManagerTest, 764 TEST_F(NavigationManagerTest,
667 ReloadLastCommittedItemWithNormalTypeWithForwardItems) { 765 ReloadLastCommittedItemWithNormalTypeWithForwardItems) {
668 navigation_manager()->AddPendingItem( 766 navigation_manager()->AddPendingItem(
669 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 767 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
670 web::NavigationInitiationType::USER_INITIATED); 768 web::NavigationInitiationType::USER_INITIATED,
769 web::NavigationManager::UserAgentOverrideOption::INHERIT);
671 [session_controller() commitPendingItem]; 770 [session_controller() commitPendingItem];
672 771
673 GURL url_before_reload = GURL("http://www.url.com/1"); 772 GURL url_before_reload = GURL("http://www.url.com/1");
674 navigation_manager()->AddPendingItem( 773 navigation_manager()->AddPendingItem(
675 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED, 774 url_before_reload, Referrer(), ui::PAGE_TRANSITION_TYPED,
676 web::NavigationInitiationType::USER_INITIATED); 775 web::NavigationInitiationType::USER_INITIATED,
776 web::NavigationManager::UserAgentOverrideOption::INHERIT);
677 [session_controller() commitPendingItem]; 777 [session_controller() commitPendingItem];
678 778
679 navigation_manager()->AddPendingItem( 779 navigation_manager()->AddPendingItem(
680 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, 780 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED,
681 web::NavigationInitiationType::USER_INITIATED); 781 web::NavigationInitiationType::USER_INITIATED,
782 web::NavigationManager::UserAgentOverrideOption::INHERIT);
682 [session_controller() commitPendingItem]; 783 [session_controller() commitPendingItem];
683 784
684 [session_controller() goToItemAtIndex:1]; 785 [session_controller() goToItemAtIndex:1];
685 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 786 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
686 787
687 navigation_manager()->Reload(web::ReloadType::NORMAL, 788 navigation_manager()->Reload(web::ReloadType::NORMAL,
688 false /* check_for_repost */); 789 false /* check_for_repost */);
689 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 790 EXPECT_TRUE(navigation_manager_delegate().reload_called());
690 791
691 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 792 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
(...skipping 16 matching lines...) Expand all
708 ASSERT_FALSE(navigation_manager()->GetPendingItem()); 809 ASSERT_FALSE(navigation_manager()->GetPendingItem());
709 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem()); 810 ASSERT_FALSE(navigation_manager()->GetLastCommittedItem());
710 } 811 }
711 812
712 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 813 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
713 // changes the renderer initiated pending item's url to its original request url 814 // changes the renderer initiated pending item's url to its original request url
714 // when there is one. 815 // when there is one.
715 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithOriginalType) { 816 TEST_F(NavigationManagerTest, ReloadRendererPendingItemWithOriginalType) {
716 navigation_manager()->AddPendingItem( 817 navigation_manager()->AddPendingItem(
717 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 818 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
718 web::NavigationInitiationType::RENDERER_INITIATED); 819 web::NavigationInitiationType::RENDERER_INITIATED,
820 web::NavigationManager::UserAgentOverrideOption::INHERIT);
719 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 821 ASSERT_TRUE(navigation_manager()->GetPendingItem());
720 GURL expected_original_url = GURL("http://www.url.com/original"); 822 GURL expected_original_url = GURL("http://www.url.com/original");
721 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 823 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
722 expected_original_url); 824 expected_original_url);
723 825
724 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 826 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
725 false /* check_for_repost */); 827 false /* check_for_repost */);
726 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 828 EXPECT_TRUE(navigation_manager_delegate().reload_called());
727 829
728 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 830 ASSERT_TRUE(navigation_manager()->GetPendingItem());
729 EXPECT_EQ(expected_original_url, 831 EXPECT_EQ(expected_original_url,
730 navigation_manager()->GetPendingItem()->GetURL()); 832 navigation_manager()->GetPendingItem()->GetURL());
731 } 833 }
732 834
733 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 835 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
734 // changes the user initiated pending item's url to its original request url 836 // changes the user initiated pending item's url to its original request url
735 // when there is one. 837 // when there is one.
736 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithOriginalType) { 838 TEST_F(NavigationManagerTest, ReloadUserPendingItemWithOriginalType) {
737 navigation_manager()->AddPendingItem( 839 navigation_manager()->AddPendingItem(
738 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED, 840 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
739 web::NavigationInitiationType::USER_INITIATED); 841 web::NavigationInitiationType::USER_INITIATED,
842 web::NavigationManager::UserAgentOverrideOption::INHERIT);
740 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 843 ASSERT_TRUE(navigation_manager()->GetPendingItem());
741 GURL expected_original_url = GURL("http://www.url.com/original"); 844 GURL expected_original_url = GURL("http://www.url.com/original");
742 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 845 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
743 expected_original_url); 846 expected_original_url);
744 847
745 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 848 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
746 false /* check_for_repost */); 849 false /* check_for_repost */);
747 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 850 EXPECT_TRUE(navigation_manager_delegate().reload_called());
748 851
749 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 852 ASSERT_TRUE(navigation_manager()->GetPendingItem());
750 EXPECT_EQ(expected_original_url, 853 EXPECT_EQ(expected_original_url,
751 navigation_manager()->GetPendingItem()->GetURL()); 854 navigation_manager()->GetPendingItem()->GetURL());
752 } 855 }
753 856
754 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 857 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
755 // changes the last committed item's url to its original request url when there 858 // changes the last committed item's url to its original request url when there
756 // is no pending item. 859 // is no pending item.
757 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) { 860 TEST_F(NavigationManagerTest, ReloadLastCommittedItemWithOriginalType) {
758 navigation_manager()->AddPendingItem( 861 navigation_manager()->AddPendingItem(
759 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 862 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
760 web::NavigationInitiationType::USER_INITIATED); 863 web::NavigationInitiationType::USER_INITIATED,
864 web::NavigationManager::UserAgentOverrideOption::INHERIT);
761 [session_controller() commitPendingItem]; 865 [session_controller() commitPendingItem];
762 866
763 navigation_manager()->AddPendingItem( 867 navigation_manager()->AddPendingItem(
764 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 868 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
765 web::NavigationInitiationType::USER_INITIATED); 869 web::NavigationInitiationType::USER_INITIATED,
870 web::NavigationManager::UserAgentOverrideOption::INHERIT);
766 GURL expected_original_url = GURL("http://www.url.com/1/original"); 871 GURL expected_original_url = GURL("http://www.url.com/1/original");
767 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 872 ASSERT_TRUE(navigation_manager()->GetPendingItem());
768 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 873 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
769 expected_original_url); 874 expected_original_url);
770 [session_controller() commitPendingItem]; 875 [session_controller() commitPendingItem];
771 876
772 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 877 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
773 false /* check_for_repost */); 878 false /* check_for_repost */);
774 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 879 EXPECT_TRUE(navigation_manager_delegate().reload_called());
775 880
776 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 881 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
777 EXPECT_EQ(expected_original_url, 882 EXPECT_EQ(expected_original_url,
778 navigation_manager()->GetLastCommittedItem()->GetURL()); 883 navigation_manager()->GetLastCommittedItem()->GetURL());
779 } 884 }
780 885
781 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL 886 // Tests that calling |Reload| with web::ReloadType::ORIGINAL_REQUEST_URL
782 // changes the last committed item's url to its original request url when there 887 // changes the last committed item's url to its original request url when there
783 // is no pending item, but there are forward items after last committed item. 888 // is no pending item, but there are forward items after last committed item.
784 TEST_F(NavigationManagerTest, 889 TEST_F(NavigationManagerTest,
785 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) { 890 ReloadLastCommittedItemWithOriginalTypeWithForwardItems) {
786 navigation_manager()->AddPendingItem( 891 navigation_manager()->AddPendingItem(
787 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED, 892 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
788 web::NavigationInitiationType::USER_INITIATED); 893 web::NavigationInitiationType::USER_INITIATED,
894 web::NavigationManager::UserAgentOverrideOption::INHERIT);
789 [session_controller() commitPendingItem]; 895 [session_controller() commitPendingItem];
790 896
791 navigation_manager()->AddPendingItem( 897 navigation_manager()->AddPendingItem(
792 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 898 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
793 web::NavigationInitiationType::USER_INITIATED); 899 web::NavigationInitiationType::USER_INITIATED,
900 web::NavigationManager::UserAgentOverrideOption::INHERIT);
794 GURL expected_original_url = GURL("http://www.url.com/1/original"); 901 GURL expected_original_url = GURL("http://www.url.com/1/original");
795 ASSERT_TRUE(navigation_manager()->GetPendingItem()); 902 ASSERT_TRUE(navigation_manager()->GetPendingItem());
796 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 903 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
797 expected_original_url); 904 expected_original_url);
798 [session_controller() commitPendingItem]; 905 [session_controller() commitPendingItem];
799 906
800 navigation_manager()->AddPendingItem( 907 navigation_manager()->AddPendingItem(
801 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, 908 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED,
802 web::NavigationInitiationType::USER_INITIATED); 909 web::NavigationInitiationType::USER_INITIATED,
910 web::NavigationManager::UserAgentOverrideOption::INHERIT);
803 [session_controller() commitPendingItem]; 911 [session_controller() commitPendingItem];
804 912
805 [session_controller() goToItemAtIndex:1]; 913 [session_controller() goToItemAtIndex:1];
806 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 914 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
807 915
808 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 916 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
809 false /* check_for_repost */); 917 false /* check_for_repost */);
810 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 918 EXPECT_TRUE(navigation_manager_delegate().reload_called());
811 919
812 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 920 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
813 EXPECT_EQ(expected_original_url, 921 EXPECT_EQ(expected_original_url,
814 navigation_manager()->GetLastCommittedItem()->GetURL()); 922 navigation_manager()->GetLastCommittedItem()->GetURL());
815 } 923 }
816 924
817 } // namespace web 925 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/public/navigation_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698