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

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

Issue 2518783002: [ios] Removed -[CRWSessionController goDelta:]. (Closed)
Patch Set: Created 4 years, 1 month 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 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 244
245 [session_controller() goToEntryAtIndex:1]; 245 [session_controller() goToEntryAtIndex:1];
246 EXPECT_TRUE(navigation_manager()->CanGoForward()); 246 EXPECT_TRUE(navigation_manager()->CanGoForward());
247 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 247 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
248 248
249 [session_controller() goToEntryAtIndex:2]; 249 [session_controller() goToEntryAtIndex:2];
250 EXPECT_FALSE(navigation_manager()->CanGoForward()); 250 EXPECT_FALSE(navigation_manager()->CanGoForward());
251 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 251 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
252 } 252 }
253 253
254 // Tests CanGoToOffset API for positive, negative and zero delta. Tested
255 // navigation manager will have redirect entries to make sure they are
256 // appropriately skipped.
257 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) {
258 [session_controller() addPendingEntry:GURL("http://www.url.com/0")
259 referrer:Referrer()
260 transition:ui::PAGE_TRANSITION_LINK
261 rendererInitiated:NO];
262 [session_controller() commitPendingEntry];
263 [session_controller() addPendingEntry:GURL("http://www.url.com/redirect")
264 referrer:Referrer()
265 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
266 rendererInitiated:NO];
267 [session_controller() commitPendingEntry];
268 [session_controller() addPendingEntry:GURL("http://www.url.com/1")
269 referrer:Referrer()
270 transition:ui::PAGE_TRANSITION_LINK
271 rendererInitiated:NO];
272 [session_controller() commitPendingEntry];
273 [session_controller() addPendingEntry:GURL("http://www.url.com/2")
274 referrer:Referrer()
275 transition:ui::PAGE_TRANSITION_LINK
276 rendererInitiated:NO];
277 [session_controller() commitPendingEntry];
278 [session_controller() addPendingEntry:GURL("http://www.url.com/redirect")
279 referrer:Referrer()
280 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
281 rendererInitiated:NO];
282 [session_controller() commitPendingEntry];
283 ASSERT_EQ(5, navigation_manager()->GetItemCount());
284 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
285
286 // Go to entry at index 1 and test API from that state.
287 [session_controller() goToEntryAtIndex:1];
288 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
289 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
290 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
291 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
292 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
293 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
294 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
295
296 // Go to entry at index 2 and test API from that state.
297 [session_controller() goToEntryAtIndex:2];
298 ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex());
299 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
300 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
301 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
302 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
303 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
304
305 // Go to entry at index 4 and test API from that state.
306 [session_controller() goToEntryAtIndex:4];
307 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
308 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
309 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
310 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
311 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
312 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
313
314 // Test with existing transient entry.
315 [session_controller() addTransientEntryWithURL:GURL("http://www.url.com")];
316 ASSERT_EQ(5, navigation_manager()->GetItemCount());
317 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
318 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
319 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
320 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
321 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
322 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
323 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
324
325 // Now test with pending item index.
326 [session_controller() discardNonCommittedEntries];
327
328 // Set pending index to 1 and test API from that state.
329 [session_controller() setPendingEntryIndex:1];
330 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
331 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
332 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
333 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
334 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
335 EXPECT_TRUE(navigation_manager()->CanGoToOffset(2));
336 EXPECT_FALSE(navigation_manager()->CanGoToOffset(3));
337
338 // Set pending index to 2 and test API from that state.
339 [session_controller() setPendingEntryIndex:2];
340 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
341 ASSERT_EQ(2, navigation_manager()->GetPendingItemIndex());
342 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
343 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-2));
344 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
345 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
346
347 // Set pending index to 4 and committed entry to 1 and test.
348 [session_controller() goToEntryAtIndex:1];
349 [session_controller() setPendingEntryIndex:4];
350 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
351 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
352 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
353 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
354 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
355 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
356
357 // Test with existing transient entry.
358 [session_controller() addTransientEntryWithURL:GURL("http://www.url.com")];
359 ASSERT_EQ(5, navigation_manager()->GetItemCount());
360 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
361 ASSERT_EQ(4, navigation_manager()->GetPendingItemIndex());
362 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
363 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-2));
364 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-3));
365 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
366 EXPECT_FALSE(navigation_manager()->CanGoToOffset(2));
367 }
368
254 } // namespace web 369 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.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