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

Side by Side Diff: components/sessions/serialized_navigation_entry_unittest.cc

Issue 14985014: Introduce content::PageState (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add comments to the top of page_state.h Created 7 years, 7 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "components/sessions/serialized_navigation_entry.h" 5 #include "components/sessions/serialized_navigation_entry.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 16 matching lines...) Expand all
27 namespace sessions { 27 namespace sessions {
28 namespace { 28 namespace {
29 29
30 const int kIndex = 3; 30 const int kIndex = 3;
31 const int kUniqueID = 50; 31 const int kUniqueID = 50;
32 const content::Referrer kReferrer = 32 const content::Referrer kReferrer =
33 content::Referrer(GURL("http://www.referrer.com"), 33 content::Referrer(GURL("http://www.referrer.com"),
34 WebKit::WebReferrerPolicyAlways); 34 WebKit::WebReferrerPolicyAlways);
35 const GURL kVirtualURL("http://www.virtual-url.com"); 35 const GURL kVirtualURL("http://www.virtual-url.com");
36 const string16 kTitle = ASCIIToUTF16("title"); 36 const string16 kTitle = ASCIIToUTF16("title");
37 const std::string kContentState = "content state"; 37 const content::PageState kPageState =
38 content::PageState::CreateFromEncodedData("page state");
38 const content::PageTransition kTransitionType = 39 const content::PageTransition kTransitionType =
39 static_cast<content::PageTransition>( 40 static_cast<content::PageTransition>(
40 content::PAGE_TRANSITION_AUTO_SUBFRAME | 41 content::PAGE_TRANSITION_AUTO_SUBFRAME |
41 content::PAGE_TRANSITION_HOME_PAGE | 42 content::PAGE_TRANSITION_HOME_PAGE |
42 content::PAGE_TRANSITION_CLIENT_REDIRECT); 43 content::PAGE_TRANSITION_CLIENT_REDIRECT);
43 const bool kHasPostData = true; 44 const bool kHasPostData = true;
44 const int64 kPostID = 100; 45 const int64 kPostID = 100;
45 const GURL kOriginalRequestURL("http://www.original-request.com"); 46 const GURL kOriginalRequestURL("http://www.original-request.com");
46 const bool kIsOverridingUserAgent = true; 47 const bool kIsOverridingUserAgent = true;
47 const base::Time kTimestamp = syncer::ProtoTimeToTime(100); 48 const base::Time kTimestamp = syncer::ProtoTimeToTime(100);
48 const string16 kSearchTerms = ASCIIToUTF16("my search terms"); 49 const string16 kSearchTerms = ASCIIToUTF16("my search terms");
49 const GURL kFaviconURL("http://virtual-url.com/favicon.ico"); 50 const GURL kFaviconURL("http://virtual-url.com/favicon.ico");
50 51
51 const int kPageID = 10; 52 const int kPageID = 10;
52 53
53 // Create a NavigationEntry from the constants above. 54 // Create a NavigationEntry from the constants above.
54 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { 55 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() {
55 scoped_ptr<content::NavigationEntry> navigation_entry( 56 scoped_ptr<content::NavigationEntry> navigation_entry(
56 content::NavigationEntry::Create()); 57 content::NavigationEntry::Create());
57 navigation_entry->SetReferrer(kReferrer); 58 navigation_entry->SetReferrer(kReferrer);
58 navigation_entry->SetVirtualURL(kVirtualURL); 59 navigation_entry->SetVirtualURL(kVirtualURL);
59 navigation_entry->SetTitle(kTitle); 60 navigation_entry->SetTitle(kTitle);
60 navigation_entry->SetContentState(kContentState); 61 navigation_entry->SetPageState(kPageState);
61 navigation_entry->SetTransitionType(kTransitionType); 62 navigation_entry->SetTransitionType(kTransitionType);
62 navigation_entry->SetHasPostData(kHasPostData); 63 navigation_entry->SetHasPostData(kHasPostData);
63 navigation_entry->SetPostID(kPostID); 64 navigation_entry->SetPostID(kPostID);
64 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL); 65 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL);
65 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent); 66 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent);
66 navigation_entry->SetTimestamp(kTimestamp); 67 navigation_entry->SetTimestamp(kTimestamp);
67 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms); 68 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms);
68 navigation_entry->GetFavicon().valid = true; 69 navigation_entry->GetFavicon().valid = true;
69 navigation_entry->GetFavicon().url = kFaviconURL; 70 navigation_entry->GetFavicon().url = kFaviconURL;
70 return navigation_entry.Pass(); 71 return navigation_entry.Pass();
71 } 72 }
72 73
73 // Create a sync_pb::TabNavigation from the constants above. 74 // Create a sync_pb::TabNavigation from the constants above.
74 sync_pb::TabNavigation MakeSyncDataForTest() { 75 sync_pb::TabNavigation MakeSyncDataForTest() {
75 sync_pb::TabNavigation sync_data; 76 sync_pb::TabNavigation sync_data;
76 sync_data.set_virtual_url(kVirtualURL.spec()); 77 sync_data.set_virtual_url(kVirtualURL.spec());
77 sync_data.set_referrer(kReferrer.url.spec()); 78 sync_data.set_referrer(kReferrer.url.spec());
78 sync_data.set_title(UTF16ToUTF8(kTitle)); 79 sync_data.set_title(UTF16ToUTF8(kTitle));
79 sync_data.set_state(kContentState); 80 sync_data.set_state(kPageState.ToEncodedData());
80 sync_data.set_page_transition( 81 sync_data.set_page_transition(
81 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); 82 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME);
82 sync_data.set_unique_id(kUniqueID); 83 sync_data.set_unique_id(kUniqueID);
83 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp)); 84 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp));
84 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT); 85 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT);
85 sync_data.set_navigation_home_page(true); 86 sync_data.set_navigation_home_page(true);
86 sync_data.set_search_terms(UTF16ToUTF8(kSearchTerms)); 87 sync_data.set_search_terms(UTF16ToUTF8(kSearchTerms));
87 sync_data.set_favicon_url(kFaviconURL.spec()); 88 sync_data.set_favicon_url(kFaviconURL.spec());
88 return sync_data; 89 return sync_data;
89 } 90 }
90 91
91 // Create a default SerializedNavigationEntry. All its fields should be 92 // Create a default SerializedNavigationEntry. All its fields should be
92 // initialized to their respective default values. 93 // initialized to their respective default values.
93 TEST(SerializedNavigationEntryTest, DefaultInitializer) { 94 TEST(SerializedNavigationEntryTest, DefaultInitializer) {
94 const SerializedNavigationEntry navigation; 95 const SerializedNavigationEntry navigation;
95 EXPECT_EQ(-1, navigation.index()); 96 EXPECT_EQ(-1, navigation.index());
96 EXPECT_EQ(0, navigation.unique_id()); 97 EXPECT_EQ(0, navigation.unique_id());
97 EXPECT_EQ(GURL(), navigation.referrer().url); 98 EXPECT_EQ(GURL(), navigation.referrer().url);
98 EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy); 99 EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy);
99 EXPECT_EQ(GURL(), navigation.virtual_url()); 100 EXPECT_EQ(GURL(), navigation.virtual_url());
100 EXPECT_TRUE(navigation.title().empty()); 101 EXPECT_TRUE(navigation.title().empty());
101 EXPECT_TRUE(navigation.content_state().empty()); 102 EXPECT_FALSE(navigation.page_state().IsValid());
102 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, navigation.transition_type()); 103 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, navigation.transition_type());
103 EXPECT_FALSE(navigation.has_post_data()); 104 EXPECT_FALSE(navigation.has_post_data());
104 EXPECT_EQ(-1, navigation.post_id()); 105 EXPECT_EQ(-1, navigation.post_id());
105 EXPECT_EQ(GURL(), navigation.original_request_url()); 106 EXPECT_EQ(GURL(), navigation.original_request_url());
106 EXPECT_FALSE(navigation.is_overriding_user_agent()); 107 EXPECT_FALSE(navigation.is_overriding_user_agent());
107 EXPECT_TRUE(navigation.timestamp().is_null()); 108 EXPECT_TRUE(navigation.timestamp().is_null());
108 EXPECT_TRUE(navigation.search_terms().empty()); 109 EXPECT_TRUE(navigation.search_terms().empty());
109 EXPECT_FALSE(navigation.favicon_url().is_valid()); 110 EXPECT_FALSE(navigation.favicon_url().is_valid());
110 } 111 }
111 112
112 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields 113 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields
113 // should match the NavigationEntry's. 114 // should match the NavigationEntry's.
114 TEST(SerializedNavigationEntryTest, FromNavigationEntry) { 115 TEST(SerializedNavigationEntryTest, FromNavigationEntry) {
115 const scoped_ptr<content::NavigationEntry> navigation_entry( 116 const scoped_ptr<content::NavigationEntry> navigation_entry(
116 MakeNavigationEntryForTest()); 117 MakeNavigationEntryForTest());
117 118
118 const SerializedNavigationEntry& navigation = 119 const SerializedNavigationEntry& navigation =
119 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); 120 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry);
120 121
121 EXPECT_EQ(kIndex, navigation.index()); 122 EXPECT_EQ(kIndex, navigation.index());
122 123
123 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); 124 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id());
124 EXPECT_EQ(kReferrer.url, navigation.referrer().url); 125 EXPECT_EQ(kReferrer.url, navigation.referrer().url);
125 EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); 126 EXPECT_EQ(kReferrer.policy, navigation.referrer().policy);
126 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); 127 EXPECT_EQ(kVirtualURL, navigation.virtual_url());
127 EXPECT_EQ(kTitle, navigation.title()); 128 EXPECT_EQ(kTitle, navigation.title());
128 EXPECT_EQ(kContentState, navigation.content_state()); 129 EXPECT_EQ(kPageState, navigation.page_state());
129 EXPECT_EQ(kTransitionType, navigation.transition_type()); 130 EXPECT_EQ(kTransitionType, navigation.transition_type());
130 EXPECT_EQ(kHasPostData, navigation.has_post_data()); 131 EXPECT_EQ(kHasPostData, navigation.has_post_data());
131 EXPECT_EQ(kPostID, navigation.post_id()); 132 EXPECT_EQ(kPostID, navigation.post_id());
132 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url()); 133 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url());
133 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent()); 134 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent());
134 EXPECT_EQ(kTimestamp, navigation.timestamp()); 135 EXPECT_EQ(kTimestamp, navigation.timestamp());
135 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); 136 EXPECT_EQ(kFaviconURL, navigation.favicon_url());
136 } 137 }
137 138
138 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its 139 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its
139 // fields should match the protocol buffer's if it exists there, and 140 // fields should match the protocol buffer's if it exists there, and
140 // sbould be set to the default value otherwise. 141 // sbould be set to the default value otherwise.
141 TEST(SerializedNavigationEntryTest, FromSyncData) { 142 TEST(SerializedNavigationEntryTest, FromSyncData) {
142 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest(); 143 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest();
143 144
144 const SerializedNavigationEntry& navigation = 145 const SerializedNavigationEntry& navigation =
145 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); 146 SerializedNavigationEntry::FromSyncData(kIndex, sync_data);
146 147
147 EXPECT_EQ(kIndex, navigation.index()); 148 EXPECT_EQ(kIndex, navigation.index());
148 EXPECT_EQ(kUniqueID, navigation.unique_id()); 149 EXPECT_EQ(kUniqueID, navigation.unique_id());
149 EXPECT_EQ(kReferrer.url, navigation.referrer().url); 150 EXPECT_EQ(kReferrer.url, navigation.referrer().url);
150 EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy); 151 EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy);
151 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); 152 EXPECT_EQ(kVirtualURL, navigation.virtual_url());
152 EXPECT_EQ(kTitle, navigation.title()); 153 EXPECT_EQ(kTitle, navigation.title());
153 EXPECT_EQ(kContentState, navigation.content_state()); 154 EXPECT_EQ(kPageState, navigation.page_state());
154 EXPECT_EQ(kTransitionType, navigation.transition_type()); 155 EXPECT_EQ(kTransitionType, navigation.transition_type());
155 EXPECT_FALSE(navigation.has_post_data()); 156 EXPECT_FALSE(navigation.has_post_data());
156 EXPECT_EQ(-1, navigation.post_id()); 157 EXPECT_EQ(-1, navigation.post_id());
157 EXPECT_EQ(GURL(), navigation.original_request_url()); 158 EXPECT_EQ(GURL(), navigation.original_request_url());
158 EXPECT_FALSE(navigation.is_overriding_user_agent()); 159 EXPECT_FALSE(navigation.is_overriding_user_agent());
159 EXPECT_TRUE(navigation.timestamp().is_null()); 160 EXPECT_TRUE(navigation.timestamp().is_null());
160 EXPECT_EQ(kSearchTerms, navigation.search_terms()); 161 EXPECT_EQ(kSearchTerms, navigation.search_terms());
161 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); 162 EXPECT_EQ(kFaviconURL, navigation.favicon_url());
162 } 163 }
163 164
(...skipping 12 matching lines...) Expand all
176 PickleIterator pickle_iterator(pickle); 177 PickleIterator pickle_iterator(pickle);
177 EXPECT_TRUE(new_navigation.ReadFromPickle(&pickle_iterator)); 178 EXPECT_TRUE(new_navigation.ReadFromPickle(&pickle_iterator));
178 179
179 EXPECT_EQ(kIndex, new_navigation.index()); 180 EXPECT_EQ(kIndex, new_navigation.index());
180 181
181 EXPECT_EQ(0, new_navigation.unique_id()); 182 EXPECT_EQ(0, new_navigation.unique_id());
182 EXPECT_EQ(kReferrer.url, new_navigation.referrer().url); 183 EXPECT_EQ(kReferrer.url, new_navigation.referrer().url);
183 EXPECT_EQ(kReferrer.policy, new_navigation.referrer().policy); 184 EXPECT_EQ(kReferrer.policy, new_navigation.referrer().policy);
184 EXPECT_EQ(kVirtualURL, new_navigation.virtual_url()); 185 EXPECT_EQ(kVirtualURL, new_navigation.virtual_url());
185 EXPECT_EQ(kTitle, new_navigation.title()); 186 EXPECT_EQ(kTitle, new_navigation.title());
186 EXPECT_TRUE(new_navigation.content_state().empty()); 187 EXPECT_FALSE(new_navigation.page_state().IsValid());
187 EXPECT_EQ(kTransitionType, new_navigation.transition_type()); 188 EXPECT_EQ(kTransitionType, new_navigation.transition_type());
188 EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); 189 EXPECT_EQ(kHasPostData, new_navigation.has_post_data());
189 EXPECT_EQ(-1, new_navigation.post_id()); 190 EXPECT_EQ(-1, new_navigation.post_id());
190 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url()); 191 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url());
191 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent()); 192 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent());
192 EXPECT_EQ(kTimestamp, new_navigation.timestamp()); 193 EXPECT_EQ(kTimestamp, new_navigation.timestamp());
193 EXPECT_EQ(kSearchTerms, new_navigation.search_terms()); 194 EXPECT_EQ(kSearchTerms, new_navigation.search_terms());
194 } 195 }
195 196
196 // Create a NavigationEntry, then create another one by converting to 197 // Create a NavigationEntry, then create another one by converting to
197 // a SerializedNavigationEntry and back. The new one should match the old one 198 // a SerializedNavigationEntry and back. The new one should match the old one
198 // except for fields that aren't preserved, which should be set to 199 // except for fields that aren't preserved, which should be set to
199 // expected values. 200 // expected values.
200 TEST(SerializedNavigationEntryTest, ToNavigationEntry) { 201 TEST(SerializedNavigationEntryTest, ToNavigationEntry) {
201 const scoped_ptr<content::NavigationEntry> old_navigation_entry( 202 const scoped_ptr<content::NavigationEntry> old_navigation_entry(
202 MakeNavigationEntryForTest()); 203 MakeNavigationEntryForTest());
203 204
204 const SerializedNavigationEntry& navigation = 205 const SerializedNavigationEntry& navigation =
205 SerializedNavigationEntry::FromNavigationEntry(kIndex, 206 SerializedNavigationEntry::FromNavigationEntry(kIndex,
206 *old_navigation_entry); 207 *old_navigation_entry);
207 208
208 const scoped_ptr<content::NavigationEntry> new_navigation_entry( 209 const scoped_ptr<content::NavigationEntry> new_navigation_entry(
209 navigation.ToNavigationEntry(kPageID, NULL)); 210 navigation.ToNavigationEntry(kPageID, NULL));
210 211
211 EXPECT_EQ(kReferrer.url, new_navigation_entry->GetReferrer().url); 212 EXPECT_EQ(kReferrer.url, new_navigation_entry->GetReferrer().url);
212 EXPECT_EQ(kReferrer.policy, new_navigation_entry->GetReferrer().policy); 213 EXPECT_EQ(kReferrer.policy, new_navigation_entry->GetReferrer().policy);
213 EXPECT_EQ(kVirtualURL, new_navigation_entry->GetVirtualURL()); 214 EXPECT_EQ(kVirtualURL, new_navigation_entry->GetVirtualURL());
214 EXPECT_EQ(kTitle, new_navigation_entry->GetTitle()); 215 EXPECT_EQ(kTitle, new_navigation_entry->GetTitle());
215 EXPECT_EQ(kContentState, new_navigation_entry->GetContentState()); 216 EXPECT_EQ(kPageState, new_navigation_entry->GetPageState());
216 EXPECT_EQ(kPageID, new_navigation_entry->GetPageID()); 217 EXPECT_EQ(kPageID, new_navigation_entry->GetPageID());
217 EXPECT_EQ(content::PAGE_TRANSITION_RELOAD, 218 EXPECT_EQ(content::PAGE_TRANSITION_RELOAD,
218 new_navigation_entry->GetTransitionType()); 219 new_navigation_entry->GetTransitionType());
219 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData()); 220 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData());
220 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID()); 221 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID());
221 EXPECT_EQ(kOriginalRequestURL, 222 EXPECT_EQ(kOriginalRequestURL,
222 new_navigation_entry->GetOriginalRequestURL()); 223 new_navigation_entry->GetOriginalRequestURL());
223 EXPECT_EQ(kIsOverridingUserAgent, 224 EXPECT_EQ(kIsOverridingUserAgent,
224 new_navigation_entry->GetIsOverridingUserAgent()); 225 new_navigation_entry->GetIsOverridingUserAgent());
225 string16 search_terms; 226 string16 search_terms;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 const content::PageTransition constructed_transition = 281 const content::PageTransition constructed_transition =
281 constructed_nav.transition_type(); 282 constructed_nav.transition_type();
282 283
283 EXPECT_EQ(transition, constructed_transition); 284 EXPECT_EQ(transition, constructed_transition);
284 } 285 }
285 } 286 }
286 } 287 }
287 288
288 } // namespace 289 } // namespace
289 } // namespace sessions 290 } // namespace sessions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698