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

Side by Side Diff: chrome/browser/tab_contents/navigation_controller_unittest.cc

Issue 149155: Initializing the struct before using it, as mandated by... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 5 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/file_util.h" 5 #include "base/file_util.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/stl_util-inl.h" 7 #include "base/stl_util-inl.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/browser/profile_manager.h" 9 #include "chrome/browser/profile_manager.h"
10 #include "chrome/browser/history/history.h" 10 #include "chrome/browser/history/history.h"
11 #include "chrome/browser/renderer_host/test_render_view_host.h" 11 #include "chrome/browser/renderer_host/test_render_view_host.h"
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 EXPECT_TRUE(notifications.Check1AndReset( 731 EXPECT_TRUE(notifications.Check1AndReset(
732 NotificationType::NAV_ENTRY_COMMITTED)); 732 NotificationType::NAV_ENTRY_COMMITTED));
733 733
734 // Second request 734 // Second request
735 controller().LoadURL(url1, GURL(), PageTransition::TYPED); 735 controller().LoadURL(url1, GURL(), PageTransition::TYPED);
736 736
737 EXPECT_TRUE(controller().pending_entry()); 737 EXPECT_TRUE(controller().pending_entry());
738 EXPECT_EQ(controller().pending_entry_index(), -1); 738 EXPECT_EQ(controller().pending_entry_index(), -1);
739 EXPECT_EQ(url1, controller().GetActiveEntry()->url()); 739 EXPECT_EQ(url1, controller().GetActiveEntry()->url());
740 740
741 ViewHostMsg_FrameNavigate_Params params; 741 ViewHostMsg_FrameNavigate_Params params = {0};
742 params.page_id = 0; 742 params.page_id = 0;
743 params.url = url2; 743 params.url = url2;
744 params.transition = PageTransition::SERVER_REDIRECT; 744 params.transition = PageTransition::SERVER_REDIRECT;
745 params.redirects.push_back(GURL("http://foo1")); 745 params.redirects.push_back(GURL("http://foo1"));
746 params.redirects.push_back(GURL("http://foo2")); 746 params.redirects.push_back(GURL("http://foo2"));
747 params.should_update_history = false; 747 params.should_update_history = false;
748 params.gesture = NavigationGestureAuto; 748 params.gesture = NavigationGestureAuto;
749 params.is_post = false; 749 params.is_post = false;
750 750
751 NavigationController::LoadCommittedDetails details; 751 NavigationController::LoadCommittedDetails details;
(...skipping 20 matching lines...) Expand all
772 TEST_F(NavigationControllerTest, NewSubframe) { 772 TEST_F(NavigationControllerTest, NewSubframe) {
773 TestNotificationTracker notifications; 773 TestNotificationTracker notifications;
774 RegisterForAllNavNotifications(&notifications, &controller()); 774 RegisterForAllNavNotifications(&notifications, &controller());
775 775
776 const GURL url1("http://foo1"); 776 const GURL url1("http://foo1");
777 rvh()->SendNavigate(0, url1); 777 rvh()->SendNavigate(0, url1);
778 EXPECT_TRUE(notifications.Check1AndReset( 778 EXPECT_TRUE(notifications.Check1AndReset(
779 NotificationType::NAV_ENTRY_COMMITTED)); 779 NotificationType::NAV_ENTRY_COMMITTED));
780 780
781 const GURL url2("http://foo2"); 781 const GURL url2("http://foo2");
782 ViewHostMsg_FrameNavigate_Params params; 782 ViewHostMsg_FrameNavigate_Params params = {0};
783 params.page_id = 1; 783 params.page_id = 1;
784 params.url = url2; 784 params.url = url2;
785 params.transition = PageTransition::MANUAL_SUBFRAME; 785 params.transition = PageTransition::MANUAL_SUBFRAME;
786 params.should_update_history = false; 786 params.should_update_history = false;
787 params.gesture = NavigationGestureUser; 787 params.gesture = NavigationGestureUser;
788 params.is_post = false; 788 params.is_post = false;
789 789
790 NavigationController::LoadCommittedDetails details; 790 NavigationController::LoadCommittedDetails details;
791 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 791 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
792 EXPECT_TRUE(notifications.Check1AndReset( 792 EXPECT_TRUE(notifications.Check1AndReset(
(...skipping 14 matching lines...) Expand all
807 807
808 // Some pages create a popup, then write an iframe into it. This causes a 808 // Some pages create a popup, then write an iframe into it. This causes a
809 // subframe navigation without having any committed entry. Such navigations 809 // subframe navigation without having any committed entry. Such navigations
810 // just get thrown on the ground, but we shouldn't crash. 810 // just get thrown on the ground, but we shouldn't crash.
811 TEST_F(NavigationControllerTest, SubframeOnEmptyPage) { 811 TEST_F(NavigationControllerTest, SubframeOnEmptyPage) {
812 TestNotificationTracker notifications; 812 TestNotificationTracker notifications;
813 RegisterForAllNavNotifications(&notifications, &controller()); 813 RegisterForAllNavNotifications(&notifications, &controller());
814 814
815 // Navigation controller currently has no entries. 815 // Navigation controller currently has no entries.
816 const GURL url("http://foo2"); 816 const GURL url("http://foo2");
817 ViewHostMsg_FrameNavigate_Params params; 817 ViewHostMsg_FrameNavigate_Params params = {0};
818 params.page_id = 1; 818 params.page_id = 1;
819 params.url = url; 819 params.url = url;
820 params.transition = PageTransition::AUTO_SUBFRAME; 820 params.transition = PageTransition::AUTO_SUBFRAME;
821 params.should_update_history = false; 821 params.should_update_history = false;
822 params.gesture = NavigationGestureAuto; 822 params.gesture = NavigationGestureAuto;
823 params.is_post = false; 823 params.is_post = false;
824 824
825 NavigationController::LoadCommittedDetails details; 825 NavigationController::LoadCommittedDetails details;
826 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 826 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
827 EXPECT_EQ(0U, notifications.size()); 827 EXPECT_EQ(0U, notifications.size());
828 } 828 }
829 829
830 // Auto subframes are ones the page loads automatically like ads. They should 830 // Auto subframes are ones the page loads automatically like ads. They should
831 // not create new navigation entries. 831 // not create new navigation entries.
832 TEST_F(NavigationControllerTest, AutoSubframe) { 832 TEST_F(NavigationControllerTest, AutoSubframe) {
833 TestNotificationTracker notifications; 833 TestNotificationTracker notifications;
834 RegisterForAllNavNotifications(&notifications, &controller()); 834 RegisterForAllNavNotifications(&notifications, &controller());
835 835
836 const GURL url1("http://foo1"); 836 const GURL url1("http://foo1");
837 rvh()->SendNavigate(0, url1); 837 rvh()->SendNavigate(0, url1);
838 EXPECT_TRUE(notifications.Check1AndReset( 838 EXPECT_TRUE(notifications.Check1AndReset(
839 NotificationType::NAV_ENTRY_COMMITTED)); 839 NotificationType::NAV_ENTRY_COMMITTED));
840 840
841 const GURL url2("http://foo2"); 841 const GURL url2("http://foo2");
842 ViewHostMsg_FrameNavigate_Params params; 842 ViewHostMsg_FrameNavigate_Params params = {0};
843 params.page_id = 0; 843 params.page_id = 0;
844 params.url = url2; 844 params.url = url2;
845 params.transition = PageTransition::AUTO_SUBFRAME; 845 params.transition = PageTransition::AUTO_SUBFRAME;
846 params.should_update_history = false; 846 params.should_update_history = false;
847 params.gesture = NavigationGestureUser; 847 params.gesture = NavigationGestureUser;
848 params.is_post = false; 848 params.is_post = false;
849 849
850 // Navigating should do nothing. 850 // Navigating should do nothing.
851 NavigationController::LoadCommittedDetails details; 851 NavigationController::LoadCommittedDetails details;
852 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 852 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
853 EXPECT_EQ(0U, notifications.size()); 853 EXPECT_EQ(0U, notifications.size());
854 854
855 // There should still be only one entry. 855 // There should still be only one entry.
856 EXPECT_EQ(1, controller().entry_count()); 856 EXPECT_EQ(1, controller().entry_count());
857 } 857 }
858 858
859 // Tests navigation and then going back to a subframe navigation. 859 // Tests navigation and then going back to a subframe navigation.
860 TEST_F(NavigationControllerTest, BackSubframe) { 860 TEST_F(NavigationControllerTest, BackSubframe) {
861 TestNotificationTracker notifications; 861 TestNotificationTracker notifications;
862 RegisterForAllNavNotifications(&notifications, &controller()); 862 RegisterForAllNavNotifications(&notifications, &controller());
863 863
864 // Main page. 864 // Main page.
865 const GURL url1("http://foo1"); 865 const GURL url1("http://foo1");
866 rvh()->SendNavigate(0, url1); 866 rvh()->SendNavigate(0, url1);
867 EXPECT_TRUE(notifications.Check1AndReset( 867 EXPECT_TRUE(notifications.Check1AndReset(
868 NotificationType::NAV_ENTRY_COMMITTED)); 868 NotificationType::NAV_ENTRY_COMMITTED));
869 869
870 // First manual subframe navigation. 870 // First manual subframe navigation.
871 const GURL url2("http://foo2"); 871 const GURL url2("http://foo2");
872 ViewHostMsg_FrameNavigate_Params params; 872 ViewHostMsg_FrameNavigate_Params params = {0};
873 params.page_id = 1; 873 params.page_id = 1;
874 params.url = url2; 874 params.url = url2;
875 params.transition = PageTransition::MANUAL_SUBFRAME; 875 params.transition = PageTransition::MANUAL_SUBFRAME;
876 params.should_update_history = false; 876 params.should_update_history = false;
877 params.gesture = NavigationGestureUser; 877 params.gesture = NavigationGestureUser;
878 params.is_post = false; 878 params.is_post = false;
879 879
880 // This should generate a new entry. 880 // This should generate a new entry.
881 NavigationController::LoadCommittedDetails details; 881 NavigationController::LoadCommittedDetails details;
882 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 882 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 946
947 // Main page. Note that we need "://" so this URL is treated as "standard" 947 // Main page. Note that we need "://" so this URL is treated as "standard"
948 // which are the only ones that can have a ref. 948 // which are the only ones that can have a ref.
949 const GURL url1("http:////foo"); 949 const GURL url1("http:////foo");
950 rvh()->SendNavigate(0, url1); 950 rvh()->SendNavigate(0, url1);
951 EXPECT_TRUE(notifications.Check1AndReset( 951 EXPECT_TRUE(notifications.Check1AndReset(
952 NotificationType::NAV_ENTRY_COMMITTED)); 952 NotificationType::NAV_ENTRY_COMMITTED));
953 953
954 // First navigation. 954 // First navigation.
955 const GURL url2("http:////foo#a"); 955 const GURL url2("http:////foo#a");
956 ViewHostMsg_FrameNavigate_Params params; 956 ViewHostMsg_FrameNavigate_Params params = {0};
957 params.page_id = 1; 957 params.page_id = 1;
958 params.url = url2; 958 params.url = url2;
959 params.transition = PageTransition::LINK; 959 params.transition = PageTransition::LINK;
960 params.should_update_history = false; 960 params.should_update_history = false;
961 params.gesture = NavigationGestureUser; 961 params.gesture = NavigationGestureUser;
962 params.is_post = false; 962 params.is_post = false;
963 963
964 // This should generate a new entry. 964 // This should generate a new entry.
965 NavigationController::LoadCommittedDetails details; 965 NavigationController::LoadCommittedDetails details;
966 EXPECT_TRUE(controller().RendererDidNavigate(params, &details)); 966 EXPECT_TRUE(controller().RendererDidNavigate(params, &details));
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1109 our_controller.RestoreFromState(navigations, 0); 1109 our_controller.RestoreFromState(navigations, 0);
1110 our_controller.GoToIndex(0); 1110 our_controller.GoToIndex(0);
1111 1111
1112 // We should now have one entry, and it should be "pending". 1112 // We should now have one entry, and it should be "pending".
1113 EXPECT_EQ(1, our_controller.entry_count()); 1113 EXPECT_EQ(1, our_controller.entry_count());
1114 EXPECT_EQ(our_controller.GetEntryAtIndex(0), 1114 EXPECT_EQ(our_controller.GetEntryAtIndex(0),
1115 our_controller.pending_entry()); 1115 our_controller.pending_entry());
1116 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->page_id()); 1116 EXPECT_EQ(0, our_controller.GetEntryAtIndex(0)->page_id());
1117 1117
1118 // Say we navigated to that entry. 1118 // Say we navigated to that entry.
1119 ViewHostMsg_FrameNavigate_Params params; 1119 ViewHostMsg_FrameNavigate_Params params = {0};
1120 params.page_id = 0; 1120 params.page_id = 0;
1121 params.url = url; 1121 params.url = url;
1122 params.transition = PageTransition::LINK; 1122 params.transition = PageTransition::LINK;
1123 params.should_update_history = false; 1123 params.should_update_history = false;
1124 params.gesture = NavigationGestureUser; 1124 params.gesture = NavigationGestureUser;
1125 params.is_post = false; 1125 params.is_post = false;
1126 NavigationController::LoadCommittedDetails details; 1126 NavigationController::LoadCommittedDetails details;
1127 our_controller.RendererDidNavigate(params, &details); 1127 our_controller.RendererDidNavigate(params, &details);
1128 1128
1129 // There should be no longer any pending entry and one committed one. This 1129 // There should be no longer any pending entry and one committed one. This
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1373 // Navigate the main frame. 1373 // Navigate the main frame.
1374 const GURL url("http://www.google.com/"); 1374 const GURL url("http://www.google.com/");
1375 rvh()->SendNavigate(0, url); 1375 rvh()->SendNavigate(0, url);
1376 1376
1377 // We should be at the first navigation entry. 1377 // We should be at the first navigation entry.
1378 EXPECT_EQ(controller().entry_count(), 1); 1378 EXPECT_EQ(controller().entry_count(), 1);
1379 EXPECT_EQ(controller().last_committed_entry_index(), 0); 1379 EXPECT_EQ(controller().last_committed_entry_index(), 0);
1380 1380
1381 // Navigate a subframe that would normally count as in-page. 1381 // Navigate a subframe that would normally count as in-page.
1382 const GURL subframe("http://www.google.com/#"); 1382 const GURL subframe("http://www.google.com/#");
1383 ViewHostMsg_FrameNavigate_Params params; 1383 ViewHostMsg_FrameNavigate_Params params = {0};
1384 params.page_id = 0; 1384 params.page_id = 0;
1385 params.url = subframe; 1385 params.url = subframe;
1386 params.transition = PageTransition::AUTO_SUBFRAME; 1386 params.transition = PageTransition::AUTO_SUBFRAME;
1387 params.should_update_history = false; 1387 params.should_update_history = false;
1388 params.gesture = NavigationGestureAuto; 1388 params.gesture = NavigationGestureAuto;
1389 params.is_post = false; 1389 params.is_post = false;
1390 NavigationController::LoadCommittedDetails details; 1390 NavigationController::LoadCommittedDetails details;
1391 EXPECT_FALSE(controller().RendererDidNavigate(params, &details)); 1391 EXPECT_FALSE(controller().RendererDidNavigate(params, &details));
1392 1392
1393 // Nothing should have changed. 1393 // Nothing should have changed.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1467 TabNavigation nav(0, url0, GURL(), string16(), 1467 TabNavigation nav(0, url0, GURL(), string16(),
1468 webkit_glue::CreateHistoryStateForURL(url0), 1468 webkit_glue::CreateHistoryStateForURL(url0),
1469 PageTransition::LINK); 1469 PageTransition::LINK);
1470 session_helper_.AssertNavigationEquals(nav, 1470 session_helper_.AssertNavigationEquals(nav,
1471 windows_[0]->tabs[0]->navigations[0]); 1471 windows_[0]->tabs[0]->navigations[0]);
1472 nav.set_url(url2); 1472 nav.set_url(url2);
1473 session_helper_.AssertNavigationEquals(nav, 1473 session_helper_.AssertNavigationEquals(nav,
1474 windows_[0]->tabs[0]->navigations[1]); 1474 windows_[0]->tabs[0]->navigations[1]);
1475 } 1475 }
1476 */ 1476 */
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698