Index: components/cronet/ios/test/cronet_http_test.mm |
diff --git a/components/cronet/ios/test/cronet_http_test.mm b/components/cronet/ios/test/cronet_http_test.mm |
index 21d0419e6c3ef5ffec62cc19b248071bc4d45db5..e1b1e723037b8b80b1fdf72b94b055ba14bc1c03 100644 |
--- a/components/cronet/ios/test/cronet_http_test.mm |
+++ b/components/cronet/ios/test/cronet_http_test.mm |
@@ -257,24 +257,69 @@ TEST_F(HttpTest, SetUserAgentIsExact) { |
TEST_F(HttpTest, SetCookie) { |
const char kCookieHeader[] = "Cookie"; |
- const char kCookieLine[] = "aaaa=bbb"; |
- NSURL* echoCookieUrl = |
+ NSString* cookieName = |
+ [NSString stringWithFormat:@"SetCookie-%@", [[NSUUID UUID] UUIDString]]; |
+ NSString* cookieValue = [[NSUUID UUID] UUIDString]; |
+ NSString* cookieLine = |
+ [NSString stringWithFormat:@"%@=%@", cookieName, cookieValue]; |
+ NSHTTPCookieStorage* systemCookieStorage = |
+ [NSHTTPCookieStorage sharedHTTPCookieStorage]; |
+ NSURL* cookieUrl = |
net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader))); |
- StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); |
+ // Verify that cookie is not set in system storage. |
+ for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) { |
+ EXPECT_FALSE([[cookie name] isEqualToString:cookieName]); |
+ } |
+ |
+ StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]); |
EXPECT_EQ(nil, [delegate_ error]); |
EXPECT_EQ(nil, [delegate_ responseBody]); |
- NSURL* setCookieUrl = |
- net::NSURLWithGURL(GURL(TestServer::GetSetCookieURL(kCookieLine))); |
+ NSURL* setCookieUrl = net::NSURLWithGURL( |
+ GURL(TestServer::GetSetCookieURL(base::SysNSStringToUTF8(cookieLine)))); |
StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:setCookieUrl]); |
EXPECT_EQ(nil, [delegate_ error]); |
- EXPECT_TRUE([[delegate_ responseBody] |
- containsString:base::SysUTF8ToNSString(kCookieLine)]); |
+ EXPECT_TRUE([[delegate_ responseBody] containsString:cookieLine]); |
+ |
+ StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:cookieUrl]); |
+ EXPECT_EQ(nil, [delegate_ error]); |
+ EXPECT_TRUE([[delegate_ responseBody] containsString:cookieLine]); |
+ |
+ // Verify that cookie is set in system storage. |
+ NSHTTPCookie* systemCookie = nil; |
+ for (NSHTTPCookie* cookie in [systemCookieStorage cookiesForURL:cookieUrl]) { |
+ if ([cookie.name isEqualToString:cookieName]) { |
+ systemCookie = cookie; |
+ break; |
+ } |
+ } |
+ EXPECT_TRUE([[systemCookie value] isEqualToString:cookieValue]); |
+ [systemCookieStorage deleteCookie:systemCookie]; |
+} |
+ |
+TEST_F(HttpTest, SetSystemCookie) { |
+ const char kCookieHeader[] = "Cookie"; |
+ NSString* cookieName = [NSString |
+ stringWithFormat:@"SetSystemCookie-%@", [[NSUUID UUID] UUIDString]]; |
+ NSString* cookieValue = [[NSUUID UUID] UUIDString]; |
+ NSHTTPCookieStorage* systemCookieStorage = |
+ [NSHTTPCookieStorage sharedHTTPCookieStorage]; |
+ NSURL* echoCookieUrl = |
+ net::NSURLWithGURL(GURL(TestServer::GetEchoHeaderURL(kCookieHeader))); |
+ NSHTTPCookie* systemCookie = [NSHTTPCookie cookieWithProperties:@{ |
+ NSHTTPCookiePath : [echoCookieUrl path], |
+ NSHTTPCookieName : cookieName, |
+ NSHTTPCookieValue : cookieValue, |
+ NSHTTPCookieDomain : [echoCookieUrl host], |
+ }]; |
+ [systemCookieStorage setCookie:systemCookie]; |
StartDataTaskAndWaitForCompletion([session_ dataTaskWithURL:echoCookieUrl]); |
+ [systemCookieStorage deleteCookie:systemCookie]; |
EXPECT_EQ(nil, [delegate_ error]); |
- EXPECT_TRUE([[delegate_ responseBody] |
- containsString:base::SysUTF8ToNSString(kCookieLine)]); |
+ // Verify that cookie set in system store was sent to the serever. |
+ EXPECT_TRUE([[delegate_ responseBody] containsString:cookieName]); |
+ EXPECT_TRUE([[delegate_ responseBody] containsString:cookieValue]); |
} |
TEST_F(HttpTest, FilterOutRequest) { |