| 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 976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 987 [session_controller_ commitPendingItem]; | 987 [session_controller_ commitPendingItem]; |
| 988 [session_controller_ | 988 [session_controller_ |
| 989 addPendingItem:GURL("http://www.example.com/2") | 989 addPendingItem:GURL("http://www.example.com/2") |
| 990 referrer:MakeReferrer("http://www.example.com/c") | 990 referrer:MakeReferrer("http://www.example.com/c") |
| 991 transition:ui::PAGE_TRANSITION_LINK | 991 transition:ui::PAGE_TRANSITION_LINK |
| 992 initiationType:web::NavigationInitiationType::USER_INITIATED | 992 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 993 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; | 993 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 994 [session_controller_ commitPendingItem]; | 994 [session_controller_ commitPendingItem]; |
| 995 | 995 |
| 996 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); | 996 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); |
| 997 web::NavigationItemList backItems = [session_controller_ backwardItems]; | 997 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 998 EXPECT_EQ(2U, backItems.size()); | 998 EXPECT_EQ(2U, back_items.size()); |
| 999 EXPECT_TRUE([session_controller_ forwardItems].empty()); | 999 EXPECT_TRUE([session_controller_ forwardItems].empty()); |
| 1000 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec()); | 1000 EXPECT_EQ("http://www.example.com/redirect", back_items[0]->GetURL().spec()); |
| 1001 | 1001 |
| 1002 [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO]; | 1002 [session_controller_ goToItemAtIndex:1 discardNonCommittedItems:NO]; |
| 1003 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); | 1003 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); |
| 1004 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); | 1004 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); |
| 1005 | 1005 |
| 1006 [session_controller_ goToItemAtIndex:0 discardNonCommittedItems:NO]; | 1006 [session_controller_ goToItemAtIndex:0 discardNonCommittedItems:NO]; |
| 1007 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; | 1007 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; |
| 1008 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); | 1008 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); |
| 1009 EXPECT_EQ(2U, forwardItems.size()); | 1009 EXPECT_EQ(2U, forwardItems.size()); |
| 1010 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); | 1010 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1229 [session_controller_ | 1229 [session_controller_ |
| 1230 addPendingItem:GURL("http://www.example.com/0") | 1230 addPendingItem:GURL("http://www.example.com/0") |
| 1231 referrer:MakeReferrer("http://www.example.com/b") | 1231 referrer:MakeReferrer("http://www.example.com/b") |
| 1232 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT | 1232 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT |
| 1233 initiationType:web::NavigationInitiationType::RENDERER_INITIATED | 1233 initiationType:web::NavigationInitiationType::RENDERER_INITIATED |
| 1234 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; | 1234 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1235 [session_controller_ commitPendingItem]; | 1235 [session_controller_ commitPendingItem]; |
| 1236 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); | 1236 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); |
| 1237 } | 1237 } |
| 1238 | 1238 |
| 1239 // Tests that |-backwardItems| returns all committed items if there is an |
| 1240 // uncommitted pending item. This can happend if the pending page loading is |
| 1241 // intercepted by safe browsing. See crbug.com/691311. |
| 1242 TEST_F(CRWSessionControllerTest, |
| 1243 BackwardItemsShouldContainAllCommittedIfCurrentIsPending) { |
| 1244 [session_controller_ |
| 1245 addPendingItem:GURL("http://www.example.com/0") |
| 1246 referrer:MakeReferrer("http://www.example.com/a") |
| 1247 transition:ui::PAGE_TRANSITION_LINK |
| 1248 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1249 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1250 [session_controller_ commitPendingItem]; |
| 1251 [session_controller_ |
| 1252 addPendingItem:GURL("http://www.example.com/1") |
| 1253 referrer:MakeReferrer("http://www.example.com/b") |
| 1254 transition:ui::PAGE_TRANSITION_LINK |
| 1255 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1256 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1257 |
| 1258 EXPECT_EQ(0, session_controller_.get().lastCommittedItemIndex); |
| 1259 EXPECT_TRUE([session_controller_ pendingItem]); |
| 1260 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 1261 EXPECT_EQ(GURL("http://www.example.com/1"), [session_controller_ currentURL]); |
| 1262 |
| 1263 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 1264 ASSERT_EQ(1U, back_items.size()); |
| 1265 EXPECT_EQ("http://www.example.com/0", back_items[0]->GetURL().spec()); |
| 1266 } |
| 1267 |
| 1268 // Tests that |-backwardItems| returns all committed items if there is a |
| 1269 // transient item. This can happen if an intersitial was loaded for safe |
| 1270 // browsing. See crbug.com/691311. |
| 1271 TEST_F(CRWSessionControllerTest, |
| 1272 BackwardItemsShouldContainAllCommittedIfCurrentIsTransient) { |
| 1273 [session_controller_ |
| 1274 addPendingItem:GURL("http://www.example.com/0") |
| 1275 referrer:MakeReferrer("http://www.example.com/a") |
| 1276 transition:ui::PAGE_TRANSITION_LINK |
| 1277 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1278 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1279 [session_controller_ commitPendingItem]; |
| 1280 [session_controller_ |
| 1281 addTransientItemWithURL:GURL("http://www.example.com/1")]; |
| 1282 |
| 1283 EXPECT_EQ(0, session_controller_.get().lastCommittedItemIndex); |
| 1284 EXPECT_TRUE([session_controller_ transientItem]); |
| 1285 EXPECT_EQ(GURL("http://www.example.com/1"), [session_controller_ currentURL]); |
| 1286 |
| 1287 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 1288 ASSERT_EQ(1U, back_items.size()); |
| 1289 EXPECT_EQ("http://www.example.com/0", back_items[0]->GetURL().spec()); |
| 1290 } |
| 1291 |
| 1239 } // anonymous namespace | 1292 } // anonymous namespace |
| OLD | NEW |