OLD | NEW |
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 Loading... |
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 |
OLD | NEW |