| 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" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 content::PAGE_TRANSITION_HOME_PAGE | | 42 content::PAGE_TRANSITION_HOME_PAGE | |
| 43 content::PAGE_TRANSITION_CLIENT_REDIRECT); | 43 content::PAGE_TRANSITION_CLIENT_REDIRECT); |
| 44 const bool kHasPostData = true; | 44 const bool kHasPostData = true; |
| 45 const int64 kPostID = 100; | 45 const int64 kPostID = 100; |
| 46 const GURL kOriginalRequestURL("http://www.original-request.com"); | 46 const GURL kOriginalRequestURL("http://www.original-request.com"); |
| 47 const bool kIsOverridingUserAgent = true; | 47 const bool kIsOverridingUserAgent = true; |
| 48 const base::Time kTimestamp = syncer::ProtoTimeToTime(100); | 48 const base::Time kTimestamp = syncer::ProtoTimeToTime(100); |
| 49 const base::string16 kSearchTerms = base::ASCIIToUTF16("my search terms"); | 49 const base::string16 kSearchTerms = base::ASCIIToUTF16("my search terms"); |
| 50 const GURL kFaviconURL("http://virtual-url.com/favicon.ico"); | 50 const GURL kFaviconURL("http://virtual-url.com/favicon.ico"); |
| 51 const int kHttpStatusCode = 404; | 51 const int kHttpStatusCode = 404; |
| 52 const GURL kRedirectURL0("http://go/redirect0"); |
| 53 const GURL kRedirectURL1("http://go/redirect1"); |
| 52 | 54 |
| 53 const int kPageID = 10; | 55 const int kPageID = 10; |
| 54 | 56 |
| 55 // Create a NavigationEntry from the constants above. | 57 // Create a NavigationEntry from the constants above. |
| 56 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { | 58 scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { |
| 57 scoped_ptr<content::NavigationEntry> navigation_entry( | 59 scoped_ptr<content::NavigationEntry> navigation_entry( |
| 58 content::NavigationEntry::Create()); | 60 content::NavigationEntry::Create()); |
| 59 navigation_entry->SetReferrer(kReferrer); | 61 navigation_entry->SetReferrer(kReferrer); |
| 60 navigation_entry->SetVirtualURL(kVirtualURL); | 62 navigation_entry->SetVirtualURL(kVirtualURL); |
| 61 navigation_entry->SetTitle(kTitle); | 63 navigation_entry->SetTitle(kTitle); |
| 62 navigation_entry->SetPageState(kPageState); | 64 navigation_entry->SetPageState(kPageState); |
| 63 navigation_entry->SetTransitionType(kTransitionType); | 65 navigation_entry->SetTransitionType(kTransitionType); |
| 64 navigation_entry->SetHasPostData(kHasPostData); | 66 navigation_entry->SetHasPostData(kHasPostData); |
| 65 navigation_entry->SetPostID(kPostID); | 67 navigation_entry->SetPostID(kPostID); |
| 66 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL); | 68 navigation_entry->SetOriginalRequestURL(kOriginalRequestURL); |
| 67 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent); | 69 navigation_entry->SetIsOverridingUserAgent(kIsOverridingUserAgent); |
| 68 navigation_entry->SetTimestamp(kTimestamp); | 70 navigation_entry->SetTimestamp(kTimestamp); |
| 69 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms); | 71 navigation_entry->SetExtraData(kSearchTermsKey, kSearchTerms); |
| 70 navigation_entry->GetFavicon().valid = true; | 72 navigation_entry->GetFavicon().valid = true; |
| 71 navigation_entry->GetFavicon().url = kFaviconURL; | 73 navigation_entry->GetFavicon().url = kFaviconURL; |
| 72 navigation_entry->SetHttpStatusCode(kHttpStatusCode); | 74 navigation_entry->SetHttpStatusCode(kHttpStatusCode); |
| 75 std::vector<GURL> redirect_chain; |
| 76 redirect_chain.push_back(kRedirectURL0); |
| 77 redirect_chain.push_back(kRedirectURL1); |
| 78 redirect_chain.push_back(kVirtualURL); |
| 79 navigation_entry->SetRedirectChain(redirect_chain); |
| 73 return navigation_entry.Pass(); | 80 return navigation_entry.Pass(); |
| 74 } | 81 } |
| 75 | 82 |
| 76 // Create a sync_pb::TabNavigation from the constants above. | 83 // Create a sync_pb::TabNavigation from the constants above. |
| 77 sync_pb::TabNavigation MakeSyncDataForTest() { | 84 sync_pb::TabNavigation MakeSyncDataForTest() { |
| 78 sync_pb::TabNavigation sync_data; | 85 sync_pb::TabNavigation sync_data; |
| 79 sync_data.set_virtual_url(kVirtualURL.spec()); | 86 sync_data.set_virtual_url(kVirtualURL.spec()); |
| 80 sync_data.set_referrer(kReferrer.url.spec()); | 87 sync_data.set_referrer(kReferrer.url.spec()); |
| 81 sync_data.set_referrer_policy(blink::WebReferrerPolicyOrigin); | 88 sync_data.set_referrer_policy(blink::WebReferrerPolicyOrigin); |
| 82 sync_data.set_title(base::UTF16ToUTF8(kTitle)); | 89 sync_data.set_title(base::UTF16ToUTF8(kTitle)); |
| 83 sync_data.set_state(kPageState.ToEncodedData()); | 90 sync_data.set_state(kPageState.ToEncodedData()); |
| 84 sync_data.set_page_transition( | 91 sync_data.set_page_transition( |
| 85 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); | 92 sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); |
| 86 sync_data.set_unique_id(kUniqueID); | 93 sync_data.set_unique_id(kUniqueID); |
| 87 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp)); | 94 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(kTimestamp)); |
| 88 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT); | 95 sync_data.set_redirect_type(sync_pb::SyncEnums::CLIENT_REDIRECT); |
| 89 sync_data.set_navigation_home_page(true); | 96 sync_data.set_navigation_home_page(true); |
| 90 sync_data.set_search_terms(base::UTF16ToUTF8(kSearchTerms)); | 97 sync_data.set_search_terms(base::UTF16ToUTF8(kSearchTerms)); |
| 91 sync_data.set_favicon_url(kFaviconURL.spec()); | 98 sync_data.set_favicon_url(kFaviconURL.spec()); |
| 92 sync_data.set_http_status_code(kHttpStatusCode); | 99 sync_data.set_http_status_code(kHttpStatusCode); |
| 100 // The redirect chain only syncs one way. |
| 93 return sync_data; | 101 return sync_data; |
| 94 } | 102 } |
| 95 | 103 |
| 96 // Create a default SerializedNavigationEntry. All its fields should be | 104 // Create a default SerializedNavigationEntry. All its fields should be |
| 97 // initialized to their respective default values. | 105 // initialized to their respective default values. |
| 98 TEST(SerializedNavigationEntryTest, DefaultInitializer) { | 106 TEST(SerializedNavigationEntryTest, DefaultInitializer) { |
| 99 const SerializedNavigationEntry navigation; | 107 const SerializedNavigationEntry navigation; |
| 100 EXPECT_EQ(-1, navigation.index()); | 108 EXPECT_EQ(-1, navigation.index()); |
| 101 EXPECT_EQ(0, navigation.unique_id()); | 109 EXPECT_EQ(0, navigation.unique_id()); |
| 102 EXPECT_EQ(GURL(), navigation.referrer().url); | 110 EXPECT_EQ(GURL(), navigation.referrer().url); |
| 103 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); | 111 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); |
| 104 EXPECT_EQ(GURL(), navigation.virtual_url()); | 112 EXPECT_EQ(GURL(), navigation.virtual_url()); |
| 105 EXPECT_TRUE(navigation.title().empty()); | 113 EXPECT_TRUE(navigation.title().empty()); |
| 106 EXPECT_FALSE(navigation.page_state().IsValid()); | 114 EXPECT_FALSE(navigation.page_state().IsValid()); |
| 107 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, navigation.transition_type()); | 115 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, navigation.transition_type()); |
| 108 EXPECT_FALSE(navigation.has_post_data()); | 116 EXPECT_FALSE(navigation.has_post_data()); |
| 109 EXPECT_EQ(-1, navigation.post_id()); | 117 EXPECT_EQ(-1, navigation.post_id()); |
| 110 EXPECT_EQ(GURL(), navigation.original_request_url()); | 118 EXPECT_EQ(GURL(), navigation.original_request_url()); |
| 111 EXPECT_FALSE(navigation.is_overriding_user_agent()); | 119 EXPECT_FALSE(navigation.is_overriding_user_agent()); |
| 112 EXPECT_TRUE(navigation.timestamp().is_null()); | 120 EXPECT_TRUE(navigation.timestamp().is_null()); |
| 113 EXPECT_TRUE(navigation.search_terms().empty()); | 121 EXPECT_TRUE(navigation.search_terms().empty()); |
| 114 EXPECT_FALSE(navigation.favicon_url().is_valid()); | 122 EXPECT_FALSE(navigation.favicon_url().is_valid()); |
| 115 EXPECT_EQ(0, navigation.http_status_code()); | 123 EXPECT_EQ(0, navigation.http_status_code()); |
| 124 EXPECT_EQ(0U, navigation.redirect_chain().size()); |
| 116 } | 125 } |
| 117 | 126 |
| 118 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields | 127 // Create a SerializedNavigationEntry from a NavigationEntry. All its fields |
| 119 // should match the NavigationEntry's. | 128 // should match the NavigationEntry's. |
| 120 TEST(SerializedNavigationEntryTest, FromNavigationEntry) { | 129 TEST(SerializedNavigationEntryTest, FromNavigationEntry) { |
| 121 const scoped_ptr<content::NavigationEntry> navigation_entry( | 130 const scoped_ptr<content::NavigationEntry> navigation_entry( |
| 122 MakeNavigationEntryForTest()); | 131 MakeNavigationEntryForTest()); |
| 123 | 132 |
| 124 const SerializedNavigationEntry& navigation = | 133 const SerializedNavigationEntry& navigation = |
| 125 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); | 134 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); |
| 126 | 135 |
| 127 EXPECT_EQ(kIndex, navigation.index()); | 136 EXPECT_EQ(kIndex, navigation.index()); |
| 128 | 137 |
| 129 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); | 138 EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); |
| 130 EXPECT_EQ(kReferrer.url, navigation.referrer().url); | 139 EXPECT_EQ(kReferrer.url, navigation.referrer().url); |
| 131 EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); | 140 EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); |
| 132 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); | 141 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); |
| 133 EXPECT_EQ(kTitle, navigation.title()); | 142 EXPECT_EQ(kTitle, navigation.title()); |
| 134 EXPECT_EQ(kPageState, navigation.page_state()); | 143 EXPECT_EQ(kPageState, navigation.page_state()); |
| 135 EXPECT_EQ(kTransitionType, navigation.transition_type()); | 144 EXPECT_EQ(kTransitionType, navigation.transition_type()); |
| 136 EXPECT_EQ(kHasPostData, navigation.has_post_data()); | 145 EXPECT_EQ(kHasPostData, navigation.has_post_data()); |
| 137 EXPECT_EQ(kPostID, navigation.post_id()); | 146 EXPECT_EQ(kPostID, navigation.post_id()); |
| 138 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url()); | 147 EXPECT_EQ(kOriginalRequestURL, navigation.original_request_url()); |
| 139 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent()); | 148 EXPECT_EQ(kIsOverridingUserAgent, navigation.is_overriding_user_agent()); |
| 140 EXPECT_EQ(kTimestamp, navigation.timestamp()); | 149 EXPECT_EQ(kTimestamp, navigation.timestamp()); |
| 141 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); | 150 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); |
| 142 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); | 151 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); |
| 152 EXPECT_EQ(3U, navigation.redirect_chain().size()); |
| 153 EXPECT_EQ(kRedirectURL0, navigation.redirect_chain().at(0)); |
| 154 EXPECT_EQ(kRedirectURL1, navigation.redirect_chain().at(1)); |
| 155 EXPECT_EQ(kVirtualURL, navigation.redirect_chain().at(2)); |
| 143 } | 156 } |
| 144 | 157 |
| 145 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its | 158 // Create a SerializedNavigationEntry from a sync_pb::TabNavigation. All its |
| 146 // fields should match the protocol buffer's if it exists there, and | 159 // fields should match the protocol buffer's if it exists there, and |
| 147 // sbould be set to the default value otherwise. | 160 // sbould be set to the default value otherwise. |
| 148 TEST(SerializedNavigationEntryTest, FromSyncData) { | 161 TEST(SerializedNavigationEntryTest, FromSyncData) { |
| 149 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest(); | 162 const sync_pb::TabNavigation sync_data = MakeSyncDataForTest(); |
| 150 | 163 |
| 151 const SerializedNavigationEntry& navigation = | 164 const SerializedNavigationEntry& navigation = |
| 152 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); | 165 SerializedNavigationEntry::FromSyncData(kIndex, sync_data); |
| 153 | 166 |
| 154 EXPECT_EQ(kIndex, navigation.index()); | 167 EXPECT_EQ(kIndex, navigation.index()); |
| 155 EXPECT_EQ(kUniqueID, navigation.unique_id()); | 168 EXPECT_EQ(kUniqueID, navigation.unique_id()); |
| 156 EXPECT_EQ(kReferrer.url, navigation.referrer().url); | 169 EXPECT_EQ(kReferrer.url, navigation.referrer().url); |
| 157 EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer().policy); | 170 EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer().policy); |
| 158 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); | 171 EXPECT_EQ(kVirtualURL, navigation.virtual_url()); |
| 159 EXPECT_EQ(kTitle, navigation.title()); | 172 EXPECT_EQ(kTitle, navigation.title()); |
| 160 EXPECT_EQ(kPageState, navigation.page_state()); | 173 EXPECT_EQ(kPageState, navigation.page_state()); |
| 161 EXPECT_EQ(kTransitionType, navigation.transition_type()); | 174 EXPECT_EQ(kTransitionType, navigation.transition_type()); |
| 162 EXPECT_FALSE(navigation.has_post_data()); | 175 EXPECT_FALSE(navigation.has_post_data()); |
| 163 EXPECT_EQ(-1, navigation.post_id()); | 176 EXPECT_EQ(-1, navigation.post_id()); |
| 164 EXPECT_EQ(GURL(), navigation.original_request_url()); | 177 EXPECT_EQ(GURL(), navigation.original_request_url()); |
| 165 EXPECT_FALSE(navigation.is_overriding_user_agent()); | 178 EXPECT_FALSE(navigation.is_overriding_user_agent()); |
| 166 EXPECT_TRUE(navigation.timestamp().is_null()); | 179 EXPECT_TRUE(navigation.timestamp().is_null()); |
| 167 EXPECT_EQ(kSearchTerms, navigation.search_terms()); | 180 EXPECT_EQ(kSearchTerms, navigation.search_terms()); |
| 168 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); | 181 EXPECT_EQ(kFaviconURL, navigation.favicon_url()); |
| 169 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); | 182 EXPECT_EQ(kHttpStatusCode, navigation.http_status_code()); |
| 183 // The redirect chain only syncs one way. |
| 170 } | 184 } |
| 171 | 185 |
| 172 // Create a SerializedNavigationEntry, pickle it, then create another one by | 186 // Create a SerializedNavigationEntry, pickle it, then create another one by |
| 173 // unpickling. The new one should match the old one except for fields | 187 // unpickling. The new one should match the old one except for fields |
| 174 // that aren't pickled, which should be set to default values. | 188 // that aren't pickled, which should be set to default values. |
| 175 TEST(SerializedNavigationEntryTest, Pickle) { | 189 TEST(SerializedNavigationEntryTest, Pickle) { |
| 176 const SerializedNavigationEntry& old_navigation = | 190 const SerializedNavigationEntry& old_navigation = |
| 177 SerializedNavigationEntry::FromNavigationEntry( | 191 SerializedNavigationEntry::FromNavigationEntry( |
| 178 kIndex, *MakeNavigationEntryForTest()); | 192 kIndex, *MakeNavigationEntryForTest()); |
| 179 | 193 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 193 EXPECT_EQ(kTitle, new_navigation.title()); | 207 EXPECT_EQ(kTitle, new_navigation.title()); |
| 194 EXPECT_FALSE(new_navigation.page_state().IsValid()); | 208 EXPECT_FALSE(new_navigation.page_state().IsValid()); |
| 195 EXPECT_EQ(kTransitionType, new_navigation.transition_type()); | 209 EXPECT_EQ(kTransitionType, new_navigation.transition_type()); |
| 196 EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); | 210 EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); |
| 197 EXPECT_EQ(-1, new_navigation.post_id()); | 211 EXPECT_EQ(-1, new_navigation.post_id()); |
| 198 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url()); | 212 EXPECT_EQ(kOriginalRequestURL, new_navigation.original_request_url()); |
| 199 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent()); | 213 EXPECT_EQ(kIsOverridingUserAgent, new_navigation.is_overriding_user_agent()); |
| 200 EXPECT_EQ(kTimestamp, new_navigation.timestamp()); | 214 EXPECT_EQ(kTimestamp, new_navigation.timestamp()); |
| 201 EXPECT_EQ(kSearchTerms, new_navigation.search_terms()); | 215 EXPECT_EQ(kSearchTerms, new_navigation.search_terms()); |
| 202 EXPECT_EQ(kHttpStatusCode, new_navigation.http_status_code()); | 216 EXPECT_EQ(kHttpStatusCode, new_navigation.http_status_code()); |
| 217 EXPECT_EQ(3U, new_navigation.redirect_chain().size()); |
| 218 EXPECT_EQ(kRedirectURL0, new_navigation.redirect_chain().at(0)); |
| 219 EXPECT_EQ(kRedirectURL1, new_navigation.redirect_chain().at(1)); |
| 220 EXPECT_EQ(kVirtualURL, new_navigation.redirect_chain().at(2)); |
| 221 |
| 203 } | 222 } |
| 204 | 223 |
| 205 // Create a NavigationEntry, then create another one by converting to | 224 // Create a NavigationEntry, then create another one by converting to |
| 206 // a SerializedNavigationEntry and back. The new one should match the old one | 225 // a SerializedNavigationEntry and back. The new one should match the old one |
| 207 // except for fields that aren't preserved, which should be set to | 226 // except for fields that aren't preserved, which should be set to |
| 208 // expected values. | 227 // expected values. |
| 209 TEST(SerializedNavigationEntryTest, ToNavigationEntry) { | 228 TEST(SerializedNavigationEntryTest, ToNavigationEntry) { |
| 210 const scoped_ptr<content::NavigationEntry> old_navigation_entry( | 229 const scoped_ptr<content::NavigationEntry> old_navigation_entry( |
| 211 MakeNavigationEntryForTest()); | 230 MakeNavigationEntryForTest()); |
| 212 | 231 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 228 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData()); | 247 EXPECT_EQ(kHasPostData, new_navigation_entry->GetHasPostData()); |
| 229 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID()); | 248 EXPECT_EQ(kPostID, new_navigation_entry->GetPostID()); |
| 230 EXPECT_EQ(kOriginalRequestURL, | 249 EXPECT_EQ(kOriginalRequestURL, |
| 231 new_navigation_entry->GetOriginalRequestURL()); | 250 new_navigation_entry->GetOriginalRequestURL()); |
| 232 EXPECT_EQ(kIsOverridingUserAgent, | 251 EXPECT_EQ(kIsOverridingUserAgent, |
| 233 new_navigation_entry->GetIsOverridingUserAgent()); | 252 new_navigation_entry->GetIsOverridingUserAgent()); |
| 234 base::string16 search_terms; | 253 base::string16 search_terms; |
| 235 new_navigation_entry->GetExtraData(kSearchTermsKey, &search_terms); | 254 new_navigation_entry->GetExtraData(kSearchTermsKey, &search_terms); |
| 236 EXPECT_EQ(kSearchTerms, search_terms); | 255 EXPECT_EQ(kSearchTerms, search_terms); |
| 237 EXPECT_EQ(kHttpStatusCode, new_navigation_entry->GetHttpStatusCode()); | 256 EXPECT_EQ(kHttpStatusCode, new_navigation_entry->GetHttpStatusCode()); |
| 257 EXPECT_EQ(3U, new_navigation_entry->GetRedirectChain().size()); |
| 258 EXPECT_EQ(kRedirectURL0, new_navigation_entry->GetRedirectChain().at(0)); |
| 259 EXPECT_EQ(kRedirectURL1, new_navigation_entry->GetRedirectChain().at(1)); |
| 260 EXPECT_EQ(kVirtualURL, new_navigation_entry->GetRedirectChain().at(2)); |
| 261 |
| 238 } | 262 } |
| 239 | 263 |
| 240 // Create a NavigationEntry, convert it to a SerializedNavigationEntry, then | 264 // Create a NavigationEntry, convert it to a SerializedNavigationEntry, then |
| 241 // create a sync protocol buffer from it. The protocol buffer should | 265 // create a sync protocol buffer from it. The protocol buffer should |
| 242 // have matching fields to the NavigationEntry (when applicable). | 266 // have matching fields to the NavigationEntry (when applicable). |
| 243 TEST(SerializedNavigationEntryTest, ToSyncData) { | 267 TEST(SerializedNavigationEntryTest, ToSyncData) { |
| 244 const scoped_ptr<content::NavigationEntry> navigation_entry( | 268 const scoped_ptr<content::NavigationEntry> navigation_entry( |
| 245 MakeNavigationEntryForTest()); | 269 MakeNavigationEntryForTest()); |
| 246 | 270 |
| 247 const SerializedNavigationEntry& navigation = | 271 const SerializedNavigationEntry& navigation = |
| 248 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); | 272 SerializedNavigationEntry::FromNavigationEntry(kIndex, *navigation_entry); |
| 249 | 273 |
| 250 const sync_pb::TabNavigation sync_data = navigation.ToSyncData(); | 274 const sync_pb::TabNavigation sync_data = navigation.ToSyncData(); |
| 251 | 275 |
| 252 EXPECT_EQ(kVirtualURL.spec(), sync_data.virtual_url()); | 276 EXPECT_EQ(kVirtualURL.spec(), sync_data.virtual_url()); |
| 253 EXPECT_EQ(kReferrer.url.spec(), sync_data.referrer()); | 277 EXPECT_EQ(kReferrer.url.spec(), sync_data.referrer()); |
| 254 EXPECT_EQ(kTitle, base::ASCIIToUTF16(sync_data.title())); | 278 EXPECT_EQ(kTitle, base::ASCIIToUTF16(sync_data.title())); |
| 255 EXPECT_TRUE(sync_data.state().empty()); | 279 EXPECT_TRUE(sync_data.state().empty()); |
| 256 EXPECT_EQ(sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME, | 280 EXPECT_EQ(sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME, |
| 257 sync_data.page_transition()); | 281 sync_data.page_transition()); |
| 258 EXPECT_TRUE(sync_data.has_redirect_type()); | 282 EXPECT_TRUE(sync_data.has_redirect_type()); |
| 259 EXPECT_EQ(navigation_entry->GetUniqueID(), sync_data.unique_id()); | 283 EXPECT_EQ(navigation_entry->GetUniqueID(), sync_data.unique_id()); |
| 260 EXPECT_EQ(syncer::TimeToProtoTime(kTimestamp), sync_data.timestamp_msec()); | 284 EXPECT_EQ(syncer::TimeToProtoTime(kTimestamp), sync_data.timestamp_msec()); |
| 261 EXPECT_EQ(kTimestamp.ToInternalValue(), sync_data.global_id()); | 285 EXPECT_EQ(kTimestamp.ToInternalValue(), sync_data.global_id()); |
| 262 EXPECT_EQ(kFaviconURL.spec(), sync_data.favicon_url()); | 286 EXPECT_EQ(kFaviconURL.spec(), sync_data.favicon_url()); |
| 263 EXPECT_EQ(kHttpStatusCode, sync_data.http_status_code()); | 287 EXPECT_EQ(kHttpStatusCode, sync_data.http_status_code()); |
| 288 // The proto navigation redirects don't include the final chain entry |
| 289 // (because it didn't redirect) so the lengths should differ by 1. |
| 290 EXPECT_EQ(3, sync_data.navigation_redirect_size() + 1); |
| 291 EXPECT_EQ(navigation_entry->GetRedirectChain().at(0).spec(), |
| 292 sync_data.navigation_redirect(0).url()); |
| 293 EXPECT_EQ(navigation_entry->GetRedirectChain().at(1).spec(), |
| 294 sync_data.navigation_redirect(1).url()); |
| 264 } | 295 } |
| 265 | 296 |
| 266 // Ensure all transition types and qualifiers are converted to/from the sync | 297 // Ensure all transition types and qualifiers are converted to/from the sync |
| 267 // SerializedNavigationEntry representation properly. | 298 // SerializedNavigationEntry representation properly. |
| 268 TEST(SerializedNavigationEntryTest, TransitionTypes) { | 299 TEST(SerializedNavigationEntryTest, TransitionTypes) { |
| 269 scoped_ptr<content::NavigationEntry> navigation_entry( | 300 scoped_ptr<content::NavigationEntry> navigation_entry( |
| 270 MakeNavigationEntryForTest()); | 301 MakeNavigationEntryForTest()); |
| 271 for (uint32 core_type = content::PAGE_TRANSITION_LINK; | 302 for (uint32 core_type = content::PAGE_TRANSITION_LINK; |
| 272 core_type != content::PAGE_TRANSITION_LAST_CORE; ++core_type) { | 303 core_type != content::PAGE_TRANSITION_LAST_CORE; ++core_type) { |
| 273 // Because qualifier is a uint32, left shifting will eventually overflow | 304 // Because qualifier is a uint32, left shifting will eventually overflow |
| (...skipping 17 matching lines...) Expand all Loading... |
| 291 const content::PageTransition constructed_transition = | 322 const content::PageTransition constructed_transition = |
| 292 constructed_nav.transition_type(); | 323 constructed_nav.transition_type(); |
| 293 | 324 |
| 294 EXPECT_EQ(transition, constructed_transition); | 325 EXPECT_EQ(transition, constructed_transition); |
| 295 } | 326 } |
| 296 } | 327 } |
| 297 } | 328 } |
| 298 | 329 |
| 299 } // namespace | 330 } // namespace |
| 300 } // namespace sessions | 331 } // namespace sessions |
| OLD | NEW |