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

Side by Side Diff: components/cronet/ios/test/cronet_http_test.mm

Issue 2617853002: [Cronet] Use CookieStoreIOS to sync cookies to system store. (Closed)
Patch Set: Add SetSystemCookie test, address comments. Created 3 years, 11 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
« no previous file with comments | « components/cronet/ios/cronet_environment.mm ('k') | 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <Cronet/Cronet.h> 5 #import <Cronet/Cronet.h>
6 #import <Foundation/Foundation.h> 6 #import <Foundation/Foundation.h>
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 [Cronet setRequestFilterBlock:nil]; 251 [Cronet setRequestFilterBlock:nil];
252 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url]; 252 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url];
253 StartDataTaskAndWaitForCompletion(task); 253 StartDataTaskAndWaitForCompletion(task);
254 EXPECT_EQ(nil, [delegate_ error]); 254 EXPECT_EQ(nil, [delegate_ error]);
255 EXPECT_STREQ(kUserAgent, [[delegate_ responseBody] UTF8String]); 255 EXPECT_STREQ(kUserAgent, [[delegate_ responseBody] UTF8String]);
256 } 256 }
257 257
258 TEST_F(HttpTest, SetCookie) { 258 TEST_F(HttpTest, SetCookie) {
259 const char kCookieHeader[] = "Cookie"; 259 const char kCookieHeader[] = "Cookie";
260 const char kCookieLine[] = "aaaa=bbb"; 260 const char kCookieLine[] = "aaaa=bbb";
261 NSURL* echoCookieUrl = 261 NSHTTPCookieStorage* systemCookieStorage =
262 [NSHTTPCookieStorage sharedHTTPCookieStorage];
263 NSURL* cookieUrl =
262 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader))); 264 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader)));
263 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); 265 // Verify that cookie is not set in system storage.
266 for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) {
267 EXPECT_FALSE([[cookie name] isEqualToString:@"aaaa"]);
268 }
269
270 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]);
264 EXPECT_EQ(nil, [delegate_ error]); 271 EXPECT_EQ(nil, [delegate_ error]);
265 EXPECT_EQ(nil, [delegate_ responseBody]); 272 EXPECT_EQ(nil, [delegate_ responseBody]);
266 273
267 NSURL* setCookieUrl = 274 NSURL* setCookieUrl =
268 net::NSURLWithGURL(GURL(TestServer::GetSetCookieURL(kCookieLine))); 275 net::NSURLWithGURL(GURL(TestServer::GetSetCookieURL(kCookieLine)));
269 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:setCookieUrl]); 276 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:setCookieUrl]);
270 EXPECT_EQ(nil, [delegate_ error]); 277 EXPECT_EQ(nil, [delegate_ error]);
271 EXPECT_TRUE([[delegate_ responseBody] 278 EXPECT_TRUE([[delegate_ responseBody]
272 containsString:base::SysUTF8ToNSString(kCookieLine)]); 279 containsString:base::SysUTF8ToNSString(kCookieLine)]);
273 280
274 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); 281 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]);
275 EXPECT_EQ(nil, [delegate_ error]); 282 EXPECT_EQ(nil, [delegate_ error]);
276 EXPECT_TRUE([[delegate_ responseBody] 283 EXPECT_TRUE([[delegate_ responseBody]
277 containsString:base::SysUTF8ToNSString(kCookieLine)]); 284 containsString:base::SysUTF8ToNSString(kCookieLine)]);
285
286 // Verify that cookie is set in system storage.
287 NSHTTPCookie* systemCookie = nil;
288 for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) {
289 if ([cookie.name isEqualToString:@"aaaa"]) {
290 systemCookie = cookie;
291 break;
292 }
293 }
294 EXPECT_TRUE([[systemCookie value] isEqualToString:@"bbb"]);
295 [systemCookieStorage deleteCookie:systemCookie];
296 }
297
298 TEST_F(HttpTest, SetSystemCookie) {
299 const char kCookieHeader[] = "Cookie";
300 NSHTTPCookieStorage* systemCookieStorage =
301 [NSHTTPCookieStorage sharedHTTPCookieStorage];
302 NSURL* echoCookieUrl =
303 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader)));
304 NSHTTPCookie* systemCookie = [NSHTTPCookie cookieWithProperties:@{
305 NSHTTPCookiePath : [echoCookieUrl path],
306 NSHTTPCookieName : @"cccc",
307 NSHTTPCookieValue : @"dddd",
308 NSHTTPCookieDomain : [echoCookieUrl host],
309 }];
310 [systemCookieStorage setCookie:systemCookie];
311
312 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]);
313 EXPECT_EQ(nil, [delegate_ error]);
314 // Verify that cookie set in system store was sent to the serever.
315 EXPECT_TRUE([[delegate_ responseBody] isEqualToString:@"cccc=dddd"]);
kapishnikov 2017/01/06 16:23:17 I would use containsString here since the cookie h
mef 2017/01/06 17:58:59 Done.
316 [systemCookieStorage deleteCookie:systemCookie];
kapishnikov 2017/01/06 16:23:17 If the above 'EXPECTs' fail, the cookie is not goi
mef 2017/01/06 17:58:59 Done.
278 } 317 }
279 318
280 TEST_F(HttpTest, FilterOutRequest) { 319 TEST_F(HttpTest, FilterOutRequest) {
281 NSURL* url = 320 NSURL* url =
282 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent"))); 321 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent")));
283 __block BOOL block_used = NO; 322 __block BOOL block_used = NO;
284 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url]; 323 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url];
285 [Cronet setRequestFilterBlock:^(NSURLRequest* request) { 324 [Cronet setRequestFilterBlock:^(NSURLRequest* request) {
286 block_used = YES; 325 block_used = YES;
287 EXPECT_EQ([request URL], url); 326 EXPECT_EQ([request URL], url);
288 return NO; 327 return NO;
289 }]; 328 }];
290 StartDataTaskAndWaitForCompletion(task); 329 StartDataTaskAndWaitForCompletion(task);
291 EXPECT_TRUE(block_used); 330 EXPECT_TRUE(block_used);
292 EXPECT_EQ(nil, [delegate_ error]); 331 EXPECT_EQ(nil, [delegate_ error]);
293 EXPECT_FALSE([[delegate_ responseBody] 332 EXPECT_FALSE([[delegate_ responseBody]
294 containsString:base::SysUTF8ToNSString(kUserAgent)]); 333 containsString:base::SysUTF8ToNSString(kUserAgent)]);
295 EXPECT_TRUE([[delegate_ responseBody] containsString:@"CFNetwork"]); 334 EXPECT_TRUE([[delegate_ responseBody] containsString:@"CFNetwork"]);
296 } 335 }
297 336
298 } // namespace cronet 337 } // namespace cronet
OLDNEW
« no previous file with comments | « components/cronet/ios/cronet_environment.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698