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

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: Address Andrei's 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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent"))); 250 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent")));
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 NSString* cookieName =
261 NSURL* echoCookieUrl = 261 [NSString stringWithFormat:@"SetCookie-%@", [[NSUUID UUID] UUIDString]];
262 NSString* cookieValue = [[NSUUID UUID] UUIDString];
263 NSString* cookieLine =
264 [NSString stringWithFormat:@"%@=%@", cookieName, cookieValue];
265 NSHTTPCookieStorage* systemCookieStorage =
266 [NSHTTPCookieStorage sharedHTTPCookieStorage];
267 NSURL* cookieUrl =
262 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader))); 268 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader)));
263 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); 269 // Verify that cookie is not set in system storage.
270 for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) {
271 EXPECT_FALSE([[cookie name] isEqualToString:cookieName]);
272 }
273
274 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]);
264 EXPECT_EQ(nil, [delegate_ error]); 275 EXPECT_EQ(nil, [delegate_ error]);
265 EXPECT_EQ(nil, [delegate_ responseBody]); 276 EXPECT_EQ(nil, [delegate_ responseBody]);
266 277
267 NSURL* setCookieUrl = 278 NSURL* setCookieUrl = net::NSURLWithGURL(
268 net::NSURLWithGURL(GURL(TestServer::GetSetCookieURL(kCookieLine))); 279 GURL(TestServer::GetSetCookieURL(base::SysNSStringToUTF8(cookieLine))));
269 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:setCookieUrl]); 280 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:setCookieUrl]);
270 EXPECT_EQ(nil, [delegate_ error]); 281 EXPECT_EQ(nil, [delegate_ error]);
271 EXPECT_TRUE([[delegate_ responseBody] 282 EXPECT_TRUE([[delegate_ responseBody] containsString:cookieLine]);
272 containsString:base::SysUTF8ToNSString(kCookieLine)]); 283
284 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]);
285 EXPECT_EQ(nil, [delegate_ error]);
286 EXPECT_TRUE([[delegate_ responseBody] containsString:cookieLine]);
287
288 // Verify that cookie is set in system storage.
289 NSHTTPCookie* systemCookie = nil;
290 for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) {
291 if ([cookie.name isEqualToString:cookieName]) {
292 systemCookie = cookie;
293 break;
294 }
295 }
296 EXPECT_TRUE([[systemCookie value] isEqualToString:cookieValue]);
297 [systemCookieStorage deleteCookie:systemCookie];
298 }
299
300 TEST_F(HttpTest, SetSystemCookie) {
301 const char kCookieHeader[] = "Cookie";
302 NSString* cookieName = [NSString
303 stringWithFormat:@"SetSystemCookie-%@", [[NSUUID UUID] UUIDString]];
304 NSString* cookieValue = [[NSUUID UUID] UUIDString];
305 NSHTTPCookieStorage* systemCookieStorage =
306 [NSHTTPCookieStorage sharedHTTPCookieStorage];
307 NSURL* echoCookieUrl =
308 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader)));
309 NSHTTPCookie* systemCookie = [NSHTTPCookie cookieWithProperties:@{
310 NSHTTPCookiePath : [echoCookieUrl path],
311 NSHTTPCookieName : cookieName,
312 NSHTTPCookieValue : cookieValue,
313 NSHTTPCookieDomain : [echoCookieUrl host],
314 }];
315 [systemCookieStorage setCookie:systemCookie];
273 316
274 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); 317 StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]);
318 [systemCookieStorage deleteCookie:systemCookie];
275 EXPECT_EQ(nil, [delegate_ error]); 319 EXPECT_EQ(nil, [delegate_ error]);
276 EXPECT_TRUE([[delegate_ responseBody] 320 // Verify that cookie set in system store was sent to the serever.
277 containsString:base::SysUTF8ToNSString(kCookieLine)]); 321 EXPECT_TRUE([[delegate_ responseBody] containsString:cookieName]);
322 EXPECT_TRUE([[delegate_ responseBody] containsString:cookieValue]);
278 } 323 }
279 324
280 TEST_F(HttpTest, FilterOutRequest) { 325 TEST_F(HttpTest, FilterOutRequest) {
281 NSURL* url = 326 NSURL* url =
282 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent"))); 327 net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL("User-Agent")));
283 __block BOOL block_used = NO; 328 __block BOOL block_used = NO;
284 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url]; 329 NSURLSessionDataTask* task = [session_ dataTaskWithURL:url];
285 [Cronet setRequestFilterBlock:^(NSURLRequest* request) { 330 [Cronet setRequestFilterBlock:^(NSURLRequest* request) {
286 block_used = YES; 331 block_used = YES;
287 EXPECT_EQ([request URL], url); 332 EXPECT_EQ([request URL], url);
288 return NO; 333 return NO;
289 }]; 334 }];
290 StartDataTaskAndWaitForCompletion(task); 335 StartDataTaskAndWaitForCompletion(task);
291 EXPECT_TRUE(block_used); 336 EXPECT_TRUE(block_used);
292 EXPECT_EQ(nil, [delegate_ error]); 337 EXPECT_EQ(nil, [delegate_ error]);
293 EXPECT_FALSE([[delegate_ responseBody] 338 EXPECT_FALSE([[delegate_ responseBody]
294 containsString:base::SysUTF8ToNSString(kUserAgent)]); 339 containsString:base::SysUTF8ToNSString(kUserAgent)]);
295 EXPECT_TRUE([[delegate_ responseBody] containsString:@"CFNetwork"]); 340 EXPECT_TRUE([[delegate_ responseBody] containsString:@"CFNetwork"]);
296 } 341 }
297 342
298 } // namespace cronet 343 } // 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