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

Side by Side Diff: ios/web/navigation/crw_session_entry_unittest.mm

Issue 1132563002: CRWSessionEntry: Replaced hardcoded strings with constants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #import <Foundation/Foundation.h> 5 #import <Foundation/Foundation.h>
6 6
7 #include "base/mac/scoped_nsobject.h" 7 #include "base/mac/scoped_nsobject.h"
8 #include "base/strings/sys_string_conversions.h" 8 #include "base/strings/sys_string_conversions.h"
9 #import "ios/testing/ocmock_complex_type_helper.h" 9 #import "ios/testing/ocmock_complex_type_helper.h"
10 #import "ios/web/navigation/crw_session_entry.h" 10 #import "ios/web/navigation/crw_session_entry.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 *length = 0; 116 *length = 0;
117 return NULL; 117 return NULL;
118 }; 118 };
119 119
120 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:NO]] 120 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:NO]]
121 containsValueForKey:[OCMArg any]]; 121 containsValueForKey:[OCMArg any]];
122 122
123 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) 123 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:)
124 callBlockExpectation:block]; 124 callBlockExpectation:block];
125 [[[decoder expect] andReturn:virtualUrl] 125 [[[decoder expect] andReturn:virtualUrl]
126 decodeObjectForKey:@"virtualUrl"]; 126 decodeObjectForKey:web::kURLDeperecatedKey];
127 [[[decoder expect] andReturn:referrer] 127 [[[decoder expect] andReturn:referrer]
128 decodeObjectForKey:@"referrer"]; 128 decodeObjectForKey:web::kReferrerURLDeprecatedKey];
129 [[[decoder expect] andReturn:title] 129 [[[decoder expect] andReturn:title] decodeObjectForKey:web::kTitleKey];
130 decodeObjectForKey:@"title"];
131 const web::PageScrollState& scrollState = 130 const web::PageScrollState& scrollState =
132 [sessionEntry_ navigationItem]->GetPageScrollState(); 131 [sessionEntry_ navigationItem]->GetPageScrollState();
133 NSDictionary* serializedScrollState = 132 NSDictionary* serializedScrollState =
134 [CRWSessionEntry dictionaryFromScrollState:scrollState]; 133 [CRWSessionEntry dictionaryFromScrollState:scrollState];
135 [[[decoder expect] andReturn:serializedScrollState] 134 [[[decoder expect] andReturn:serializedScrollState]
136 decodeObjectForKey:@"state"]; 135 decodeObjectForKey:web::kPageScrollStateKey];
137 BOOL useDesktopUserAgent = 136 BOOL useDesktopUserAgent =
138 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); 137 [sessionEntry_ navigationItem]->IsOverridingUserAgent();
139 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] 138 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)]
140 decodeBoolForKey:@"useDesktopUserAgent"]; 139 decodeBoolForKey:web::kUseDesktopUserAgentKey];
141 NSDictionary* requestHeaders = 140 NSDictionary* requestHeaders =
142 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); 141 [sessionEntry_ navigationItem]->GetHttpRequestHeaders();
143 [[[decoder expect] andReturn:requestHeaders] 142 [[[decoder expect] andReturn:requestHeaders]
144 decodeObjectForKey:@"httpHeaders"]; 143 decodeObjectForKey:web::kHTTPRequestHeadersKey];
145 [[[decoder expect] 144 [[[decoder expect]
146 andReturn:[sessionEntry_ navigationItemImpl]->GetPostData()] 145 andReturn:[sessionEntry_ navigationItemImpl]->GetPostData()]
147 decodeObjectForKey:@"POSTData"]; 146 decodeObjectForKey:web::kPOSTDataKey];
148 BOOL skipResubmitDataConfirmation = 147 BOOL skipResubmitDataConfirmation =
149 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); 148 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation();
150 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] 149 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)]
151 decodeBoolForKey:@"skipResubmitDataConfirmation"]; 150 decodeBoolForKey:web::kSkipResubmitConfirmationKey];
152 151
153 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( 152 base::scoped_nsobject<CRWSessionEntry> newSessionEntry(
154 [[CRWSessionEntry alloc] initWithCoder:decoder]); 153 [[CRWSessionEntry alloc] initWithCoder:decoder]);
155 web::NavigationItem* newItem = [newSessionEntry navigationItem]; 154 web::NavigationItem* newItem = [newSessionEntry navigationItem];
156 155
157 EXPECT_OCMOCK_VERIFY(decoder); 156 EXPECT_OCMOCK_VERIFY(decoder);
158 expectEqualSessionEntries(sessionEntry_, newSessionEntry, 157 expectEqualSessionEntries(sessionEntry_, newSessionEntry,
159 ui::PAGE_TRANSITION_RELOAD); 158 ui::PAGE_TRANSITION_RELOAD);
160 EXPECT_NE(item->GetURL(), newItem->GetURL()); 159 EXPECT_NE(item->GetURL(), newItem->GetURL());
161 EXPECT_EQ(item->GetVirtualURL(), newItem->GetURL()); 160 EXPECT_EQ(item->GetVirtualURL(), newItem->GetURL());
162 } 161 }
163 162
164 TEST_F(CRWSessionEntryTest, InitWithCoderNewStyle) { 163 TEST_F(CRWSessionEntryTest, InitWithCoderNewStyle) {
165 web::NavigationItem* item = [sessionEntry_ navigationItem]; 164 web::NavigationItem* item = [sessionEntry_ navigationItem];
166 item->SetVirtualURL(GURL("http://user.friendly")); 165 item->SetVirtualURL(GURL("http://user.friendly"));
167 item->SetTitle(base::SysNSStringToUTF16(@"Title")); 166 item->SetTitle(base::SysNSStringToUTF16(@"Title"));
168 int64 timestamp = item->GetTimestamp().ToInternalValue(); 167 int64 timestamp = item->GetTimestamp().ToInternalValue();
169 168
170 std::string virtualUrl = item->GetVirtualURL().spec(); 169 std::string virtualUrl = item->GetVirtualURL().spec();
171 std::string referrerUrl = item->GetReferrer().url.spec(); 170 std::string referrerUrl = item->GetReferrer().url.spec();
172 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); 171 NSString* title = base::SysUTF16ToNSString(item->GetTitle());
173 base::scoped_nsobject<id> decoder([[OCMockComplexTypeHelper alloc] 172 base::scoped_nsobject<id> decoder([[OCMockComplexTypeHelper alloc]
174 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); 173 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]);
175 174
176 const std::string emptyString; 175 const std::string emptyString;
177 decodeBytesForKeyBlock block = ^ const uint8_t* (NSString* key, 176 decodeBytesForKeyBlock block = ^ const uint8_t* (NSString* key,
178 NSUInteger* length) { 177 NSUInteger* length) {
179 const std::string *value = &emptyString; 178 const std::string *value = &emptyString;
180 if ([key isEqualToString:@"virtualUrlString"]) 179 if ([key isEqualToString:web::kURLKey])
181 value = &virtualUrl; 180 value = &virtualUrl;
182 else if ([key isEqualToString:@"referrerUrlString"]) 181 else if ([key isEqualToString:web::kReferrerURLKey])
183 value = &referrerUrl; 182 value = &referrerUrl;
184 else 183 else
185 EXPECT_TRUE(false); 184 EXPECT_TRUE(false);
186 185
187 *length = value->size(); 186 *length = value->size();
188 return reinterpret_cast<const uint8_t*>(value->data()); 187 return reinterpret_cast<const uint8_t*>(value->data());
189 }; 188 };
190 189
191 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:) 190 [decoder onSelector:@selector(decodeBytesForKey:returnedLength:)
192 callBlockExpectation:block]; 191 callBlockExpectation:block];
193 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:YES]] 192 [[[decoder stub] andReturnValue:[NSNumber numberWithBool:YES]]
194 containsValueForKey:[OCMArg any]]; 193 containsValueForKey:[OCMArg any]];
195 web::ReferrerPolicy expectedPolicy = item->GetReferrer().policy; 194 web::ReferrerPolicy expectedPolicy = item->GetReferrer().policy;
196 [[[decoder expect] 195 [[[decoder expect] andReturnValue:OCMOCK_VALUE(expectedPolicy)]
197 andReturnValue:OCMOCK_VALUE(expectedPolicy)] 196 decodeIntForKey:web::kReferrerPolicyKey];
198 decodeIntForKey:@"referrerPolicy"];
199 [[[decoder expect] andReturnValue:OCMOCK_VALUE(timestamp)] 197 [[[decoder expect] andReturnValue:OCMOCK_VALUE(timestamp)]
200 decodeInt64ForKey:@"timestamp"]; 198 decodeInt64ForKey:web::kTimestampKey];
201 [[[decoder expect] andReturn:title] 199 [[[decoder expect] andReturn:title] decodeObjectForKey:web::kTitleKey];
202 decodeObjectForKey:@"title"];
203 const web::PageScrollState& scrollState = 200 const web::PageScrollState& scrollState =
204 [sessionEntry_ navigationItem]->GetPageScrollState(); 201 [sessionEntry_ navigationItem]->GetPageScrollState();
205 NSDictionary* serializedScrollState = 202 NSDictionary* serializedScrollState =
206 [CRWSessionEntry dictionaryFromScrollState:scrollState]; 203 [CRWSessionEntry dictionaryFromScrollState:scrollState];
207 [[[decoder expect] andReturn:serializedScrollState] 204 [[[decoder expect] andReturn:serializedScrollState]
208 decodeObjectForKey:@"state"]; 205 decodeObjectForKey:web::kPageScrollStateKey];
209 BOOL useDesktopUserAgent = 206 BOOL useDesktopUserAgent =
210 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); 207 [sessionEntry_ navigationItem]->IsOverridingUserAgent();
211 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)] 208 [[[decoder expect] andReturnValue:OCMOCK_VALUE(useDesktopUserAgent)]
212 decodeBoolForKey:@"useDesktopUserAgent"]; 209 decodeBoolForKey:web::kUseDesktopUserAgentKey];
213 NSDictionary* requestHeaders = 210 NSDictionary* requestHeaders =
214 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); 211 [sessionEntry_ navigationItem]->GetHttpRequestHeaders();
215 [[[decoder expect] andReturn:requestHeaders] 212 [[[decoder expect] andReturn:requestHeaders]
216 decodeObjectForKey:@"httpHeaders"]; 213 decodeObjectForKey:web::kHTTPRequestHeadersKey];
217 NSData* POSTData = [sessionEntry_ navigationItemImpl]->GetPostData(); 214 NSData* POSTData = [sessionEntry_ navigationItemImpl]->GetPostData();
218 [[[decoder expect] andReturn:POSTData] decodeObjectForKey:@"POSTData"]; 215 [[[decoder expect] andReturn:POSTData] decodeObjectForKey:web::kPOSTDataKey];
219 BOOL skipResubmitDataConfirmation = 216 BOOL skipResubmitDataConfirmation =
220 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); 217 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation();
221 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)] 218 [[[decoder expect] andReturnValue:OCMOCK_VALUE(skipResubmitDataConfirmation)]
222 decodeBoolForKey:@"skipResubmitDataConfirmation"]; 219 decodeBoolForKey:web::kSkipResubmitConfirmationKey];
223 220
224 base::scoped_nsobject<CRWSessionEntry> newSessionEntry( 221 base::scoped_nsobject<CRWSessionEntry> newSessionEntry(
225 [[CRWSessionEntry alloc] initWithCoder:decoder]); 222 [[CRWSessionEntry alloc] initWithCoder:decoder]);
226 web::NavigationItem* newItem = [newSessionEntry navigationItem]; 223 web::NavigationItem* newItem = [newSessionEntry navigationItem];
227 224
228 EXPECT_OCMOCK_VERIFY(decoder); 225 EXPECT_OCMOCK_VERIFY(decoder);
229 expectEqualSessionEntries(sessionEntry_, newSessionEntry, 226 expectEqualSessionEntries(sessionEntry_, newSessionEntry,
230 ui::PAGE_TRANSITION_RELOAD); 227 ui::PAGE_TRANSITION_RELOAD);
231 EXPECT_NE(item->GetURL(), newItem->GetURL()); 228 EXPECT_NE(item->GetURL(), newItem->GetURL());
232 EXPECT_EQ(item->GetVirtualURL(), newItem->GetVirtualURL()); 229 EXPECT_EQ(item->GetVirtualURL(), newItem->GetVirtualURL());
233 } 230 }
234 231
235 TEST_F(CRWSessionEntryTest, EncodeDecode) { 232 TEST_F(CRWSessionEntryTest, EncodeDecode) {
236 NSData *data = 233 NSData *data =
237 [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; 234 [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_];
238 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 235 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data];
239 236
240 expectEqualSessionEntries(sessionEntry_, decoded, 237 expectEqualSessionEntries(sessionEntry_, decoded,
241 ui::PAGE_TRANSITION_RELOAD); 238 ui::PAGE_TRANSITION_RELOAD);
242 } 239 }
243 240
244 TEST_F(CRWSessionEntryTest, EncodeWithCoder) { 241 TEST_F(CRWSessionEntryTest, EncodeWithCoder) {
245 web::NavigationItem* item = [sessionEntry_ navigationItem]; 242 web::NavigationItem* item = [sessionEntry_ navigationItem];
246 NSString* title = base::SysUTF16ToNSString(item->GetTitle()); 243 NSString* title = base::SysUTF16ToNSString(item->GetTitle());
247 244
248 base::scoped_nsobject<id> coder([[OCMockComplexTypeHelper alloc] 245 base::scoped_nsobject<id> coder([[OCMockComplexTypeHelper alloc]
249 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]); 246 initWithRepresentedObject:[OCMockObject mockForClass:[NSCoder class]]]);
250 247
251 encodeBytes_length_forKey_block block = ^(const uint8_t* bytes, 248 encodeBytes_length_forKey_block block =
252 NSUInteger length, 249 ^(const uint8_t* bytes, NSUInteger length, NSString* key) {
253 NSString* key) { 250 if ([key isEqualToString:web::kURLKey]) {
254 if ([key isEqualToString:@"virtualUrlString"]) { 251 ASSERT_EQ(item->GetVirtualURL().spec(),
255 ASSERT_EQ(item->GetVirtualURL().spec(), 252 std::string(reinterpret_cast<const char*>(bytes), length));
256 std::string(reinterpret_cast<const char*>(bytes), length)); 253 return;
257 return; 254 } else if ([key isEqualToString:web::kReferrerURLKey]) {
258 } else if ([key isEqualToString:@"referrerUrlString"]) { 255 ASSERT_EQ(item->GetReferrer().url.spec(),
259 ASSERT_EQ(item->GetReferrer().url.spec(), 256 std::string(reinterpret_cast<const char*>(bytes), length));
260 std::string(reinterpret_cast<const char*>(bytes), length)); 257 return;
261 return; 258 }
262 } 259 FAIL();
263 FAIL(); 260 };
264 };
265 [coder onSelector:@selector(encodeBytes:length:forKey:) 261 [coder onSelector:@selector(encodeBytes:length:forKey:)
266 callBlockExpectation:block]; 262 callBlockExpectation:block];
267 [[coder expect] encodeInt:item->GetReferrer().policy 263 [[coder expect] encodeInt:item->GetReferrer().policy
268 forKey:@"referrerPolicy"]; 264 forKey:web::kReferrerPolicyKey];
269 [[coder expect] encodeInt64:item->GetTimestamp().ToInternalValue() 265 [[coder expect] encodeInt64:item->GetTimestamp().ToInternalValue()
270 forKey:@"timestamp"]; 266 forKey:web::kTimestampKey];
271 [[coder expect] encodeObject:title forKey:@"title"]; 267 [[coder expect] encodeObject:title forKey:web::kTitleKey];
272 const web::PageScrollState& scrollState = 268 const web::PageScrollState& scrollState =
273 [sessionEntry_ navigationItem]->GetPageScrollState(); 269 [sessionEntry_ navigationItem]->GetPageScrollState();
274 NSDictionary* serializedScrollState = 270 NSDictionary* serializedScrollState =
275 [CRWSessionEntry dictionaryFromScrollState:scrollState]; 271 [CRWSessionEntry dictionaryFromScrollState:scrollState];
276 [[coder expect] encodeObject:serializedScrollState forKey:@"state"]; 272 [[coder expect] encodeObject:serializedScrollState
273 forKey:web::kPageScrollStateKey];
277 BOOL useDesktopUserAgent = 274 BOOL useDesktopUserAgent =
278 [sessionEntry_ navigationItem]->IsOverridingUserAgent(); 275 [sessionEntry_ navigationItem]->IsOverridingUserAgent();
279 [[coder expect] encodeBool:useDesktopUserAgent forKey:@"useDesktopUserAgent"]; 276 [[coder expect] encodeBool:useDesktopUserAgent
277 forKey:web::kUseDesktopUserAgentKey];
280 NSDictionary* requestHeaders = 278 NSDictionary* requestHeaders =
281 [sessionEntry_ navigationItem]->GetHttpRequestHeaders(); 279 [sessionEntry_ navigationItem]->GetHttpRequestHeaders();
282 [[coder expect] encodeObject:requestHeaders 280 [[coder expect] encodeObject:requestHeaders
283 forKey:@"httpHeaders"]; 281 forKey:web::kHTTPRequestHeadersKey];
284 [[coder expect] encodeObject:[sessionEntry_ navigationItemImpl]->GetPostData() 282 [[coder expect] encodeObject:[sessionEntry_ navigationItemImpl]->GetPostData()
285 forKey:@"POSTData"]; 283 forKey:web::kPOSTDataKey];
286 BOOL skipResubmitDataConfirmation = 284 BOOL skipResubmitDataConfirmation =
287 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation(); 285 [sessionEntry_ navigationItemImpl]->ShouldSkipResubmitDataConfirmation();
288 [[coder expect] encodeBool:skipResubmitDataConfirmation 286 [[coder expect] encodeBool:skipResubmitDataConfirmation
289 forKey:@"skipResubmitDataConfirmation"]; 287 forKey:web::kSkipResubmitConfirmationKey];
290 [sessionEntry_ encodeWithCoder:coder]; 288 [sessionEntry_ encodeWithCoder:coder];
291 EXPECT_OCMOCK_VERIFY(coder); 289 EXPECT_OCMOCK_VERIFY(coder);
292 } 290 }
293 291
294 TEST_F(CRWSessionEntryTest, CodingEncoding) { 292 TEST_F(CRWSessionEntryTest, CodingEncoding) {
295 web::NavigationItem* item = [sessionEntry_ navigationItem]; 293 web::NavigationItem* item = [sessionEntry_ navigationItem];
296 item->SetVirtualURL(GURL("http://user.friendly")); 294 item->SetVirtualURL(GURL("http://user.friendly"));
297 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_]; 295 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionEntry_];
298 EXPECT_TRUE(data != nil); 296 EXPECT_TRUE(data != nil);
299 CRWSessionEntry* unarchivedSessionEntry = 297 CRWSessionEntry* unarchivedSessionEntry =
(...skipping 22 matching lines...) Expand all
322 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) { 320 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) {
323 web::NavigationItem* item = [sessionEntry_ navigationItem]; 321 web::NavigationItem* item = [sessionEntry_ navigationItem];
324 item->SetVirtualURL(GURL("http://user.friendly")); 322 item->SetVirtualURL(GURL("http://user.friendly"));
325 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL()); 323 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL());
326 EXPECT_EQ(GURL("http://init.test/"), item->GetURL()); 324 EXPECT_EQ(GURL("http://init.test/"), item->GetURL());
327 } 325 }
328 326
329 TEST_F(CRWSessionEntryTest, EmptyDescription) { 327 TEST_F(CRWSessionEntryTest, EmptyDescription) {
330 EXPECT_GT([[sessionEntry_ description] length], 0U); 328 EXPECT_GT([[sessionEntry_ description] length], 0U);
331 } 329 }
OLDNEW
« ios/web/navigation/crw_session_entry.h ('K') | « ios/web/navigation/crw_session_entry.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698