Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/crw_session_controller.h" | 5 #import "ios/web/navigation/crw_session_controller.h" |
| 6 | 6 |
| 7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 #import "testing/gtest_mac.h" | 23 #import "testing/gtest_mac.h" |
| 24 #include "testing/platform_test.h" | 24 #include "testing/platform_test.h" |
| 25 | 25 |
| 26 @interface CRWSessionController (Testing) | 26 @interface CRWSessionController (Testing) |
| 27 - (const GURL&)URLForItemAtIndex:(size_t)index; | 27 - (const GURL&)URLForItemAtIndex:(size_t)index; |
| 28 - (const GURL&)currentURL; | 28 - (const GURL&)currentURL; |
| 29 @end | 29 @end |
| 30 | 30 |
| 31 @implementation CRWSessionController (Testing) | 31 @implementation CRWSessionController (Testing) |
| 32 - (const GURL&)URLForItemAtIndex:(size_t)index { | 32 - (const GURL&)URLForItemAtIndex:(size_t)index { |
| 33 web::NavigationItemList items = self.items; | 33 if (index < self.items.size()) |
| 34 if (index < items.size()) | 34 return self.items[index]->GetURL(); |
| 35 return items[index]->GetURL(); | |
| 36 return GURL::EmptyGURL(); | 35 return GURL::EmptyGURL(); |
| 37 } | 36 } |
| 38 | 37 |
| 39 - (const GURL&)currentURL { | 38 - (const GURL&)currentURL { |
| 40 return self.currentItem ? self.currentItem->GetURL() : GURL::EmptyGURL(); | 39 return self.currentItem ? self.currentItem->GetURL() : GURL::EmptyGURL(); |
| 41 } | 40 } |
| 42 @end | 41 @end |
| 43 | 42 |
| 44 namespace { | 43 namespace { |
| 45 | 44 |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 71 [session_controller_ | 70 [session_controller_ |
| 72 addPendingItem:GURL("http://www.example.com") | 71 addPendingItem:GURL("http://www.example.com") |
| 73 referrer:web::Referrer() | 72 referrer:web::Referrer() |
| 74 transition:ui::PAGE_TRANSITION_TYPED | 73 transition:ui::PAGE_TRANSITION_TYPED |
| 75 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 74 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 76 [session_controller_ commitPendingItem]; | 75 [session_controller_ commitPendingItem]; |
| 77 | 76 |
| 78 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 77 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 79 [session_controller_ setPendingItemIndex:0]; | 78 [session_controller_ setPendingItemIndex:0]; |
| 80 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); | 79 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); |
| 81 EXPECT_EQ([session_controller_ items].back(), | 80 EXPECT_EQ([session_controller_ items].back().get(), |
| 82 [session_controller_ pendingItem]); | 81 [session_controller_ pendingItem]); |
| 83 } | 82 } |
| 84 | 83 |
| 85 TEST_F(CRWSessionControllerTest, addPendingItem) { | 84 TEST_F(CRWSessionControllerTest, addPendingItem) { |
| 86 [session_controller_ | 85 [session_controller_ |
| 87 addPendingItem:GURL("http://www.url.com") | 86 addPendingItem:GURL("http://www.url.com") |
| 88 referrer:MakeReferrer("http://www.referer.com") | 87 referrer:MakeReferrer("http://www.referer.com") |
| 89 transition:ui::PAGE_TRANSITION_TYPED | 88 transition:ui::PAGE_TRANSITION_TYPED |
| 90 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 89 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 91 | 90 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 111 | 110 |
| 112 EXPECT_EQ(1U, [session_controller_ items].size()); | 111 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 113 EXPECT_EQ(GURL("http://www.committed.url.com/"), | 112 EXPECT_EQ(GURL("http://www.committed.url.com/"), |
| 114 [session_controller_ URLForItemAtIndex:0U]); | 113 [session_controller_ URLForItemAtIndex:0U]); |
| 115 EXPECT_EQ( | 114 EXPECT_EQ( |
| 116 GURL("http://www.url.com/"), | 115 GURL("http://www.url.com/"), |
| 117 [session_controller_ currentURL]); | 116 [session_controller_ currentURL]); |
| 118 } | 117 } |
| 119 | 118 |
| 120 // Tests that adding a pending item resets pending item index. | 119 // Tests that adding a pending item resets pending item index. |
| 121 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) { | 120 TEST_F(CRWSessionControllerTest, addPendingItemWithExisingPendingItemIndex) { |
|
Eugene But (OOO till 7-30)
2017/03/09 16:10:58
Revert back? Exising vs Existing?
kkhorimoto
2017/03/09 21:33:54
Done.
| |
| 122 [session_controller_ | 121 [session_controller_ |
| 123 addPendingItem:GURL("http://www.example.com") | 122 addPendingItem:GURL("http://www.example.com") |
| 124 referrer:web::Referrer() | 123 referrer:web::Referrer() |
| 125 transition:ui::PAGE_TRANSITION_TYPED | 124 transition:ui::PAGE_TRANSITION_TYPED |
| 126 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 125 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 127 [session_controller_ commitPendingItem]; | 126 [session_controller_ commitPendingItem]; |
| 128 [session_controller_ | 127 [session_controller_ |
| 129 addPendingItem:GURL("http://www.example.com/0") | 128 addPendingItem:GURL("http://www.example.com/0") |
| 130 referrer:web::Referrer() | 129 referrer:web::Referrer() |
| 131 transition:ui::PAGE_TRANSITION_TYPED | 130 transition:ui::PAGE_TRANSITION_TYPED |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 171 [session_controller_ | 170 [session_controller_ |
| 172 addPendingItem:GURL("http://www.url.com") | 171 addPendingItem:GURL("http://www.url.com") |
| 173 referrer:MakeReferrer("http://www.referer.com") | 172 referrer:MakeReferrer("http://www.referer.com") |
| 174 transition:ui::PAGE_TRANSITION_TYPED | 173 transition:ui::PAGE_TRANSITION_TYPED |
| 175 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 174 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 176 [session_controller_ commitPendingItem]; | 175 [session_controller_ commitPendingItem]; |
| 177 | 176 |
| 178 EXPECT_EQ(1U, [session_controller_ items].size()); | 177 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 179 EXPECT_EQ(GURL("http://www.url.com/"), | 178 EXPECT_EQ(GURL("http://www.url.com/"), |
| 180 [session_controller_ URLForItemAtIndex:0U]); | 179 [session_controller_ URLForItemAtIndex:0U]); |
| 181 EXPECT_EQ([session_controller_ items].front(), | 180 EXPECT_EQ([session_controller_ items].front().get(), |
| 182 [session_controller_ currentItem]); | 181 [session_controller_ currentItem]); |
| 183 } | 182 } |
| 184 | 183 |
| 185 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { | 184 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { |
| 186 [session_controller_ | 185 [session_controller_ |
| 187 addPendingItem:GURL("http://www.url.com") | 186 addPendingItem:GURL("http://www.url.com") |
| 188 referrer:MakeReferrer("http://www.referer.com") | 187 referrer:MakeReferrer("http://www.referer.com") |
| 189 transition:ui::PAGE_TRANSITION_TYPED | 188 transition:ui::PAGE_TRANSITION_TYPED |
| 190 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 189 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 191 [session_controller_ | 190 [session_controller_ |
| 192 addPendingItem:GURL("http://www.another.url.com") | 191 addPendingItem:GURL("http://www.another.url.com") |
| 193 referrer:MakeReferrer("http://www.another.referer.com") | 192 referrer:MakeReferrer("http://www.another.referer.com") |
| 194 transition:ui::PAGE_TRANSITION_TYPED | 193 transition:ui::PAGE_TRANSITION_TYPED |
| 195 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 194 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 196 [session_controller_ commitPendingItem]; | 195 [session_controller_ commitPendingItem]; |
| 197 | 196 |
| 198 EXPECT_EQ(1U, [session_controller_ items].size()); | 197 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 199 EXPECT_EQ(GURL("http://www.another.url.com/"), | 198 EXPECT_EQ(GURL("http://www.another.url.com/"), |
| 200 [session_controller_ URLForItemAtIndex:0U]); | 199 [session_controller_ URLForItemAtIndex:0U]); |
| 201 EXPECT_EQ([session_controller_ items].front(), | 200 EXPECT_EQ([session_controller_ items].front().get(), |
| 202 [session_controller_ currentItem]); | 201 [session_controller_ currentItem]); |
| 203 } | 202 } |
| 204 | 203 |
| 205 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { | 204 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { |
| 206 [session_controller_ | 205 [session_controller_ |
| 207 addPendingItem:GURL("http://www.url.com") | 206 addPendingItem:GURL("http://www.url.com") |
| 208 referrer:MakeReferrer("http://www.referer.com") | 207 referrer:MakeReferrer("http://www.referer.com") |
| 209 transition:ui::PAGE_TRANSITION_TYPED | 208 transition:ui::PAGE_TRANSITION_TYPED |
| 210 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 209 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 211 [session_controller_ commitPendingItem]; | 210 [session_controller_ commitPendingItem]; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 [session_controller_ | 265 [session_controller_ |
| 267 addPendingItem:GURL("http://www.another.url.com") | 266 addPendingItem:GURL("http://www.another.url.com") |
| 268 referrer:MakeReferrer("http://www.referer.com") | 267 referrer:MakeReferrer("http://www.referer.com") |
| 269 transition:ui::PAGE_TRANSITION_TYPED | 268 transition:ui::PAGE_TRANSITION_TYPED |
| 270 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 269 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 271 [session_controller_ commitPendingItem]; | 270 [session_controller_ commitPendingItem]; |
| 272 | 271 |
| 273 EXPECT_EQ(1U, [session_controller_ items].size()); | 272 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 274 EXPECT_EQ(GURL("http://www.another.url.com/"), | 273 EXPECT_EQ(GURL("http://www.another.url.com/"), |
| 275 [session_controller_ URLForItemAtIndex:0U]); | 274 [session_controller_ URLForItemAtIndex:0U]); |
| 276 EXPECT_EQ([session_controller_ items].front(), | 275 EXPECT_EQ([session_controller_ items].front().get(), |
| 277 [session_controller_ currentItem]); | 276 [session_controller_ currentItem]); |
| 278 } | 277 } |
| 279 | 278 |
| 280 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { | 279 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { |
| 281 [session_controller_ | 280 [session_controller_ |
| 282 addPendingItem:GURL("http://www.url.com") | 281 addPendingItem:GURL("http://www.url.com") |
| 283 referrer:MakeReferrer("http://www.referer.com") | 282 referrer:MakeReferrer("http://www.referer.com") |
| 284 transition:ui::PAGE_TRANSITION_TYPED | 283 transition:ui::PAGE_TRANSITION_TYPED |
| 285 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 284 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 286 [session_controller_ commitPendingItem]; | 285 [session_controller_ commitPendingItem]; |
| 287 | 286 |
| 288 [session_controller_ | 287 [session_controller_ |
| 289 addPendingItem:GURL("http://www.another.url.com") | 288 addPendingItem:GURL("http://www.another.url.com") |
| 290 referrer:MakeReferrer("http://www.referer.com") | 289 referrer:MakeReferrer("http://www.referer.com") |
| 291 transition:ui::PAGE_TRANSITION_TYPED | 290 transition:ui::PAGE_TRANSITION_TYPED |
| 292 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 291 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 293 [session_controller_ discardNonCommittedItems]; | 292 [session_controller_ discardNonCommittedItems]; |
| 294 | 293 |
| 295 EXPECT_EQ(1U, [session_controller_ items].size()); | 294 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 296 EXPECT_EQ(GURL("http://www.url.com/"), | 295 EXPECT_EQ(GURL("http://www.url.com/"), |
| 297 [session_controller_ URLForItemAtIndex:0U]); | 296 [session_controller_ URLForItemAtIndex:0U]); |
| 298 EXPECT_EQ([session_controller_ items].front(), | 297 EXPECT_EQ([session_controller_ items].front().get(), |
| 299 [session_controller_ currentItem]); | 298 [session_controller_ currentItem]); |
| 300 } | 299 } |
| 301 | 300 |
| 302 TEST_F(CRWSessionControllerTest, | 301 TEST_F(CRWSessionControllerTest, |
| 303 commitPendingItemWithoutPendingOrCommittedItem) { | 302 commitPendingItemWithoutPendingOrCommittedItem) { |
| 304 [session_controller_ commitPendingItem]; | 303 [session_controller_ commitPendingItem]; |
| 305 | 304 |
| 306 EXPECT_TRUE([session_controller_ items].empty()); | 305 EXPECT_TRUE([session_controller_ items].empty()); |
| 307 EXPECT_FALSE([session_controller_ currentItem]); | 306 EXPECT_FALSE([session_controller_ currentItem]); |
| 308 } | 307 } |
| 309 | 308 |
| 310 TEST_F(CRWSessionControllerTest, | 309 TEST_F(CRWSessionControllerTest, |
| 311 commitPendingItemWithoutPendingItemWithCommittedItem) { | 310 commitPendingItemWithoutPendingItemWithCommittedItem) { |
| 312 // Setup committed item. | |
|
Eugene But (OOO till 7-30)
2017/03/09 16:10:58
Why? I think this test suppose to commit if there
kkhorimoto
2017/03/09 21:33:54
Yep you're right. I had fixed this, but must have
| |
| 313 [session_controller_ | |
| 314 addPendingItem:GURL("http://www.url.com") | |
| 315 referrer:MakeReferrer("http://www.referer.com") | |
| 316 transition:ui::PAGE_TRANSITION_TYPED | |
| 317 initiationType:web::NavigationInitiationType::USER_INITIATED]; | |
| 318 [session_controller_ commitPendingItem]; | 311 [session_controller_ commitPendingItem]; |
| 319 | 312 |
| 320 // Commit pending item when there is no such one | 313 // Commit pending item when there is no such one |
| 321 [session_controller_ commitPendingItem]; | 314 [session_controller_ commitPendingItem]; |
| 322 | 315 |
| 323 EXPECT_EQ(1U, [session_controller_ items].size()); | 316 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 324 EXPECT_EQ([session_controller_ items].front(), | 317 EXPECT_EQ([session_controller_ items].front().get(), |
| 325 [session_controller_ currentItem]); | 318 [session_controller_ currentItem]); |
| 326 } | 319 } |
| 327 | 320 |
| 328 // Tests that forward entries are discarded after navigation item is committed. | 321 // Tests that forward items are discarded after navigation item is committed. |
| 329 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) { | 322 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) { |
| 330 // Make 3 entries. | 323 // Make 3 items. |
| 331 [session_controller_ | 324 [session_controller_ |
| 332 addPendingItem:GURL("http://www.example.com/0") | 325 addPendingItem:GURL("http://www.example.com/0") |
| 333 referrer:MakeReferrer("http://www.example.com/a") | 326 referrer:MakeReferrer("http://www.example.com/a") |
| 334 transition:ui::PAGE_TRANSITION_LINK | 327 transition:ui::PAGE_TRANSITION_LINK |
| 335 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; | 328 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; |
| 336 [session_controller_ commitPendingItem]; | 329 [session_controller_ commitPendingItem]; |
| 337 [session_controller_ | 330 [session_controller_ |
| 338 addPendingItem:GURL("http://www.example.com/1") | 331 addPendingItem:GURL("http://www.example.com/1") |
| 339 referrer:MakeReferrer("http://www.example.com/b") | 332 referrer:MakeReferrer("http://www.example.com/b") |
| 340 transition:ui::PAGE_TRANSITION_LINK | 333 transition:ui::PAGE_TRANSITION_LINK |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 351 [session_controller_ goToItemAtIndex:0]; | 344 [session_controller_ goToItemAtIndex:0]; |
| 352 | 345 |
| 353 // Create and commit a new pending item. | 346 // Create and commit a new pending item. |
| 354 [session_controller_ | 347 [session_controller_ |
| 355 addPendingItem:GURL("http://www.example.com/2") | 348 addPendingItem:GURL("http://www.example.com/2") |
| 356 referrer:MakeReferrer("http://www.example.com/c") | 349 referrer:MakeReferrer("http://www.example.com/c") |
| 357 transition:ui::PAGE_TRANSITION_LINK | 350 transition:ui::PAGE_TRANSITION_LINK |
| 358 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; | 351 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; |
| 359 [session_controller_ commitPendingItem]; | 352 [session_controller_ commitPendingItem]; |
| 360 | 353 |
| 361 // All forward entries should go away. | 354 // All forward items should go away. |
| 362 EXPECT_EQ(2U, [session_controller_ items].size()); | 355 EXPECT_EQ(2U, [session_controller_ items].size()); |
| 363 EXPECT_EQ(0U, [session_controller_ forwardItems].size()); | 356 EXPECT_EQ(0U, [session_controller_ forwardItems].size()); |
| 364 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); | 357 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); |
| 365 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]); | 358 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]); |
| 366 } | 359 } |
| 367 | 360 |
| 368 // Tests committing pending item index from the middle. | 361 // Tests committing pending item index from the middle. |
| 369 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { | 362 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { |
| 370 [session_controller_ | 363 [session_controller_ |
| 371 addPendingItem:GURL("http://www.example.com/0") | 364 addPendingItem:GURL("http://www.example.com/0") |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 384 referrer:web::Referrer() | 377 referrer:web::Referrer() |
| 385 transition:ui::PAGE_TRANSITION_TYPED | 378 transition:ui::PAGE_TRANSITION_TYPED |
| 386 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 379 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 387 [session_controller_ commitPendingItem]; | 380 [session_controller_ commitPendingItem]; |
| 388 ASSERT_EQ(3U, [session_controller_ items].size()); | 381 ASSERT_EQ(3U, [session_controller_ items].size()); |
| 389 | 382 |
| 390 // Go to the middle, and commit first pending item index. | 383 // Go to the middle, and commit first pending item index. |
| 391 [session_controller_ goToItemAtIndex:1]; | 384 [session_controller_ goToItemAtIndex:1]; |
| 392 [session_controller_ setPendingItemIndex:0]; | 385 [session_controller_ setPendingItemIndex:0]; |
| 393 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); | 386 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); |
| 394 web::NavigationItem* pendingItem = [session_controller_ pendingItem]; | 387 web::NavigationItemImpl* pending_item = [session_controller_ pendingItem]; |
| 395 ASSERT_TRUE(pendingItem); | 388 ASSERT_TRUE(pending_item); |
| 396 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); | 389 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); |
| 397 EXPECT_EQ(2, [session_controller_ previousNavigationIndex]); | 390 EXPECT_EQ(2, [session_controller_ previousNavigationIndex]); |
| 398 [session_controller_ commitPendingItem]; | 391 [session_controller_ commitPendingItem]; |
| 399 | 392 |
| 400 // Verify that pending item has been committed and current and previous item | 393 // Verify that pending item has been committed and current and previous item |
| 401 // indices updated. | 394 // indices updated. |
| 402 EXPECT_EQ([session_controller_ lastCommittedItem], pendingItem); | 395 EXPECT_EQ(pending_item, [session_controller_ lastCommittedItem]); |
| 403 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 396 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 404 EXPECT_FALSE([session_controller_ pendingItem]); | 397 EXPECT_FALSE([session_controller_ pendingItem]); |
| 405 EXPECT_EQ(0, [session_controller_ currentNavigationIndex]); | 398 EXPECT_EQ(0, [session_controller_ currentNavigationIndex]); |
| 406 EXPECT_EQ(1, [session_controller_ previousNavigationIndex]); | 399 EXPECT_EQ(1, [session_controller_ previousNavigationIndex]); |
| 407 EXPECT_EQ(3U, [session_controller_ items].size()); | 400 EXPECT_EQ(3U, [session_controller_ items].size()); |
| 408 } | 401 } |
| 409 | 402 |
| 410 TEST_F(CRWSessionControllerTest, | 403 TEST_F(CRWSessionControllerTest, |
| 411 DiscardPendingItemWithoutPendingOrCommittedItem) { | 404 DiscardPendingItemWithoutPendingOrCommittedItem) { |
| 412 [session_controller_ discardNonCommittedItems]; | 405 [session_controller_ discardNonCommittedItems]; |
| 413 | 406 |
| 414 EXPECT_TRUE([session_controller_ items].empty()); | 407 EXPECT_TRUE([session_controller_ items].empty()); |
| 415 EXPECT_FALSE([session_controller_ currentItem]); | 408 EXPECT_FALSE([session_controller_ currentItem]); |
| 416 } | 409 } |
| 417 | 410 |
| 418 TEST_F(CRWSessionControllerTest, | 411 TEST_F(CRWSessionControllerTest, |
| 419 DiscardPendingItemWithoutPendingItemWithCommittedItem) { | 412 DiscardPendingItemWithoutPendingItemWithCommittedItem) { |
| 420 // Setup committed item | 413 // Setup committed item |
| 421 [session_controller_ | 414 [session_controller_ |
| 422 addPendingItem:GURL("http://www.url.com") | 415 addPendingItem:GURL("http://www.url.com") |
| 423 referrer:MakeReferrer("http://www.referer.com") | 416 referrer:MakeReferrer("http://www.referer.com") |
| 424 transition:ui::PAGE_TRANSITION_TYPED | 417 transition:ui::PAGE_TRANSITION_TYPED |
| 425 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 418 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 426 [session_controller_ commitPendingItem]; | 419 [session_controller_ commitPendingItem]; |
| 427 | 420 |
| 428 // Discard noncommitted entries when there is no such one | 421 // Discard noncommitted items when there is no such one |
| 429 [session_controller_ discardNonCommittedItems]; | 422 [session_controller_ discardNonCommittedItems]; |
| 430 | 423 |
| 431 EXPECT_EQ(1U, [session_controller_ items].size()); | 424 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 432 EXPECT_EQ([session_controller_ items].front(), | 425 EXPECT_EQ([session_controller_ items].front().get(), |
| 433 [session_controller_ currentItem]); | 426 [session_controller_ currentItem]); |
| 434 } | 427 } |
| 435 | 428 |
| 436 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) { | 429 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) { |
| 437 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; | 430 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; |
| 438 [session_controller_ commitPendingItem]; | 431 [session_controller_ commitPendingItem]; |
| 439 | 432 |
| 440 EXPECT_TRUE([session_controller_ items].empty()); | 433 EXPECT_TRUE([session_controller_ items].empty()); |
| 441 EXPECT_FALSE([session_controller_ currentItem]); | 434 EXPECT_FALSE([session_controller_ currentItem]); |
| 442 } | 435 } |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 461 referrer:MakeReferrer("http://www.referer.com") | 454 referrer:MakeReferrer("http://www.referer.com") |
| 462 transition:ui::PAGE_TRANSITION_TYPED | 455 transition:ui::PAGE_TRANSITION_TYPED |
| 463 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 456 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 464 [session_controller_ commitPendingItem]; | 457 [session_controller_ commitPendingItem]; |
| 465 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; | 458 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; |
| 466 [session_controller_ commitPendingItem]; | 459 [session_controller_ commitPendingItem]; |
| 467 | 460 |
| 468 EXPECT_EQ(1U, [session_controller_ items].size()); | 461 EXPECT_EQ(1U, [session_controller_ items].size()); |
| 469 EXPECT_EQ(GURL("http://www.url.com/"), | 462 EXPECT_EQ(GURL("http://www.url.com/"), |
| 470 [session_controller_ URLForItemAtIndex:0U]); | 463 [session_controller_ URLForItemAtIndex:0U]); |
| 471 EXPECT_EQ([session_controller_ items].front(), | 464 EXPECT_EQ([session_controller_ items].front().get(), |
| 472 [session_controller_ currentItem]); | 465 [session_controller_ currentItem]); |
| 473 } | 466 } |
| 474 | 467 |
| 475 // Tests inserting session controller state. | 468 // Tests inserting session controller state. |
| 476 TEST_F(CRWSessionControllerTest, InsertState) { | 469 TEST_F(CRWSessionControllerTest, InsertState) { |
| 477 // Add 1 committed and 1 pending item to target controller. | 470 // Add 1 committed and 1 pending item to target controller. |
| 478 [session_controller_ | 471 [session_controller_ |
| 479 addPendingItem:GURL("http://www.url.com/2") | 472 addPendingItem:GURL("http://www.url.com/2") |
| 480 referrer:web::Referrer() | 473 referrer:web::Referrer() |
| 481 transition:ui::PAGE_TRANSITION_TYPED | 474 transition:ui::PAGE_TRANSITION_TYPED |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 515 EXPECT_EQ(GURL("http://www.url.com/0"), | 508 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 516 [session_controller_ URLForItemAtIndex:0]); | 509 [session_controller_ URLForItemAtIndex:0]); |
| 517 EXPECT_EQ(GURL("http://www.url.com/2"), | 510 EXPECT_EQ(GURL("http://www.url.com/2"), |
| 518 [session_controller_ URLForItemAtIndex:1]); | 511 [session_controller_ URLForItemAtIndex:1]); |
| 519 EXPECT_EQ(GURL("http://www.url.com/3"), | 512 EXPECT_EQ(GURL("http://www.url.com/3"), |
| 520 [session_controller_ pendingItem]->GetURL()); | 513 [session_controller_ pendingItem]->GetURL()); |
| 521 } | 514 } |
| 522 | 515 |
| 523 // Tests inserting session controller state from empty session controller. | 516 // Tests inserting session controller state from empty session controller. |
| 524 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) { | 517 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) { |
| 525 // Add 2 committed entries to target controller. | 518 // Add 2 committed items to target controller. |
| 526 [session_controller_ | 519 [session_controller_ |
| 527 addPendingItem:GURL("http://www.url.com/0") | 520 addPendingItem:GURL("http://www.url.com/0") |
| 528 referrer:web::Referrer() | 521 referrer:web::Referrer() |
| 529 transition:ui::PAGE_TRANSITION_TYPED | 522 transition:ui::PAGE_TRANSITION_TYPED |
| 530 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 523 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 531 [session_controller_ commitPendingItem]; | 524 [session_controller_ commitPendingItem]; |
| 532 [session_controller_ | 525 [session_controller_ |
| 533 addPendingItem:GURL("http://www.url.com/1") | 526 addPendingItem:GURL("http://www.url.com/1") |
| 534 referrer:web::Referrer() | 527 referrer:web::Referrer() |
| 535 transition:ui::PAGE_TRANSITION_TYPED | 528 transition:ui::PAGE_TRANSITION_TYPED |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 550 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); | 543 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 551 EXPECT_FALSE([session_controller_ pendingItem]); | 544 EXPECT_FALSE([session_controller_ pendingItem]); |
| 552 EXPECT_EQ(GURL("http://www.url.com/0"), | 545 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 553 [session_controller_ URLForItemAtIndex:0]); | 546 [session_controller_ URLForItemAtIndex:0]); |
| 554 EXPECT_EQ(GURL("http://www.url.com/1"), | 547 EXPECT_EQ(GURL("http://www.url.com/1"), |
| 555 [session_controller_ URLForItemAtIndex:1]); | 548 [session_controller_ URLForItemAtIndex:1]); |
| 556 } | 549 } |
| 557 | 550 |
| 558 // Tests inserting session controller state to empty session controller. | 551 // Tests inserting session controller state to empty session controller. |
| 559 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { | 552 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { |
| 560 // Create source session controller with 2 committed entries and one | 553 // Create source session controller with 2 committed items and one |
| 561 // pending item. | 554 // pending item. |
| 562 base::scoped_nsobject<CRWSessionController> other_session_controller( | 555 base::scoped_nsobject<CRWSessionController> other_session_controller( |
| 563 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ | 556 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 564 openedByDOM:NO]); | 557 openedByDOM:NO]); |
| 565 [other_session_controller | 558 [other_session_controller |
| 566 addPendingItem:GURL("http://www.url.com/0") | 559 addPendingItem:GURL("http://www.url.com/0") |
| 567 referrer:web::Referrer() | 560 referrer:web::Referrer() |
| 568 transition:ui::PAGE_TRANSITION_TYPED | 561 transition:ui::PAGE_TRANSITION_TYPED |
| 569 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 562 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 570 [other_session_controller commitPendingItem]; | 563 [other_session_controller commitPendingItem]; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 592 EXPECT_EQ(GURL("http://www.url.com/0"), | 585 EXPECT_EQ(GURL("http://www.url.com/0"), |
| 593 [session_controller_ URLForItemAtIndex:0]); | 586 [session_controller_ URLForItemAtIndex:0]); |
| 594 EXPECT_EQ(GURL("http://www.url.com/1"), | 587 EXPECT_EQ(GURL("http://www.url.com/1"), |
| 595 [session_controller_ URLForItemAtIndex:1]); | 588 [session_controller_ URLForItemAtIndex:1]); |
| 596 } | 589 } |
| 597 | 590 |
| 598 // Tests inserting session controller state. Verifies that pending item index | 591 // Tests inserting session controller state. Verifies that pending item index |
| 599 // remains valid. | 592 // remains valid. |
| 600 TEST_F(CRWSessionControllerTest, | 593 TEST_F(CRWSessionControllerTest, |
| 601 InsertStateWithPendingItemIndexInTargetController) { | 594 InsertStateWithPendingItemIndexInTargetController) { |
| 602 // Add 2 committed entries and make the first item pending. | 595 // Add 2 committed items and make the first item pending. |
| 603 [session_controller_ | 596 [session_controller_ |
| 604 addPendingItem:GURL("http://www.url.com/2") | 597 addPendingItem:GURL("http://www.url.com/2") |
| 605 referrer:web::Referrer() | 598 referrer:web::Referrer() |
| 606 transition:ui::PAGE_TRANSITION_TYPED | 599 transition:ui::PAGE_TRANSITION_TYPED |
| 607 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 600 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 608 [session_controller_ commitPendingItem]; | 601 [session_controller_ commitPendingItem]; |
| 609 [session_controller_ | 602 [session_controller_ |
| 610 addPendingItem:GURL("http://www.url.com/3") | 603 addPendingItem:GURL("http://www.url.com/3") |
| 611 referrer:web::Referrer() | 604 referrer:web::Referrer() |
| 612 transition:ui::PAGE_TRANSITION_TYPED | 605 transition:ui::PAGE_TRANSITION_TYPED |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 689 items.push_back(CreateNavigationItem("http://www.espn.com", | 682 items.push_back(CreateNavigationItem("http://www.espn.com", |
| 690 "http://www.nothing.com", @"ESPN")); | 683 "http://www.nothing.com", @"ESPN")); |
| 691 base::scoped_nsobject<CRWSessionController> controller( | 684 base::scoped_nsobject<CRWSessionController> controller( |
| 692 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ | 685 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 693 navigationItems:std::move(items) | 686 navigationItems:std::move(items) |
| 694 currentIndex:1]); | 687 currentIndex:1]); |
| 695 | 688 |
| 696 EXPECT_EQ(controller.get().items.size(), 3U); | 689 EXPECT_EQ(controller.get().items.size(), 3U); |
| 697 EXPECT_EQ(controller.get().currentNavigationIndex, 1); | 690 EXPECT_EQ(controller.get().currentNavigationIndex, 1); |
| 698 EXPECT_EQ(controller.get().previousNavigationIndex, -1); | 691 EXPECT_EQ(controller.get().previousNavigationIndex, -1); |
| 699 // Sanity check the current item, the CRWSessionItem unit test will ensure | 692 // Sanity check the current item, the NavigationItem unit test will ensure |
| 700 // the entire object is created properly. | 693 // the entire object is created properly. |
| 701 EXPECT_EQ(controller.get().currentItem->GetURL(), | 694 EXPECT_EQ([controller currentItem]->GetURL(), GURL("http://www.yahoo.com")); |
| 702 GURL("http://www.yahoo.com")); | |
| 703 } | 695 } |
| 704 | 696 |
| 705 // Tests index of previous navigation item. | 697 // Tests index of previous navigation item. |
| 706 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) { | 698 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) { |
| 707 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); | 699 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); |
| 708 [session_controller_ | 700 [session_controller_ |
| 709 addPendingItem:GURL("http://www.url.com") | 701 addPendingItem:GURL("http://www.url.com") |
| 710 referrer:MakeReferrer("http://www.referer.com") | 702 referrer:MakeReferrer("http://www.referer.com") |
| 711 transition:ui::PAGE_TRANSITION_TYPED | 703 transition:ui::PAGE_TRANSITION_TYPED |
| 712 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 704 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 795 // Push state navigation. | 787 // Push state navigation. |
| 796 items.push_back( | 788 items.push_back( |
| 797 CreateNavigationItem("http://foo.com/bar", "http://foo.com", @"Fifth")); | 789 CreateNavigationItem("http://foo.com/bar", "http://foo.com", @"Fifth")); |
| 798 // Push state navigation. | 790 // Push state navigation. |
| 799 items.push_back(CreateNavigationItem("http://foo.com/bar#bar", | 791 items.push_back(CreateNavigationItem("http://foo.com/bar#bar", |
| 800 "http://foo.com/bar", @"Sixth")); | 792 "http://foo.com/bar", @"Sixth")); |
| 801 base::scoped_nsobject<CRWSessionController> controller( | 793 base::scoped_nsobject<CRWSessionController> controller( |
| 802 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ | 794 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ |
| 803 navigationItems:std::move(items) | 795 navigationItems:std::move(items) |
| 804 currentIndex:0]); | 796 currentIndex:0]); |
| 805 web::NavigationItemImpl* item0 = | 797 web::NavigationItemImpl* item0 = [controller items][0].get(); |
| 806 static_cast<web::NavigationItemImpl*>([controller items][0]); | 798 web::NavigationItemImpl* item1 = [controller items][1].get(); |
| 807 web::NavigationItemImpl* item1 = | 799 web::NavigationItemImpl* item2 = [controller items][2].get(); |
| 808 static_cast<web::NavigationItemImpl*>([controller items][1]); | 800 web::NavigationItemImpl* item3 = [controller items][3].get(); |
| 809 web::NavigationItemImpl* item2 = | 801 web::NavigationItemImpl* item4 = [controller items][4].get(); |
| 810 static_cast<web::NavigationItemImpl*>([controller items][2]); | 802 web::NavigationItemImpl* item5 = [controller items][5].get(); |
| 811 web::NavigationItemImpl* item3 = | |
| 812 static_cast<web::NavigationItemImpl*>([controller items][3]); | |
| 813 web::NavigationItemImpl* item4 = | |
| 814 static_cast<web::NavigationItemImpl*>([controller items][4]); | |
| 815 web::NavigationItemImpl* item5 = | |
| 816 static_cast<web::NavigationItemImpl*>([controller items][5]); | |
| 817 item1->SetIsCreatedFromPushState(true); | 803 item1->SetIsCreatedFromPushState(true); |
| 818 item4->SetIsCreatedFromHashChange(true); | 804 item4->SetIsCreatedFromHashChange(true); |
| 819 item5->SetIsCreatedFromPushState(true); | 805 item5->SetIsCreatedFromPushState(true); |
| 820 | 806 |
| 821 EXPECT_FALSE( | 807 EXPECT_FALSE( |
| 822 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item0]); | 808 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item0]); |
| 823 EXPECT_TRUE( | 809 EXPECT_TRUE( |
| 824 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item1]); | 810 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item1]); |
| 825 EXPECT_TRUE( | 811 EXPECT_TRUE( |
| 826 [controller isSameDocumentNavigationBetweenItem:item5 andItem:item3]); | 812 [controller isSameDocumentNavigationBetweenItem:item5 andItem:item3]); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 909 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); | 895 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); |
| 910 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); | 896 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); |
| 911 | 897 |
| 912 [session_controller_ goToItemAtIndex:0]; | 898 [session_controller_ goToItemAtIndex:0]; |
| 913 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; | 899 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; |
| 914 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); | 900 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); |
| 915 EXPECT_EQ(2U, forwardItems.size()); | 901 EXPECT_EQ(2U, forwardItems.size()); |
| 916 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); | 902 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); |
| 917 } | 903 } |
| 918 | 904 |
| 919 // Tests going to entries with existing and non-existing indices. | 905 // Tests going to items with existing and non-existing indices. |
| 920 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) { | 906 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) { |
| 921 [session_controller_ | 907 [session_controller_ |
| 922 addPendingItem:GURL("http://www.example.com/0") | 908 addPendingItem:GURL("http://www.example.com/0") |
| 923 referrer:MakeReferrer("http://www.example.com/a") | 909 referrer:MakeReferrer("http://www.example.com/a") |
| 924 transition:ui::PAGE_TRANSITION_LINK | 910 transition:ui::PAGE_TRANSITION_LINK |
| 925 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 911 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 926 [session_controller_ commitPendingItem]; | 912 [session_controller_ commitPendingItem]; |
| 927 [session_controller_ | 913 [session_controller_ |
| 928 addPendingItem:GURL("http://www.example.com/1") | 914 addPendingItem:GURL("http://www.example.com/1") |
| 929 referrer:MakeReferrer("http://www.example.com/b") | 915 referrer:MakeReferrer("http://www.example.com/b") |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 946 addPendingItem:GURL("http://www.example.com/3") | 932 addPendingItem:GURL("http://www.example.com/3") |
| 947 referrer:MakeReferrer("http://www.example.com/d") | 933 referrer:MakeReferrer("http://www.example.com/d") |
| 948 transition:ui::PAGE_TRANSITION_LINK | 934 transition:ui::PAGE_TRANSITION_LINK |
| 949 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 935 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 950 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; | 936 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; |
| 951 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); | 937 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); |
| 952 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex); | 938 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex); |
| 953 EXPECT_TRUE([session_controller_ pendingItem]); | 939 EXPECT_TRUE([session_controller_ pendingItem]); |
| 954 EXPECT_TRUE([session_controller_ transientItem]); | 940 EXPECT_TRUE([session_controller_ transientItem]); |
| 955 | 941 |
| 956 // Going back should discard transient and pending entries. | 942 // Going back should discard transient and pending items. |
| 957 [session_controller_ goToItemAtIndex:1]; | 943 [session_controller_ goToItemAtIndex:1]; |
| 958 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex); | 944 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex); |
| 959 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex); | 945 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex); |
| 960 EXPECT_FALSE([session_controller_ pendingItem]); | 946 EXPECT_FALSE(session_controller_.get().pendingItem); |
| 961 EXPECT_FALSE([session_controller_ transientItem]); | 947 EXPECT_FALSE(session_controller_.get().transientItem); |
| 962 | 948 |
| 963 // Going forward should discard transient item. | 949 // Going forward should discard transient item. |
| 964 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; | 950 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; |
| 965 EXPECT_TRUE([session_controller_ transientItem]); | 951 EXPECT_TRUE(session_controller_.get().transientItem); |
| 966 [session_controller_ goToItemAtIndex:2]; | 952 [session_controller_ goToItemAtIndex:2]; |
| 967 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); | 953 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); |
| 968 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); | 954 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); |
| 969 EXPECT_FALSE([session_controller_ transientItem]); | 955 EXPECT_FALSE(session_controller_.get().transientItem); |
| 970 | 956 |
| 971 // Out of bounds navigations should be no-op. | 957 // Out of bounds navigations should be no-op. |
| 972 [session_controller_ goToItemAtIndex:-1]; | 958 [session_controller_ goToItemAtIndex:-1]; |
| 973 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); | 959 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); |
| 974 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); | 960 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); |
| 975 [session_controller_ goToItemAtIndex:NSIntegerMax]; | 961 [session_controller_ goToItemAtIndex:NSIntegerMax]; |
| 976 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); | 962 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); |
| 977 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); | 963 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); |
| 978 | 964 |
| 979 // Going to current index should not change the previous index. | 965 // Going to current index should not change the previous index. |
| 980 [session_controller_ goToItemAtIndex:2]; | 966 [session_controller_ goToItemAtIndex:2]; |
| 981 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); | 967 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); |
| 982 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); | 968 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); |
| 983 } | 969 } |
| 984 | 970 |
| 985 // Tests that visible URL is the same as transient URL if there are no committed | 971 // Tests that visible URL is the same as transient URL if there are no committed |
| 986 // entries. | 972 // items. |
| 987 TEST_F(CRWSessionControllerTest, VisibleItemWithSingleTransientItem) { | 973 TEST_F(CRWSessionControllerTest, VisibleItemWithSingleTransientItem) { |
| 988 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; | 974 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; |
| 989 web::NavigationItem* visible_item = [session_controller_ visibleItem]; | 975 web::NavigationItemImpl* visible_item = [session_controller_ visibleItem]; |
|
Eugene But (OOO till 7-30)
2017/03/09 16:10:58
Why? Using web::NavigationItem* seems like a suffi
kkhorimoto
2017/03/09 21:33:54
I've updated to use the more appropriate class. N
| |
| 990 ASSERT_TRUE(visible_item); | 976 ASSERT_TRUE(visible_item); |
| 991 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); | 977 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); |
| 992 } | 978 } |
| 993 | 979 |
| 994 // Tests that visible URL is the same as transient URL if there is a committed | 980 // Tests that visible URL is the same as transient URL if there is a committed |
| 995 // item. | 981 // item. |
| 996 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) { | 982 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) { |
| 997 [session_controller_ | 983 [session_controller_ |
| 998 addPendingItem:GURL("http://www.example.com/0") | 984 addPendingItem:GURL("http://www.example.com/0") |
| 999 referrer:MakeReferrer("http://www.example.com/a") | 985 referrer:MakeReferrer("http://www.example.com/a") |
| 1000 transition:ui::PAGE_TRANSITION_LINK | 986 transition:ui::PAGE_TRANSITION_LINK |
| 1001 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 987 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 1002 [session_controller_ commitPendingItem]; | 988 [session_controller_ commitPendingItem]; |
| 1003 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; | 989 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; |
| 1004 web::NavigationItem* visible_item = [session_controller_ visibleItem]; | 990 web::NavigationItemImpl* visible_item = [session_controller_ visibleItem]; |
| 1005 ASSERT_TRUE(visible_item); | 991 ASSERT_TRUE(visible_item); |
| 1006 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); | 992 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); |
| 1007 } | 993 } |
| 1008 | 994 |
| 1009 // Tests that visible URL is the same as pending URL if it was user-initiated. | 995 // Tests that visible URL is the same as pending URL if it was user-initiated. |
| 1010 TEST_F(CRWSessionControllerTest, | 996 TEST_F(CRWSessionControllerTest, |
| 1011 VisibleItemWithSingleUserInitiatedPendingItem) { | 997 VisibleItemWithSingleUserInitiatedPendingItem) { |
| 1012 [session_controller_ | 998 [session_controller_ |
| 1013 addPendingItem:GURL("http://www.example.com/0") | 999 addPendingItem:GURL("http://www.example.com/0") |
| 1014 referrer:MakeReferrer("http://www.example.com/a") | 1000 referrer:MakeReferrer("http://www.example.com/a") |
| 1015 transition:ui::PAGE_TRANSITION_LINK | 1001 transition:ui::PAGE_TRANSITION_LINK |
| 1016 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 1002 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 1017 web::NavigationItem* visible_item = [session_controller_ visibleItem]; | 1003 web::NavigationItemImpl* visible_item = [session_controller_ visibleItem]; |
| 1018 ASSERT_TRUE(visible_item); | 1004 ASSERT_TRUE(visible_item); |
| 1019 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); | 1005 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); |
| 1020 } | 1006 } |
| 1021 | 1007 |
| 1022 // Tests that visible URL is the same as pending URL if it was user-initiated | 1008 // Tests that visible URL is the same as pending URL if it was user-initiated |
| 1023 // and there is a committed item. | 1009 // and there is a committed item. |
| 1024 TEST_F(CRWSessionControllerTest, | 1010 TEST_F(CRWSessionControllerTest, |
| 1025 VisibleItemWithCommittedAndUserInitiatedPendingItem) { | 1011 VisibleItemWithCommittedAndUserInitiatedPendingItem) { |
| 1026 [session_controller_ | 1012 [session_controller_ |
| 1027 addPendingItem:GURL("http://www.example.com") | 1013 addPendingItem:GURL("http://www.example.com") |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1083 [session_controller_ commitPendingItem]; | 1069 [session_controller_ commitPendingItem]; |
| 1084 [session_controller_ | 1070 [session_controller_ |
| 1085 addPendingItem:GURL("http://www.example.com/0") | 1071 addPendingItem:GURL("http://www.example.com/0") |
| 1086 referrer:MakeReferrer("http://www.example.com/b") | 1072 referrer:MakeReferrer("http://www.example.com/b") |
| 1087 transition:ui::PAGE_TRANSITION_LINK | 1073 transition:ui::PAGE_TRANSITION_LINK |
| 1088 initiationType:web::NavigationInitiationType::USER_INITIATED]; | 1074 initiationType:web::NavigationInitiationType::USER_INITIATED]; |
| 1089 [session_controller_ commitPendingItem]; | 1075 [session_controller_ commitPendingItem]; |
| 1090 | 1076 |
| 1091 [session_controller_ setPendingItemIndex:0]; | 1077 [session_controller_ setPendingItemIndex:0]; |
| 1092 | 1078 |
| 1093 web::NavigationItem* visible_item = [session_controller_ visibleItem]; | 1079 web::NavigationItemImpl* visible_item = [session_controller_ visibleItem]; |
| 1094 ASSERT_TRUE(visible_item); | 1080 ASSERT_TRUE(visible_item); |
| 1095 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); | 1081 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); |
| 1096 } | 1082 } |
| 1097 | 1083 |
| 1098 // Tests that |-backwardItems| is empty if all preceding entries are | 1084 // Tests that |-backwardItems| is empty if all preceding items are |
| 1099 // redirects. | 1085 // redirects. |
| 1100 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) { | 1086 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) { |
| 1101 [session_controller_ | 1087 [session_controller_ |
| 1102 addPendingItem:GURL("http://www.example.com") | 1088 addPendingItem:GURL("http://www.example.com") |
| 1103 referrer:MakeReferrer("http://www.example.com/a") | 1089 referrer:MakeReferrer("http://www.example.com/a") |
| 1104 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT | 1090 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT |
| 1105 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; | 1091 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; |
| 1106 [session_controller_ commitPendingItem]; | 1092 [session_controller_ commitPendingItem]; |
| 1107 [session_controller_ | 1093 [session_controller_ |
| 1108 addPendingItem:GURL("http://www.example.com/0") | 1094 addPendingItem:GURL("http://www.example.com/0") |
| 1109 referrer:MakeReferrer("http://www.example.com/b") | 1095 referrer:MakeReferrer("http://www.example.com/b") |
| 1110 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT | 1096 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT |
| 1111 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; | 1097 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; |
| 1112 [session_controller_ commitPendingItem]; | 1098 [session_controller_ commitPendingItem]; |
| 1113 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); | 1099 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); |
| 1114 } | 1100 } |
| 1115 | 1101 |
| 1116 } // anonymous namespace | 1102 } // anonymous namespace |
| OLD | NEW |