OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 3602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3613 | 3613 |
3614 // Simulate the page calling history.back(), it should not create a pending | 3614 // Simulate the page calling history.back(), it should not create a pending |
3615 // entry. | 3615 // entry. |
3616 contents()->OnGoToEntryAtOffset(-1); | 3616 contents()->OnGoToEntryAtOffset(-1); |
3617 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 3617 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
3618 // The actual cross-navigation is suspended until the current RVH tells us | 3618 // The actual cross-navigation is suspended until the current RVH tells us |
3619 // it unloaded, simulate that. | 3619 // it unloaded, simulate that. |
3620 contents()->ProceedWithCrossSiteNavigation(); | 3620 contents()->ProceedWithCrossSiteNavigation(); |
3621 // Also make sure we told the page to navigate. | 3621 // Also make sure we told the page to navigate. |
3622 const IPC::Message* message = | 3622 const IPC::Message* message = |
3623 process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID); | 3623 process()->sink().GetFirstMessageMatching(FrameMsg_Navigate::ID); |
3624 ASSERT_TRUE(message != NULL); | 3624 ASSERT_TRUE(message != NULL); |
3625 Tuple1<ViewMsg_Navigate_Params> nav_params; | 3625 Tuple1<FrameMsg_Navigate_Params> nav_params; |
3626 ViewMsg_Navigate::Read(message, &nav_params); | 3626 FrameMsg_Navigate::Read(message, &nav_params); |
3627 EXPECT_EQ(url1, nav_params.a.url); | 3627 EXPECT_EQ(url1, nav_params.a.url); |
3628 process()->sink().ClearMessages(); | 3628 process()->sink().ClearMessages(); |
3629 | 3629 |
3630 // Now test history.forward() | 3630 // Now test history.forward() |
3631 contents()->OnGoToEntryAtOffset(1); | 3631 contents()->OnGoToEntryAtOffset(1); |
3632 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 3632 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
3633 // The actual cross-navigation is suspended until the current RVH tells us | 3633 // The actual cross-navigation is suspended until the current RVH tells us |
3634 // it unloaded, simulate that. | 3634 // it unloaded, simulate that. |
3635 contents()->ProceedWithCrossSiteNavigation(); | 3635 contents()->ProceedWithCrossSiteNavigation(); |
3636 message = process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID); | 3636 message = process()->sink().GetFirstMessageMatching(FrameMsg_Navigate::ID); |
3637 ASSERT_TRUE(message != NULL); | 3637 ASSERT_TRUE(message != NULL); |
3638 ViewMsg_Navigate::Read(message, &nav_params); | 3638 FrameMsg_Navigate::Read(message, &nav_params); |
3639 EXPECT_EQ(url3, nav_params.a.url); | 3639 EXPECT_EQ(url3, nav_params.a.url); |
3640 process()->sink().ClearMessages(); | 3640 process()->sink().ClearMessages(); |
3641 | 3641 |
3642 // Make sure an extravagant history.go() doesn't break. | 3642 // Make sure an extravagant history.go() doesn't break. |
3643 contents()->OnGoToEntryAtOffset(120); // Out of bounds. | 3643 contents()->OnGoToEntryAtOffset(120); // Out of bounds. |
3644 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 3644 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
3645 message = process()->sink().GetFirstMessageMatching(ViewMsg_Navigate::ID); | 3645 message = process()->sink().GetFirstMessageMatching(FrameMsg_Navigate::ID); |
3646 EXPECT_TRUE(message == NULL); | 3646 EXPECT_TRUE(message == NULL); |
3647 } | 3647 } |
3648 | 3648 |
3649 // Test call to PruneAllButLastCommitted for the only entry. | 3649 // Test call to PruneAllButLastCommitted for the only entry. |
3650 TEST_F(NavigationControllerTest, PruneAllButLastCommittedForSingle) { | 3650 TEST_F(NavigationControllerTest, PruneAllButLastCommittedForSingle) { |
3651 NavigationControllerImpl& controller = controller_impl(); | 3651 NavigationControllerImpl& controller = controller_impl(); |
3652 const GURL url1("http://foo1"); | 3652 const GURL url1("http://foo1"); |
3653 NavigateAndCommit(url1); | 3653 NavigateAndCommit(url1); |
3654 | 3654 |
3655 contents()->ExpectSetHistoryLengthAndPrune( | 3655 contents()->ExpectSetHistoryLengthAndPrune( |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4014 EXPECT_EQ(1, controller.GetEntryCount()); | 4014 EXPECT_EQ(1, controller.GetEntryCount()); |
4015 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); | 4015 EXPECT_EQ(0, controller.GetCurrentEntryIndex()); |
4016 EXPECT_EQ(0, controller.GetLastCommittedEntryIndex()); | 4016 EXPECT_EQ(0, controller.GetLastCommittedEntryIndex()); |
4017 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); | 4017 EXPECT_EQ(-1, controller.GetPendingEntryIndex()); |
4018 EXPECT_FALSE(controller.CanGoBack()); | 4018 EXPECT_FALSE(controller.CanGoBack()); |
4019 EXPECT_FALSE(controller.CanGoForward()); | 4019 EXPECT_FALSE(controller.CanGoForward()); |
4020 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL()); | 4020 EXPECT_EQ(url4, controller.GetVisibleEntry()->GetURL()); |
4021 } | 4021 } |
4022 | 4022 |
4023 } // namespace content | 4023 } // namespace content |
OLD | NEW |