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

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

Issue 2832853002: Handle correctly start and commit of non-latest navigations. (Closed)
Patch Set: 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
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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 [session_controller() commitPendingItem]; 169 [session_controller() commitPendingItem];
170 navigation_manager()->AddPendingItem( 170 navigation_manager()->AddPendingItem(
171 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 171 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
172 web::NavigationInitiationType::USER_INITIATED, 172 web::NavigationInitiationType::USER_INITIATED,
173 web::NavigationManager::UserAgentOverrideOption::INHERIT); 173 web::NavigationManager::UserAgentOverrideOption::INHERIT);
174 [session_controller() commitPendingItem]; 174 [session_controller() commitPendingItem];
175 175
176 EXPECT_TRUE(navigation_manager()->CanGoBack()); 176 EXPECT_TRUE(navigation_manager()->CanGoBack());
177 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 177 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
178 178
179 [session_controller() goToItemAtIndex:1]; 179 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
180 EXPECT_TRUE(navigation_manager()->CanGoBack()); 180 EXPECT_TRUE(navigation_manager()->CanGoBack());
181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
182 182
183 [session_controller() goToItemAtIndex:0]; 183 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO];
184 EXPECT_FALSE(navigation_manager()->CanGoBack()); 184 EXPECT_FALSE(navigation_manager()->CanGoBack());
185 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 185 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
186 186
187 [session_controller() goToItemAtIndex:1]; 187 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
188 EXPECT_TRUE(navigation_manager()->CanGoBack()); 188 EXPECT_TRUE(navigation_manager()->CanGoBack());
189 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 189 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
190 } 190 }
191 191
192 // Tests that going forward or positive offset is not possible without a 192 // Tests that going forward or positive offset is not possible without a
193 // committed item. 193 // committed item.
194 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { 194 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) {
195 EXPECT_FALSE(navigation_manager()->CanGoForward()); 195 EXPECT_FALSE(navigation_manager()->CanGoForward());
196 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 196 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
197 } 197 }
(...skipping 25 matching lines...) Expand all
223 [session_controller() commitPendingItem]; 223 [session_controller() commitPendingItem];
224 navigation_manager()->AddPendingItem( 224 navigation_manager()->AddPendingItem(
225 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED, 225 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
226 web::NavigationInitiationType::USER_INITIATED, 226 web::NavigationInitiationType::USER_INITIATED,
227 web::NavigationManager::UserAgentOverrideOption::INHERIT); 227 web::NavigationManager::UserAgentOverrideOption::INHERIT);
228 [session_controller() commitPendingItem]; 228 [session_controller() commitPendingItem];
229 229
230 EXPECT_FALSE(navigation_manager()->CanGoForward()); 230 EXPECT_FALSE(navigation_manager()->CanGoForward());
231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
232 232
233 [session_controller() goToItemAtIndex:1]; 233 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
234 EXPECT_TRUE(navigation_manager()->CanGoForward()); 234 EXPECT_TRUE(navigation_manager()->CanGoForward());
235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
236 236
237 [session_controller() goToItemAtIndex:0]; 237 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO];
238 EXPECT_TRUE(navigation_manager()->CanGoForward()); 238 EXPECT_TRUE(navigation_manager()->CanGoForward());
239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
240 240
241 [session_controller() goToItemAtIndex:1]; 241 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
242 EXPECT_TRUE(navigation_manager()->CanGoForward()); 242 EXPECT_TRUE(navigation_manager()->CanGoForward());
243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
244 244
245 [session_controller() goToItemAtIndex:2]; 245 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO];
246 EXPECT_FALSE(navigation_manager()->CanGoForward()); 246 EXPECT_FALSE(navigation_manager()->CanGoForward());
247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
248 } 248 }
249 249
250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested 250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested
251 // navigation manager will have redirect entries to make sure they are 251 // navigation manager will have redirect entries to make sure they are
252 // appropriately skipped. 252 // appropriately skipped.
253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { 253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) {
254 navigation_manager()->AddPendingItem( 254 navigation_manager()->AddPendingItem(
255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK, 255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
(...skipping 19 matching lines...) Expand all
275 navigation_manager()->AddPendingItem( 275 navigation_manager()->AddPendingItem(
276 GURL("http://www.url.com/redirect"), Referrer(), 276 GURL("http://www.url.com/redirect"), Referrer(),
277 ui::PAGE_TRANSITION_CLIENT_REDIRECT, 277 ui::PAGE_TRANSITION_CLIENT_REDIRECT,
278 web::NavigationInitiationType::USER_INITIATED, 278 web::NavigationInitiationType::USER_INITIATED,
279 web::NavigationManager::UserAgentOverrideOption::INHERIT); 279 web::NavigationManager::UserAgentOverrideOption::INHERIT);
280 [session_controller() commitPendingItem]; 280 [session_controller() commitPendingItem];
281 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 281 ASSERT_EQ(5, navigation_manager()->GetItemCount());
282 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); 282 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
283 283
284 // 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.
285 [session_controller() goToItemAtIndex:1]; 285 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
286 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 286 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
287 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 287 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 288 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
289 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); 289 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1));
290 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 290 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
291 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2)); 291 EXPECT_EQ(-2, navigation_manager()->GetIndexForOffset(-2));
292 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 292 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
293 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 293 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
294 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2)); 294 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
295 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2)); 295 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(2));
296 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3)); 296 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
297 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3)); 297 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(3));
298 // Test with large values. 298 // Test with large values.
299 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 299 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
300 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 300 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
301 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 301 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
302 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 302 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
303 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 303 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
304 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN)); 304 EXPECT_EQ(INT_MIN, navigation_manager()->GetIndexForOffset(INT_MIN));
305 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000)); 305 EXPECT_EQ(-1000000000, navigation_manager()->GetIndexForOffset(-1000000000));
306 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000)); 306 EXPECT_EQ(1000000002, navigation_manager()->GetIndexForOffset(1000000000));
307 307
308 // Go to entry at index 2 and test API from that state. 308 // Go to entry at index 2 and test API from that state.
309 [session_controller() goToItemAtIndex:2]; 309 [session_controller() goToItemAtIndex:2 discardNonCommittedItems:NO];
310 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); 310 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex());
311 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 311 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
312 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 312 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
313 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1)); 313 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-1));
314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2)); 314 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
315 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2)); 315 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-2));
316 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 316 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
317 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1)); 317 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(1));
318 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 318 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
319 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2)); 319 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(2));
320 // Test with large values. 320 // Test with large values.
321 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 321 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
322 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 322 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
323 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 323 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
324 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 324 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
325 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 325 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
326 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); 326 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN));
327 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); 327 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000));
328 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); 328 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000));
329 329
330 // Go to entry at index 4 and test API from that state. 330 // Go to entry at index 4 and test API from that state.
331 [session_controller() goToItemAtIndex:4]; 331 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO];
332 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); 332 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
333 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 333 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
334 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 334 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
335 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); 335 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1));
336 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 336 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
337 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); 337 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2));
338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 338 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
339 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 339 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
340 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 340 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
341 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); 341 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 417 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
418 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 418 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
419 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 419 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
420 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 420 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
421 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 421 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
422 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN)); 422 EXPECT_EQ(-2147483647, navigation_manager()->GetIndexForOffset(INT_MIN));
423 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000)); 423 EXPECT_EQ(-999999999, navigation_manager()->GetIndexForOffset(-1000000000));
424 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000)); 424 EXPECT_EQ(1000000003, navigation_manager()->GetIndexForOffset(1000000000));
425 425
426 // Set pending index to 4 and committed entry to 1 and test. 426 // Set pending index to 4 and committed entry to 1 and test.
427 [session_controller() goToItemAtIndex:1]; 427 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
428 [session_controller() setPendingItemIndex:4]; 428 [session_controller() setPendingItemIndex:4];
429 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 429 ASSERT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
430 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex()); 430 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
431 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 431 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
432 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1)); 432 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-1));
433 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 433 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
434 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2)); 434 EXPECT_EQ(1, navigation_manager()->GetIndexForOffset(-2));
435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 435 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
436 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1)); 436 EXPECT_EQ(5, navigation_manager()->GetIndexForOffset(1));
437 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2)); 437 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
438 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2)); 438 EXPECT_EQ(6, navigation_manager()->GetIndexForOffset(2));
439 // Test with large values. 439 // Test with large values.
440 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX)); 440 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MAX));
441 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN)); 441 EXPECT_FALSE(navigation_manager()->CanGoToOffset(INT_MIN));
442 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000)); 442 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1000000000));
443 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000)); 443 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1000000000));
444 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX)); 444 EXPECT_EQ(INT_MAX, navigation_manager()->GetIndexForOffset(INT_MAX));
445 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN)); 445 EXPECT_EQ(-2147483646, navigation_manager()->GetIndexForOffset(INT_MIN));
446 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000)); 446 EXPECT_EQ(-999999998, navigation_manager()->GetIndexForOffset(-1000000000));
447 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 447 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
448 448
449 // Test with existing transient entry in the end of the stack. 449 // Test with existing transient entry in the end of the stack.
450 [session_controller() goToItemAtIndex:4]; 450 [session_controller() goToItemAtIndex:4 discardNonCommittedItems:NO];
451 [session_controller() setPendingItemIndex:-1]; 451 [session_controller() setPendingItemIndex:-1];
452 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 452 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
453 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 453 ASSERT_EQ(5, navigation_manager()->GetItemCount());
454 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex()); 454 ASSERT_EQ(4, navigation_manager()->GetLastCommittedItemIndex());
455 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 455 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
456 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 456 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
457 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1)); 457 EXPECT_EQ(4, navigation_manager()->GetIndexForOffset(-1));
458 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2)); 458 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
459 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2)); 459 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(-2));
460 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3)); 460 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 [session_controller() setPendingItemIndex:1]; 499 [session_controller() setPendingItemIndex:1];
500 500
501 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 501 ASSERT_EQ(3, navigation_manager()->GetItemCount());
502 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex()); 502 ASSERT_EQ(2, navigation_manager()->GetLastCommittedItemIndex());
503 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 503 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 504 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
505 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 505 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
506 506
507 // 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,
508 // current index is 0). 508 // current index is 0).
509 [session_controller() goToItemAtIndex:0]; 509 [session_controller() goToItemAtIndex:0 discardNonCommittedItems:NO];
510 [session_controller() setPendingItemIndex:1]; 510 [session_controller() setPendingItemIndex:1];
511 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 511 ASSERT_EQ(3, navigation_manager()->GetItemCount());
512 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex()); 512 ASSERT_EQ(0, navigation_manager()->GetLastCommittedItemIndex());
513 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 513 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
514 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 514 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
515 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 515 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
516 } 516 }
517 517
518 // Tests that when given a pending item, adding a new pending item replaces the 518 // Tests that when given a pending item, adding a new pending item replaces the
519 // existing pending item if their URLs are different. 519 // existing pending item if their URLs are different.
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 web::NavigationInitiationType::USER_INITIATED, 1152 web::NavigationInitiationType::USER_INITIATED,
1153 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1153 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1154 [session_controller() commitPendingItem]; 1154 [session_controller() commitPendingItem];
1155 1155
1156 navigation_manager()->AddPendingItem( 1156 navigation_manager()->AddPendingItem(
1157 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1157 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1158 web::NavigationInitiationType::USER_INITIATED, 1158 web::NavigationInitiationType::USER_INITIATED,
1159 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1159 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1160 [session_controller() commitPendingItem]; 1160 [session_controller() commitPendingItem];
1161 1161
1162 [session_controller() goToItemAtIndex:1]; 1162 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
1163 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 1163 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
1164 1164
1165 navigation_manager()->Reload(web::ReloadType::NORMAL, 1165 navigation_manager()->Reload(web::ReloadType::NORMAL,
1166 false /* check_for_repost */); 1166 false /* check_for_repost */);
1167 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1167 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1168 1168
1169 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1169 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1170 EXPECT_EQ(url_before_reload, 1170 EXPECT_EQ(url_before_reload,
1171 navigation_manager()->GetLastCommittedItem()->GetURL()); 1171 navigation_manager()->GetLastCommittedItem()->GetURL());
1172 } 1172 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1280 navigation_manager()->GetPendingItem()->SetOriginalRequestURL( 1280 navigation_manager()->GetPendingItem()->SetOriginalRequestURL(
1281 expected_original_url); 1281 expected_original_url);
1282 [session_controller() commitPendingItem]; 1282 [session_controller() commitPendingItem];
1283 1283
1284 navigation_manager()->AddPendingItem( 1284 navigation_manager()->AddPendingItem(
1285 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED, 1285 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_TYPED,
1286 web::NavigationInitiationType::USER_INITIATED, 1286 web::NavigationInitiationType::USER_INITIATED,
1287 web::NavigationManager::UserAgentOverrideOption::INHERIT); 1287 web::NavigationManager::UserAgentOverrideOption::INHERIT);
1288 [session_controller() commitPendingItem]; 1288 [session_controller() commitPendingItem];
1289 1289
1290 [session_controller() goToItemAtIndex:1]; 1290 [session_controller() goToItemAtIndex:1 discardNonCommittedItems:NO];
1291 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex()); 1291 EXPECT_EQ(1, navigation_manager()->GetLastCommittedItemIndex());
1292 1292
1293 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL, 1293 navigation_manager()->Reload(web::ReloadType::ORIGINAL_REQUEST_URL,
1294 false /* check_for_repost */); 1294 false /* check_for_repost */);
1295 EXPECT_TRUE(navigation_manager_delegate().reload_called()); 1295 EXPECT_TRUE(navigation_manager_delegate().reload_called());
1296 1296
1297 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem()); 1297 ASSERT_TRUE(navigation_manager()->GetLastCommittedItem());
1298 EXPECT_EQ(expected_original_url, 1298 EXPECT_EQ(expected_original_url,
1299 navigation_manager()->GetLastCommittedItem()->GetURL()); 1299 navigation_manager()->GetLastCommittedItem()->GetURL());
1300 } 1300 }
1301 1301
1302 } // namespace web 1302 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/crw_session_controller_unittest.mm ('k') | ios/web/web_state/ui/crw_web_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698