| 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 |-pendingItem| is not considered part of session history so that |
| 1240 // |-backwardItems| returns the second last committed item even if there is a |
| 1241 // pendign item. |
| 1242 TEST_F(CRWSessionControllerTest, NewPendingItemIsHiddenFromHistory) { |
| 1243 [session_controller_ |
| 1244 addPendingItem:GURL("http://www.example.com/0") |
| 1245 referrer:MakeReferrer("http://www.example.com/a") |
| 1246 transition:ui::PAGE_TRANSITION_LINK |
| 1247 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1248 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1249 [session_controller_ commitPendingItem]; |
| 1250 [session_controller_ |
| 1251 addPendingItem:GURL("http://www.example.com/1") |
| 1252 referrer:MakeReferrer("http://www.example.com/b") |
| 1253 transition:ui::PAGE_TRANSITION_LINK |
| 1254 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1255 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1256 [session_controller_ commitPendingItem]; |
| 1257 [session_controller_ |
| 1258 addPendingItem:GURL("http://www.example.com/2") |
| 1259 referrer:MakeReferrer("http://www.example.com/c") |
| 1260 transition:ui::PAGE_TRANSITION_LINK |
| 1261 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1262 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1263 |
| 1264 EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex); |
| 1265 EXPECT_TRUE([session_controller_ pendingItem]); |
| 1266 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); |
| 1267 EXPECT_EQ(GURL("http://www.example.com/2"), [session_controller_ currentURL]); |
| 1268 |
| 1269 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 1270 ASSERT_EQ(1U, back_items.size()); |
| 1271 EXPECT_EQ("http://www.example.com/0", back_items[0]->GetURL().spec()); |
| 1272 } |
| 1273 |
| 1274 // Tests that |-backwardItems| returns all committed items if there is a |
| 1275 // transient item. This can happen if an intersitial was loaded for SSL error. |
| 1276 // See crbug.com/691311. |
| 1277 TEST_F(CRWSessionControllerTest, |
| 1278 BackwardItemsShouldContainAllCommittedIfCurrentIsTransient) { |
| 1279 [session_controller_ |
| 1280 addPendingItem:GURL("http://www.example.com/0") |
| 1281 referrer:MakeReferrer("http://www.example.com/a") |
| 1282 transition:ui::PAGE_TRANSITION_LINK |
| 1283 initiationType:web::NavigationInitiationType::USER_INITIATED |
| 1284 userAgentOverrideOption:UserAgentOverrideOption::INHERIT]; |
| 1285 [session_controller_ commitPendingItem]; |
| 1286 [session_controller_ |
| 1287 addTransientItemWithURL:GURL("http://www.example.com/1")]; |
| 1288 |
| 1289 EXPECT_EQ(0, session_controller_.get().lastCommittedItemIndex); |
| 1290 EXPECT_TRUE([session_controller_ transientItem]); |
| 1291 EXPECT_EQ(GURL("http://www.example.com/1"), [session_controller_ currentURL]); |
| 1292 |
| 1293 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 1294 ASSERT_EQ(1U, back_items.size()); |
| 1295 EXPECT_EQ("http://www.example.com/0", back_items[0]->GetURL().spec()); |
| 1296 } |
| 1297 |
| 1298 // Tests that |-backwardItems| works as expected when the transient item is the |
| 1299 // only item in history. |
| 1300 TEST_F(CRWSessionControllerTest, BackwardItemsShouldBeEmptyIfFirstIsTransient) { |
| 1301 [session_controller_ |
| 1302 addTransientItemWithURL:GURL("http://www.example.com/1")]; |
| 1303 |
| 1304 EXPECT_EQ(-1, session_controller_.get().lastCommittedItemIndex); |
| 1305 EXPECT_TRUE([session_controller_ transientItem]); |
| 1306 EXPECT_EQ(GURL("http://www.example.com/1"), [session_controller_ currentURL]); |
| 1307 |
| 1308 web::NavigationItemList back_items = [session_controller_ backwardItems]; |
| 1309 EXPECT_TRUE(back_items.empty()); |
| 1310 } |
| 1311 |
| 1239 } // anonymous namespace | 1312 } // anonymous namespace |
| OLD | NEW |