OLD | NEW |
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" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/pickle.h" | 12 #include "base/pickle.h" |
13 #include "base/strings/string16.h" | 13 #include "base/strings/string16.h" |
14 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
16 #include "base/time/time.h" | 16 #include "base/time/time.h" |
17 #include "content/public/browser/favicon_status.h" | 17 #include "content/public/browser/favicon_status.h" |
18 #include "content/public/browser/navigation_entry.h" | 18 #include "content/public/browser/navigation_entry.h" |
| 19 #include "content/public/common/page_state.h" |
19 #include "content/public/common/referrer.h" | 20 #include "content/public/common/referrer.h" |
20 #include "sync/protocol/session_specifics.pb.h" | 21 #include "sync/protocol/session_specifics.pb.h" |
21 #include "sync/util/time.h" | 22 #include "sync/util/time.h" |
22 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
23 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" | 24 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" |
24 #include "ui/base/page_transition_types.h" | 25 #include "ui/base/page_transition_types.h" |
25 #include "url/gurl.h" | 26 #include "url/gurl.h" |
26 | 27 |
27 namespace sessions { | 28 namespace sessions { |
28 namespace { | 29 namespace { |
29 | 30 |
30 const int kIndex = 3; | 31 const int kIndex = 3; |
31 const int kUniqueID = 50; | 32 const int kUniqueID = 50; |
32 const content::Referrer kReferrer = | 33 const GURL kReferrerURL = GURL("http://www.referrer.com"); |
33 content::Referrer(GURL("http://www.referrer.com"), | 34 const int kReferrerPolicy = blink::WebReferrerPolicyAlways; |
34 blink::WebReferrerPolicyAlways); | |
35 const GURL kVirtualURL("http://www.virtual-url.com"); | 35 const GURL kVirtualURL("http://www.virtual-url.com"); |
36 const base::string16 kTitle = base::ASCIIToUTF16("title"); | 36 const base::string16 kTitle = base::ASCIIToUTF16("title"); |
37 const content::PageState kPageState = | 37 const std::string kEncodedPageState = "page state"; |
38 content::PageState::CreateFromEncodedData("page state"); | |
39 const ui::PageTransition kTransitionType = | 38 const ui::PageTransition kTransitionType = |
40 ui::PageTransitionFromInt( | 39 ui::PageTransitionFromInt( |
41 ui::PAGE_TRANSITION_AUTO_SUBFRAME | | 40 ui::PAGE_TRANSITION_AUTO_SUBFRAME | |
42 ui::PAGE_TRANSITION_HOME_PAGE | | 41 ui::PAGE_TRANSITION_HOME_PAGE | |
43 ui::PAGE_TRANSITION_CLIENT_REDIRECT); | 42 ui::PAGE_TRANSITION_CLIENT_REDIRECT); |
44 const bool kHasPostData = true; | 43 const bool kHasPostData = true; |
45 const int64 kPostID = 100; | 44 const int64 kPostID = 100; |
46 const GURL kOriginalRequestURL("http://www.original-request.com"); | 45 const GURL kOriginalRequestURL("http://www.original-request.com"); |
47 const bool kIsOverridingUserAgent = true; | 46 const bool kIsOverridingUserAgent = true; |
48 const base::Time kTimestamp = syncer::ProtoTimeToTime(100); | 47 const base::Time kTimestamp = syncer::ProtoTimeToTime(100); |
49 const base::string16 kSearchTerms = base::ASCIIToUTF16("my search terms"); | 48 const base::string16 kSearchTerms = base::ASCIIToUTF16("my search terms"); |
50 const GURL kFaviconURL("http://virtual-url.com/favicon.ico"); | 49 const GURL kFaviconURL("http://virtual-url.com/favicon.ico"); |
51 const int kHttpStatusCode = 404; | 50 const int kHttpStatusCode = 404; |
52 const GURL kRedirectURL0("http://go/redirect0"); | 51 const GURL kRedirectURL0("http://go/redirect0"); |
53 const GURL kRedirectURL1("http://go/redirect1"); | 52 const GURL kRedirectURL1("http://go/redirect1"); |
54 const GURL kOtherURL("http://other.com"); | 53 const GURL kOtherURL("http://other.com"); |
55 | 54 |
56 const int kPageID = 10; | 55 const int kPageID = 10; |
57 | 56 |
58 // Create a NavigationEntry from the constants above. | 57 // Create a NavigationEntry from the constants above. |
59 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { | 58 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { |
60 scoped_ptr<content::NavigationEntry> navigation_entry( | 59 scoped_ptr<content::NavigationEntry> navigation_entry( |
61 content::NavigationEntry::Create()); | 60 content::NavigationEntry::Create()); |
62 navigation_entry->SetReferrer(kReferrer); | 61 navigation_entry->SetReferrer(content::Referrer( |
| 62 kReferrerURL, |
| 63 static_cast<blink::WebReferrerPolicy>(kReferrerPolicy))); |
63 navigation_entry->SetVirtualURL(kVirtualURL); | 64 navigation_entry->SetVirtualURL(kVirtualURL); |
64 navigation_entry->SetTitle(kTitle); | 65 navigation_entry->SetTitle(kTitle); |
65 navigation_entry->SetPageState(kPageState); | 66 navigation_entry->SetPageState( |
| 67 content::PageState::CreateFromEncodedData(kEncodedPageState)); |
66 navigation_entry->SetTransitionType(kTransitionType); | 68 navigation_entry->SetTransitionType(kTransitionType); |
67 navigation_entry->SetHasPostData(kHasPostData); | 69 navigation_entry->SetHasPostData(kHasPostData); |
68 navigation_entry->SetPostID(kPostID); | 70 navigation_entry->SetPostID(kPostID); |
69 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL); | 71 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL); |
70 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent); | 72 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent); |
71 navigation_entry->SetTimestamp(kTimestamp); | 73 navigation_entry->SetTimestamp(kTimestamp); |
72 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms); | 74 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms); |
73 navigation_entry->GetFavicon().valid = true; | 75 navigation_entry->GetFavicon().valid = true; |
74 navigation_entry->GetFavicon().url = kFaviconURL; | 76 navigation_entry->GetFavicon().url = kFaviconURL; |
75 navigation_entry->SetHttpStatusCode(kHttpStatusCode); | 77 navigation_entry->SetHttpStatusCode(kHttpStatusCode); |
76 std::vector<GURL> redirect_chain; | 78 std::vector<GURL> redirect_chain; |
77 redirect_chain.push_back(kRedirectURL0); | 79 redirect_chain.push_back(kRedirectURL0); |
78 redirect_chain.push_back(kRedirectURL1); | 80 redirect_chain.push_back(kRedirectURL1); |
79 redirect_chain.push_back(kVirtualURL); | 81 redirect_chain.push_back(kVirtualURL); |
80 navigation_entry->SetRedirectChain(redirect_chain); | 82 navigation_entry->SetRedirectChain(redirect_chain); |
81 return navigation_entry.Pass(); | 83 return navigation_entry.Pass(); |
82 } | 84 } |
83 | 85 |
84 // Create a sync_pb::TabNavigation from the constants above. | 86 // Create a sync_pb::TabNavigation from the constants above. |
85 sync_pb::TabNavigation MakeSyncDataForTest() { | 87 sync_pb::TabNavigation MakeSyncDataForTest() { |
86 sync_pb::TabNavigation sync_data; | 88 sync_pb::TabNavigation sync_data; |
87 sync_data.set_virtual_url(kVirtualURL.spec()); | 89 sync_data.set_virtual_url(kVirtualURL.spec()); |
88 sync_data.set_referrer(kReferrer.url.spec()); | 90 sync_data.set_referrer(kReferrerURL.spec()); |
89 sync_data.set_referrer_policy(blink::WebReferrerPolicyOrigin); | 91 sync_data.set_referrer_policy(blink::WebReferrerPolicyOrigin); |
90 sync_data.set_title(base::UTF16ToUTF8(kTitle)); | 92 sync_data.set_title(base::UTF16ToUTF8(kTitle)); |
91 sync_data.set_state(kPageState.ToEncodedData()); | 93 sync_data.set_state(kEncodedPageState); |
92 sync_data.set_page_transition( | 94 sync_data.set_page_transition( |
93 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); | 95 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); |
94 sync_data.set_unique_id(kUniqueID); | 96 sync_data.set_unique_id(kUniqueID); |
95 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp)); | 97 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp)); |
96 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT); | 98 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT); |
97 sync_data.set_navigation_home_page(true); | 99 sync_data.set_navigation_home_page(true); |
98 sync_data.set_search_terms(base::UTF16ToUTF8(kSearchTerms)); | 100 sync_data.set_search_terms(base::UTF16ToUTF8(kSearchTerms)); |
99 sync_data.set_favicon_url(kFaviconURL.spec()); | 101 sync_data.set_favicon_url(kFaviconURL.spec()); |
100 sync_data.set_http_status_code(kHttpStatusCode); | 102 sync_data.set_http_status_code(kHttpStatusCode); |
101 // The redirect chain only syncs one way. | 103 // The redirect chain only syncs one way. |
102 return sync_data; | 104 return sync_data; |
103 } | 105 } |
104 | 106 |
105 // Create a default SerializedNavigationEntry. All its fields should be | 107 // Create a default SerializedNavigationEntry. All its fields should be |
106 // initialized to their respective default values. | 108 // initialized to their respective default values. |
107 TEST(SerializedNavigationEntryTest, DefaultInitializer) { | 109 TEST(SerializedNavigationEntryTest, DefaultInitializer) { |
108 const SerializedNavigationEntry navigation; | 110 const SerializedNavigationEntry navigation; |
109 EXPECT_EQ(-1, navigation.index()); | 111 EXPECT_EQ(-1, navigation.index()); |
110 EXPECT_EQ(0, navigation.unique_id()); | 112 EXPECT_EQ(0, navigation.unique_id()); |
111 EXPECT_EQ(GURL(), navigation.referrer().url); | 113 EXPECT_EQ(GURL(), navigation.referrer_url()); |
112 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); | 114 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy()); |
113 EXPECT_EQ(GURL(), navigation.virtual_url()); | 115 EXPECT_EQ(GURL(), navigation.virtual_url()); |
114 EXPECT_TRUE(navigation.title().empty()); | 116 EXPECT_TRUE(navigation.title().empty()); |
115 EXPECT_FALSE(navigation.page_state().IsValid()); | 117 EXPECT_EQ(std::string(), navigation.encoded_page_state()); |
116 EXPECT_EQ(ui::PAGE_TRANSITION_TYPED, navigation.transition_type()); | 118 EXPECT_EQ(ui::PAGE_TRANSITION_TYPED, navigation.transition_type()); |
117 EXPECT_FALSE(navigation.has_post_data()); | 119 EXPECT_FALSE(navigation.has_post_data()); |
118 EXPECT_EQ(-1, navigation.post_id()); | 120 EXPECT_EQ(-1, navigation.post_id()); |
119 EXPECT_EQ(GURL(), navigation.original_request_url()); | 121 EXPECT_EQ(GURL(), navigation.original_request_url()); |
120 EXPECT_FALSE(navigation.is_overriding_user_agent()); | 122 EXPECT_FALSE(navigation.is_overriding_user_agent()); |
121 EXPECT_TRUE(navigation.timestamp().is_null()); | 123 EXPECT_TRUE(navigation.timestamp().is_null()); |
122 EXPECT_TRUE(navigation.search_terms().empty()); | 124 EXPECT_TRUE(navigation.search_terms().empty()); |
123 EXPECT_FALSE(navigation.favicon_url().is_valid()); | 125 EXPECT_FALSE(navigation.favicon_url().is_valid()); |
124 EXPECT_EQ(0, navigation.http_status_code()); | 126 EXPECT_EQ(0, navigation.http_status_code()); |
125 EXPECT_EQ(0U, navigation.redirect_chain().size()); | 127 EXPECT_EQ(0U, navigation.redirect_chain().size()); |
126 } | 128 } |
127 | 129 |
128 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields | 130 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields |
129 // should match the NavigationEntry's. | 131 // should match the NavigationEntry's. |
130 TEST(SerializedNavigationEntryTest, FromNavigationEntry) { | 132 TEST(SerializedNavigationEntryTest, FromNavigationEntry) { |
131 const scoped_ptr<content::NavigationEntry> navigation_entry( | 133 const scoped_ptr<content::NavigationEntry> navigation_entry( |
132 MakeNavigationEntryForTest()); | 134 MakeNavigationEntryForTest()); |
133 | 135 |
134 const SerializedNavigationEntry& navigation = | 136 const SerializedNavigationEntry& navigation = |
135 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); | 137 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); |
136 | 138 |
137 EXPECT_EQ(kIndex, navigation.index()); | 139 EXPECT_EQ(kIndex, navigation.index()); |
138 | 140 |
139 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); | 141 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); |
140 EXPECT_EQ(kReferrer.url, navigation.referrer().url); | 142 EXPECT_EQ(kReferrerURL, navigation.referrer_url()); |
141 EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); | 143 EXPECT_EQ(kReferrerPolicy, navigation.referrer_policy()); |
142 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); | 144 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); |
143 EXPECT_EQ(kTitle, navigation.title()); | 145 EXPECT_EQ(kTitle, navigation.title()); |
144 EXPECT_EQ(kPageState, navigation.page_state()); | 146 EXPECT_EQ(kEncodedPageState, navigation.encoded_page_state()); |
145 EXPECT_EQ(kTransitionType, navigation.transition_type()); | 147 EXPECT_EQ(kTransitionType, navigation.transition_type()); |
146 EXPECT_EQ(kHasPostData, navigation.has_post_data()); | 148 EXPECT_EQ(kHasPostData, navigation.has_post_data()); |
147 EXPECT_EQ(kPostID, navigation.post_id()); | 149 EXPECT_EQ(kPostID, navigation.post_id()); |
148 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url()); | 150 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url()); |
149 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent()); | 151 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent()); |
150 EXPECT_EQ(kTimestamp, navigation.timestamp()); | 152 EXPECT_EQ(kTimestamp, navigation.timestamp()); |
151 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); | 153 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); |
152 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); | 154 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); |
153 ASSERT_EQ(3U, navigation.redirect_chain().size()); | 155 ASSERT_EQ(3U, navigation.redirect_chain().size()); |
154 EXPECT_EQ(kRedirectURL0, navigation.redirect_chain()[0]); | 156 EXPECT_EQ(kRedirectURL0, navigation.redirect_chain()[0]); |
155 EXPECT_EQ(kRedirectURL1, navigation.redirect_chain()[1]); | 157 EXPECT_EQ(kRedirectURL1, navigation.redirect_chain()[1]); |
156 EXPECT_EQ(kVirtualURL, navigation.redirect_chain()[2]); | 158 EXPECT_EQ(kVirtualURL, navigation.redirect_chain()[2]); |
157 } | 159 } |
158 | 160 |
159 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its | 161 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its |
160 // fields should match the protocol buffer's if it exists there, and | 162 // fields should match the protocol buffer's if it exists there, and |
161 // sbould be set to the default value otherwise. | 163 // sbould be set to the default value otherwise. |
162 TEST(SerializedNavigationEntryTest, FromSyncData) { | 164 TEST(SerializedNavigationEntryTest, FromSyncData) { |
163 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest(); | 165 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest(); |
164 | 166 |
165 const SerializedNavigationEntry& navigation = | 167 const SerializedNavigationEntry& navigation = |
166 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); | 168 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); |
167 | 169 |
168 EXPECT_EQ(kIndex, navigation.index()); | 170 EXPECT_EQ(kIndex, navigation.index()); |
169 EXPECT_EQ(kUniqueID, navigation.unique_id()); | 171 EXPECT_EQ(kUniqueID, navigation.unique_id()); |
170 EXPECT_EQ(kReferrer.url, navigation.referrer().url); | 172 EXPECT_EQ(kReferrerURL, navigation.referrer_url()); |
171 EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer().policy); | 173 EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer_policy()); |
172 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); | 174 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); |
173 EXPECT_EQ(kTitle, navigation.title()); | 175 EXPECT_EQ(kTitle, navigation.title()); |
174 EXPECT_EQ(kPageState, navigation.page_state()); | 176 EXPECT_EQ(kEncodedPageState, navigation.encoded_page_state()); |
175 EXPECT_EQ(kTransitionType, navigation.transition_type()); | 177 EXPECT_EQ(kTransitionType, navigation.transition_type()); |
176 EXPECT_FALSE(navigation.has_post_data()); | 178 EXPECT_FALSE(navigation.has_post_data()); |
177 EXPECT_EQ(-1, navigation.post_id()); | 179 EXPECT_EQ(-1, navigation.post_id()); |
178 EXPECT_EQ(GURL(), navigation.original_request_url()); | 180 EXPECT_EQ(GURL(), navigation.original_request_url()); |
179 EXPECT_FALSE(navigation.is_overriding_user_agent()); | 181 EXPECT_FALSE(navigation.is_overriding_user_agent()); |
180 EXPECT_TRUE(navigation.timestamp().is_null()); | 182 EXPECT_TRUE(navigation.timestamp().is_null()); |
181 EXPECT_EQ(kSearchTerms, navigation.search_terms()); | 183 EXPECT_EQ(kSearchTerms, navigation.search_terms()); |
182 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); | 184 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); |
183 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); | 185 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); |
184 // The redirect chain only syncs one way. | 186 // The redirect chain only syncs one way. |
(...skipping 10 matching lines...) Expand all Loading... |
195 Pickle pickle; | 197 Pickle pickle; |
196 old_navigation.WriteToPickle(30000, &pickle); | 198 old_navigation.WriteToPickle(30000, &pickle); |
197 | 199 |
198 SerializedNavigationEntry new_navigation; | 200 SerializedNavigationEntry new_navigation; |
199 PickleIterator pickle_iterator(pickle); | 201 PickleIterator pickle_iterator(pickle); |
200 EXPECT_TRUE(new_navigation.ReadFromPickle(&pickle_iterator)); | 202 EXPECT_TRUE(new_navigation.ReadFromPickle(&pickle_iterator)); |
201 | 203 |
202 EXPECT_EQ(kIndex, new_navigation.index()); | 204 EXPECT_EQ(kIndex, new_navigation.index()); |
203 | 205 |
204 EXPECT_EQ(0, new_navigation.unique_id()); | 206 EXPECT_EQ(0, new_navigation.unique_id()); |
205 EXPECT_EQ(kReferrer.url, new_navigation.referrer().url); | 207 EXPECT_EQ(kReferrerURL, new_navigation.referrer_url()); |
206 EXPECT_EQ(kReferrer.policy, new_navigation.referrer().policy); | 208 EXPECT_EQ(kReferrerPolicy, new_navigation.referrer_policy()); |
207 EXPECT_EQ(kVirtualURL, new_navigation.virtual_url()); | 209 EXPECT_EQ(kVirtualURL, new_navigation.virtual_url()); |
208 EXPECT_EQ(kTitle, new_navigation.title()); | 210 EXPECT_EQ(kTitle, new_navigation.title()); |
209 EXPECT_FALSE(new_navigation.page_state().IsValid()); | 211 EXPECT_EQ(std::string(), new_navigation.encoded_page_state()); |
210 EXPECT_EQ(kTransitionType, new_navigation.transition_type()); | 212 EXPECT_EQ(kTransitionType, new_navigation.transition_type()); |
211 EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); | 213 EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); |
212 EXPECT_EQ(-1, new_navigation.post_id()); | 214 EXPECT_EQ(-1, new_navigation.post_id()); |
213 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url()); | 215 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url()); |
214 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent()); | 216 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent()); |
215 EXPECT_EQ(kTimestamp, new_navigation.timestamp()); | 217 EXPECT_EQ(kTimestamp, new_navigation.timestamp()); |
216 EXPECT_EQ(kSearchTerms, new_navigation.search_terms()); | 218 EXPECT_EQ(kSearchTerms, new_navigation.search_terms()); |
217 EXPECT_EQ(kHttpStatusCode, new_navigation.http_status_code()); | 219 EXPECT_EQ(kHttpStatusCode, new_navigation.http_status_code()); |
218 EXPECT_EQ(0U, new_navigation.redirect_chain().size()); | 220 EXPECT_EQ(0U, new_navigation.redirect_chain().size()); |
219 } | 221 } |
220 | 222 |
221 // Create a NavigationEntry, then create another one by converting to | 223 // Create a NavigationEntry, then create another one by converting to |
222 // a SerializedNavigationEntry and back. The new one should match the old one | 224 // a SerializedNavigationEntry and back. The new one should match the old one |
223 // except for fields that aren't preserved, which should be set to | 225 // except for fields that aren't preserved, which should be set to |
224 // expected values. | 226 // expected values. |
225 TEST(SerializedNavigationEntryTest, ToNavigationEntry) { | 227 TEST(SerializedNavigationEntryTest, ToNavigationEntry) { |
226 const scoped_ptr<content::NavigationEntry> old_navigation_entry( | 228 const scoped_ptr<content::NavigationEntry> old_navigation_entry( |
227 MakeNavigationEntryForTest()); | 229 MakeNavigationEntryForTest()); |
228 | 230 |
229 const SerializedNavigationEntry& navigation = | 231 const SerializedNavigationEntry& navigation = |
230 SerializedNavigationEntry::FromNavigationEntry(kIndex, | 232 SerializedNavigationEntry::FromNavigationEntry(kIndex, |
231 *old_navigation_entry); | 233 *old_navigation_entry); |
232 | 234 |
233 const scoped_ptr<content::NavigationEntry> new_navigation_entry( | 235 const scoped_ptr<content::NavigationEntry> new_navigation_entry( |
234 navigation.ToNavigationEntry(kPageID, NULL)); | 236 navigation.ToNavigationEntry(kPageID, NULL)); |
235 | 237 |
236 EXPECT_EQ(kReferrer.url, new_navigation_entry->GetReferrer().url); | 238 EXPECT_EQ(kReferrerURL, new_navigation_entry->GetReferrer().url); |
237 EXPECT_EQ(kReferrer.policy, new_navigation_entry->GetReferrer().policy); | 239 EXPECT_EQ(kReferrerPolicy, new_navigation_entry->GetReferrer().policy); |
238 EXPECT_EQ(kVirtualURL, new_navigation_entry->GetVirtualURL()); | 240 EXPECT_EQ(kVirtualURL, new_navigation_entry->GetVirtualURL()); |
239 EXPECT_EQ(kTitle, new_navigation_entry->GetTitle()); | 241 EXPECT_EQ(kTitle, new_navigation_entry->GetTitle()); |
240 EXPECT_EQ(kPageState, new_navigation_entry->GetPageState()); | 242 EXPECT_EQ(kEncodedPageState, |
| 243 new_navigation_entry->GetPageState().ToEncodedData()); |
241 EXPECT_EQ(kPageID, new_navigation_entry->GetPageID()); | 244 EXPECT_EQ(kPageID, new_navigation_entry->GetPageID()); |
242 EXPECT_EQ(ui::PAGE_TRANSITION_RELOAD, | 245 EXPECT_EQ(ui::PAGE_TRANSITION_RELOAD, |
243 new_navigation_entry->GetTransitionType()); | 246 new_navigation_entry->GetTransitionType()); |
244 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData()); | 247 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData()); |
245 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID()); | 248 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID()); |
246 EXPECT_EQ(kOriginalRequestURL, | 249 EXPECT_EQ(kOriginalRequestURL, |
247 new_navigation_entry->GetOriginalRequestURL()); | 250 new_navigation_entry->GetOriginalRequestURL()); |
248 EXPECT_EQ(kIsOverridingUserAgent, | 251 EXPECT_EQ(kIsOverridingUserAgent, |
249 new_navigation_entry->GetIsOverridingUserAgent()); | 252 new_navigation_entry->GetIsOverridingUserAgent()); |
250 base::string16 search_terms; | 253 base::string16 search_terms; |
(...skipping 12 matching lines...) Expand all Loading... |
263 TEST(SerializedNavigationEntryTest, ToSyncData) { | 266 TEST(SerializedNavigationEntryTest, ToSyncData) { |
264 const scoped_ptr<content::NavigationEntry> navigation_entry( | 267 const scoped_ptr<content::NavigationEntry> navigation_entry( |
265 MakeNavigationEntryForTest()); | 268 MakeNavigationEntryForTest()); |
266 | 269 |
267 const SerializedNavigationEntry& navigation = | 270 const SerializedNavigationEntry& navigation = |
268 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); | 271 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); |
269 | 272 |
270 const sync_pb::TabNavigation sync_data = navigation.ToSyncData(); | 273 const sync_pb::TabNavigation sync_data = navigation.ToSyncData(); |
271 | 274 |
272 EXPECT_EQ(kVirtualURL.spec(), sync_data.virtual_url()); | 275 EXPECT_EQ(kVirtualURL.spec(), sync_data.virtual_url()); |
273 EXPECT_EQ(kReferrer.url.spec(), sync_data.referrer()); | 276 EXPECT_EQ(kReferrerURL.spec(), sync_data.referrer()); |
274 EXPECT_EQ(kTitle, base::ASCIIToUTF16(sync_data.title())); | 277 EXPECT_EQ(kTitle, base::ASCIIToUTF16(sync_data.title())); |
275 EXPECT_TRUE(sync_data.state().empty()); | 278 EXPECT_TRUE(sync_data.state().empty()); |
276 EXPECT_EQ(sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME, | 279 EXPECT_EQ(sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME, |
277 sync_data.page_transition()); | 280 sync_data.page_transition()); |
278 EXPECT_TRUE(sync_data.has_redirect_type()); | 281 EXPECT_TRUE(sync_data.has_redirect_type()); |
279 EXPECT_EQ(navigation_entry->GetUniqueID(), sync_data.unique_id()); | 282 EXPECT_EQ(navigation_entry->GetUniqueID(), sync_data.unique_id()); |
280 EXPECT_EQ(syncer::TimeToProtoTime(kTimestamp), sync_data.timestamp_msec()); | 283 EXPECT_EQ(syncer::TimeToProtoTime(kTimestamp), sync_data.timestamp_msec()); |
281 EXPECT_EQ(kTimestamp.ToInternalValue(), sync_data.global_id()); | 284 EXPECT_EQ(kTimestamp.ToInternalValue(), sync_data.global_id()); |
282 EXPECT_EQ(kFaviconURL.spec(), sync_data.favicon_url()); | 285 EXPECT_EQ(kFaviconURL.spec(), sync_data.favicon_url()); |
283 EXPECT_EQ(kHttpStatusCode, sync_data.http_status_code()); | 286 EXPECT_EQ(kHttpStatusCode, sync_data.http_status_code()); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 sync_data.set_referrer_policy(blink::WebReferrerPolicyNever); | 362 sync_data.set_referrer_policy(blink::WebReferrerPolicyNever); |
360 content::PageState page_state = | 363 content::PageState page_state = |
361 content::PageState::CreateFromURL(kVirtualURL); | 364 content::PageState::CreateFromURL(kVirtualURL); |
362 sync_data.set_state(page_state.ToEncodedData()); | 365 sync_data.set_state(page_state.ToEncodedData()); |
363 | 366 |
364 const SerializedNavigationEntry& navigation = | 367 const SerializedNavigationEntry& navigation = |
365 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); | 368 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); |
366 | 369 |
367 EXPECT_EQ(kIndex, navigation.index()); | 370 EXPECT_EQ(kIndex, navigation.index()); |
368 EXPECT_EQ(kUniqueID, navigation.unique_id()); | 371 EXPECT_EQ(kUniqueID, navigation.unique_id()); |
369 EXPECT_EQ(GURL(), navigation.referrer().url); | 372 EXPECT_EQ(GURL(), navigation.referrer_url()); |
370 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); | 373 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy()); |
371 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); | 374 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); |
372 EXPECT_EQ(kTitle, navigation.title()); | 375 EXPECT_EQ(kTitle, navigation.title()); |
373 EXPECT_EQ(page_state, navigation.page_state()); | 376 EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state()); |
374 EXPECT_EQ(kTransitionType, navigation.transition_type()); | 377 EXPECT_EQ(kTransitionType, navigation.transition_type()); |
375 EXPECT_FALSE(navigation.has_post_data()); | 378 EXPECT_FALSE(navigation.has_post_data()); |
376 EXPECT_EQ(-1, navigation.post_id()); | 379 EXPECT_EQ(-1, navigation.post_id()); |
377 EXPECT_EQ(GURL(), navigation.original_request_url()); | 380 EXPECT_EQ(GURL(), navigation.original_request_url()); |
378 EXPECT_FALSE(navigation.is_overriding_user_agent()); | 381 EXPECT_FALSE(navigation.is_overriding_user_agent()); |
379 EXPECT_TRUE(navigation.timestamp().is_null()); | 382 EXPECT_TRUE(navigation.timestamp().is_null()); |
380 EXPECT_EQ(kSearchTerms, navigation.search_terms()); | 383 EXPECT_EQ(kSearchTerms, navigation.search_terms()); |
381 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); | 384 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); |
382 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); | 385 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); |
383 | 386 |
384 content::PageState empty_state; | 387 content::PageState empty_state; |
385 EXPECT_TRUE(empty_state.Equals(empty_state.RemoveReferrer())); | 388 EXPECT_TRUE(empty_state.Equals(empty_state.RemoveReferrer())); |
386 } | 389 } |
387 | 390 |
388 } // namespace | 391 } // namespace |
389 } // namespace sessions | 392 } // namespace sessions |
OLD | NEW |