| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ios/web/public/test/http_server.h" | 5 #import <Foundation/Foundation.h> |
| 6 | 6 |
| 7 #import <Foundation/Foundation.h> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #import "base/mac/scoped_nsobject.h" | 10 #import "base/mac/scoped_nsobject.h" |
| 11 #include "base/memory/scoped_ptr.h" | |
| 12 #include "base/strings/sys_string_conversions.h" | 11 #include "base/strings/sys_string_conversions.h" |
| 13 #import "base/test/ios/wait_util.h" | 12 #import "base/test/ios/wait_util.h" |
| 13 #import "ios/web/public/test/http_server.h" |
| 14 #include "ios/web/public/test/response_providers/string_response_provider.h" | 14 #include "ios/web/public/test/response_providers/string_response_provider.h" |
| 15 #import "ios/web/test/web_int_test.h" | 15 #import "ios/web/test/web_int_test.h" |
| 16 #import "net/base/mac/url_conversions.h" | 16 #import "net/base/mac/url_conversions.h" |
| 17 #include "net/http/http_response_headers.h" | 17 #include "net/http/http_response_headers.h" |
| 18 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| 19 #include "testing/gtest_mac.h" | 19 #include "testing/gtest_mac.h" |
| 20 | 20 |
| 21 // A test fixture for verifying the behavior of web::test::HttpServer. | 21 // A test fixture for verifying the behavior of web::test::HttpServer. |
| 22 typedef web::WebIntTest HttpServerTest; | 22 typedef web::WebIntTest HttpServerTest; |
| 23 | 23 |
| 24 // Tests that a web::test::HttpServer can be started and can send and receive | 24 // Tests that a web::test::HttpServer can be started and can send and receive |
| 25 // requests and response from |TestResponseProvider|. | 25 // requests and response from |TestResponseProvider|. |
| 26 TEST_F(HttpServerTest, StartAndInterfaceWithResponseProvider) { | 26 TEST_F(HttpServerTest, StartAndInterfaceWithResponseProvider) { |
| 27 const std::string kHelloWorld = "Hello World"; | 27 const std::string kHelloWorld = "Hello World"; |
| 28 scoped_ptr<web::StringResponseProvider> provider( | 28 std::unique_ptr<web::StringResponseProvider> provider( |
| 29 new web::StringResponseProvider(kHelloWorld)); | 29 new web::StringResponseProvider(kHelloWorld)); |
| 30 | 30 |
| 31 web::test::HttpServer& server = web::test::HttpServer::GetSharedInstance(); | 31 web::test::HttpServer& server = web::test::HttpServer::GetSharedInstance(); |
| 32 ASSERT_TRUE(server.IsRunning()); | 32 ASSERT_TRUE(server.IsRunning()); |
| 33 server.AddResponseProvider(provider.release()); | 33 server.AddResponseProvider(provider.release()); |
| 34 | 34 |
| 35 __block base::scoped_nsobject<NSString> page_result; | 35 __block base::scoped_nsobject<NSString> page_result; |
| 36 id completion_handler = | 36 id completion_handler = |
| 37 ^(NSData* data, NSURLResponse* response, NSError* error) { | 37 ^(NSData* data, NSURLResponse* response, NSError* error) { |
| 38 page_result.reset([[NSString alloc] | 38 page_result.reset([[NSString alloc] |
| 39 initWithData:data encoding:NSUTF8StringEncoding]); | 39 initWithData:data encoding:NSUTF8StringEncoding]); |
| 40 }; | 40 }; |
| 41 NSURL* url = net::NSURLWithGURL(server.MakeUrl("http://whatever")); | 41 NSURL* url = net::NSURLWithGURL(server.MakeUrl("http://whatever")); |
| 42 NSURLSessionDataTask* data_task = | 42 NSURLSessionDataTask* data_task = |
| 43 [[NSURLSession sharedSession] dataTaskWithURL:url | 43 [[NSURLSession sharedSession] dataTaskWithURL:url |
| 44 completionHandler:completion_handler]; | 44 completionHandler:completion_handler]; |
| 45 [data_task resume]; | 45 [data_task resume]; |
| 46 base::test::ios::WaitUntilCondition(^bool() { | 46 base::test::ios::WaitUntilCondition(^bool() { |
| 47 return page_result; | 47 return page_result; |
| 48 }); | 48 }); |
| 49 EXPECT_NSEQ(page_result, base::SysUTF8ToNSString(kHelloWorld)); | 49 EXPECT_NSEQ(page_result, base::SysUTF8ToNSString(kHelloWorld)); |
| 50 } | 50 } |
| OLD | NEW |