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

Side by Side Diff: net/test/embedded_test_server/embedded_test_server_unittest.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "net/test/embedded_test_server/embedded_test_server.h" 5 #include "net/test/embedded_test_server/embedded_test_server.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "net/http/http_response_headers.h" 9 #include "net/http/http_response_headers.h"
10 #include "net/test/embedded_test_server/http_request.h" 10 #include "net/test/embedded_test_server/http_request.h"
(...skipping 22 matching lines...) Expand all
33 if (headers) { 33 if (headers) {
34 std::string content_type; 34 std::string content_type;
35 if (headers->GetMimeType(&content_type)) 35 if (headers->GetMimeType(&content_type))
36 return content_type; 36 return content_type;
37 } 37 }
38 return std::string(); 38 return std::string();
39 } 39 }
40 40
41 } // namespace 41 } // namespace
42 42
43 class EmbeddedTestServerTest: public testing::Test, 43 class EmbeddedTestServerTest : public testing::Test, public URLFetcherDelegate {
44 public URLFetcherDelegate {
45 public: 44 public:
46 EmbeddedTestServerTest() 45 EmbeddedTestServerTest()
47 : num_responses_received_(0), 46 : num_responses_received_(0),
48 num_responses_expected_(0), 47 num_responses_expected_(0),
49 io_thread_("io_thread") { 48 io_thread_("io_thread") {}
50 }
51 49
52 virtual void SetUp() OVERRIDE { 50 virtual void SetUp() OVERRIDE {
53 base::Thread::Options thread_options; 51 base::Thread::Options thread_options;
54 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; 52 thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
55 ASSERT_TRUE(io_thread_.StartWithOptions(thread_options)); 53 ASSERT_TRUE(io_thread_.StartWithOptions(thread_options));
56 54
57 request_context_getter_ = new TestURLRequestContextGetter( 55 request_context_getter_ =
58 io_thread_.message_loop_proxy()); 56 new TestURLRequestContextGetter(io_thread_.message_loop_proxy());
59 57
60 server_.reset(new EmbeddedTestServer); 58 server_.reset(new EmbeddedTestServer);
61 ASSERT_TRUE(server_->InitializeAndWaitUntilReady()); 59 ASSERT_TRUE(server_->InitializeAndWaitUntilReady());
62 } 60 }
63 61
64 virtual void TearDown() OVERRIDE { 62 virtual void TearDown() OVERRIDE {
65 ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete()); 63 ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete());
66 } 64 }
67 65
68 // URLFetcherDelegate override. 66 // URLFetcherDelegate override.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 int num_responses_received_; 103 int num_responses_received_;
106 int num_responses_expected_; 104 int num_responses_expected_;
107 std::string request_relative_url_; 105 std::string request_relative_url_;
108 base::Thread io_thread_; 106 base::Thread io_thread_;
109 scoped_refptr<TestURLRequestContextGetter> request_context_getter_; 107 scoped_refptr<TestURLRequestContextGetter> request_context_getter_;
110 scoped_ptr<EmbeddedTestServer> server_; 108 scoped_ptr<EmbeddedTestServer> server_;
111 }; 109 };
112 110
113 TEST_F(EmbeddedTestServerTest, GetBaseURL) { 111 TEST_F(EmbeddedTestServerTest, GetBaseURL) {
114 EXPECT_EQ(base::StringPrintf("http://127.0.0.1:%d/", server_->port()), 112 EXPECT_EQ(base::StringPrintf("http://127.0.0.1:%d/", server_->port()),
115 server_->base_url().spec()); 113 server_->base_url().spec());
116 } 114 }
117 115
118 TEST_F(EmbeddedTestServerTest, GetURL) { 116 TEST_F(EmbeddedTestServerTest, GetURL) {
119 EXPECT_EQ(base::StringPrintf("http://127.0.0.1:%d/path?query=foo", 117 EXPECT_EQ(
120 server_->port()), 118 base::StringPrintf("http://127.0.0.1:%d/path?query=foo", server_->port()),
121 server_->GetURL("/path?query=foo").spec()); 119 server_->GetURL("/path?query=foo").spec());
122 } 120 }
123 121
124 TEST_F(EmbeddedTestServerTest, RegisterRequestHandler) { 122 TEST_F(EmbeddedTestServerTest, RegisterRequestHandler) {
125 server_->RegisterRequestHandler( 123 server_->RegisterRequestHandler(
126 base::Bind(&EmbeddedTestServerTest::HandleRequest, 124 base::Bind(&EmbeddedTestServerTest::HandleRequest,
127 base::Unretained(this), 125 base::Unretained(this),
128 "/test", 126 "/test",
129 "<b>Worked!</b>", 127 "<b>Worked!</b>",
130 "text/html", 128 "text/html",
131 HTTP_OK)); 129 HTTP_OK));
132 130
133 scoped_ptr<URLFetcher> fetcher( 131 scoped_ptr<URLFetcher> fetcher(URLFetcher::Create(
134 URLFetcher::Create(server_->GetURL("/test?q=foo"), 132 server_->GetURL("/test?q=foo"), URLFetcher::GET, this));
135 URLFetcher::GET,
136 this));
137 fetcher->SetRequestContext(request_context_getter_.get()); 133 fetcher->SetRequestContext(request_context_getter_.get());
138 fetcher->Start(); 134 fetcher->Start();
139 WaitForResponses(1); 135 WaitForResponses(1);
140 136
141 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); 137 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status());
142 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); 138 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode());
143 EXPECT_EQ("<b>Worked!</b>", GetContentFromFetcher(*fetcher)); 139 EXPECT_EQ("<b>Worked!</b>", GetContentFromFetcher(*fetcher));
144 EXPECT_EQ("text/html", GetContentTypeFromFetcher(*fetcher)); 140 EXPECT_EQ("text/html", GetContentTypeFromFetcher(*fetcher));
145 141
146 EXPECT_EQ("/test?q=foo", request_relative_url_); 142 EXPECT_EQ("/test?q=foo", request_relative_url_);
147 } 143 }
148 144
149 TEST_F(EmbeddedTestServerTest, ServeFilesFromDirectory) { 145 TEST_F(EmbeddedTestServerTest, ServeFilesFromDirectory) {
150 base::FilePath src_dir; 146 base::FilePath src_dir;
151 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)); 147 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir));
152 server_->ServeFilesFromDirectory( 148 server_->ServeFilesFromDirectory(
153 src_dir.AppendASCII("net").AppendASCII("data")); 149 src_dir.AppendASCII("net").AppendASCII("data"));
154 150
155 scoped_ptr<URLFetcher> fetcher( 151 scoped_ptr<URLFetcher> fetcher(
156 URLFetcher::Create(server_->GetURL("/test.html"), 152 URLFetcher::Create(server_->GetURL("/test.html"), URLFetcher::GET, this));
157 URLFetcher::GET,
158 this));
159 fetcher->SetRequestContext(request_context_getter_.get()); 153 fetcher->SetRequestContext(request_context_getter_.get());
160 fetcher->Start(); 154 fetcher->Start();
161 WaitForResponses(1); 155 WaitForResponses(1);
162 156
163 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); 157 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status());
164 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); 158 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode());
165 EXPECT_EQ("<p>Hello World!</p>", GetContentFromFetcher(*fetcher)); 159 EXPECT_EQ("<p>Hello World!</p>", GetContentFromFetcher(*fetcher));
166 EXPECT_EQ("", GetContentTypeFromFetcher(*fetcher)); 160 EXPECT_EQ("", GetContentTypeFromFetcher(*fetcher));
167 } 161 }
168 162
169 TEST_F(EmbeddedTestServerTest, DefaultNotFoundResponse) { 163 TEST_F(EmbeddedTestServerTest, DefaultNotFoundResponse) {
170 scoped_ptr<URLFetcher> fetcher( 164 scoped_ptr<URLFetcher> fetcher(URLFetcher::Create(
171 URLFetcher::Create(server_->GetURL("/non-existent"), 165 server_->GetURL("/non-existent"), URLFetcher::GET, this));
172 URLFetcher::GET,
173 this));
174 fetcher->SetRequestContext(request_context_getter_.get()); 166 fetcher->SetRequestContext(request_context_getter_.get());
175 167
176 fetcher->Start(); 168 fetcher->Start();
177 WaitForResponses(1); 169 WaitForResponses(1);
178 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); 170 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status());
179 EXPECT_EQ(HTTP_NOT_FOUND, fetcher->GetResponseCode()); 171 EXPECT_EQ(HTTP_NOT_FOUND, fetcher->GetResponseCode());
180 } 172 }
181 173
182 TEST_F(EmbeddedTestServerTest, ConcurrentFetches) { 174 TEST_F(EmbeddedTestServerTest, ConcurrentFetches) {
183 server_->RegisterRequestHandler( 175 server_->RegisterRequestHandler(
(...skipping 12 matching lines...) Expand all
196 HTTP_OK)); 188 HTTP_OK));
197 server_->RegisterRequestHandler( 189 server_->RegisterRequestHandler(
198 base::Bind(&EmbeddedTestServerTest::HandleRequest, 190 base::Bind(&EmbeddedTestServerTest::HandleRequest,
199 base::Unretained(this), 191 base::Unretained(this),
200 "/test3", 192 "/test3",
201 "No chocolates", 193 "No chocolates",
202 "text/plain", 194 "text/plain",
203 HTTP_NOT_FOUND)); 195 HTTP_NOT_FOUND));
204 196
205 scoped_ptr<URLFetcher> fetcher1 = scoped_ptr<URLFetcher>( 197 scoped_ptr<URLFetcher> fetcher1 = scoped_ptr<URLFetcher>(
206 URLFetcher::Create(server_->GetURL("/test1"), 198 URLFetcher::Create(server_->GetURL("/test1"), URLFetcher::GET, this));
207 URLFetcher::GET,
208 this));
209 fetcher1->SetRequestContext(request_context_getter_.get()); 199 fetcher1->SetRequestContext(request_context_getter_.get());
210 scoped_ptr<URLFetcher> fetcher2 = scoped_ptr<URLFetcher>( 200 scoped_ptr<URLFetcher> fetcher2 = scoped_ptr<URLFetcher>(
211 URLFetcher::Create(server_->GetURL("/test2"), 201 URLFetcher::Create(server_->GetURL("/test2"), URLFetcher::GET, this));
212 URLFetcher::GET,
213 this));
214 fetcher2->SetRequestContext(request_context_getter_.get()); 202 fetcher2->SetRequestContext(request_context_getter_.get());
215 scoped_ptr<URLFetcher> fetcher3 = scoped_ptr<URLFetcher>( 203 scoped_ptr<URLFetcher> fetcher3 = scoped_ptr<URLFetcher>(
216 URLFetcher::Create(server_->GetURL("/test3"), 204 URLFetcher::Create(server_->GetURL("/test3"), URLFetcher::GET, this));
217 URLFetcher::GET,
218 this));
219 fetcher3->SetRequestContext(request_context_getter_.get()); 205 fetcher3->SetRequestContext(request_context_getter_.get());
220 206
221 // Fetch the three URLs concurrently. 207 // Fetch the three URLs concurrently.
222 fetcher1->Start(); 208 fetcher1->Start();
223 fetcher2->Start(); 209 fetcher2->Start();
224 fetcher3->Start(); 210 fetcher3->Start();
225 WaitForResponses(3); 211 WaitForResponses(3);
226 212
227 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher1->GetStatus().status()); 213 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher1->GetStatus().status());
228 EXPECT_EQ(HTTP_OK, fetcher1->GetResponseCode()); 214 EXPECT_EQ(HTTP_OK, fetcher1->GetResponseCode());
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 294
309 DISALLOW_COPY_AND_ASSIGN(EmbeddedTestServerThreadingTestDelegate); 295 DISALLOW_COPY_AND_ASSIGN(EmbeddedTestServerThreadingTestDelegate);
310 }; 296 };
311 297
312 TEST_P(EmbeddedTestServerThreadingTest, RunTest) { 298 TEST_P(EmbeddedTestServerThreadingTest, RunTest) {
313 // The actual test runs on a separate thread so it can screw with the presence 299 // The actual test runs on a separate thread so it can screw with the presence
314 // of a MessageLoop - the test suite already sets up a MessageLoop for the 300 // of a MessageLoop - the test suite already sets up a MessageLoop for the
315 // main test thread. 301 // main test thread.
316 base::PlatformThreadHandle thread_handle; 302 base::PlatformThreadHandle thread_handle;
317 EmbeddedTestServerThreadingTestDelegate delegate( 303 EmbeddedTestServerThreadingTestDelegate delegate(
318 std::tr1::get<0>(GetParam()), 304 std::tr1::get<0>(GetParam()), std::tr1::get<1>(GetParam()));
319 std::tr1::get<1>(GetParam()));
320 ASSERT_TRUE(base::PlatformThread::Create(0, &delegate, &thread_handle)); 305 ASSERT_TRUE(base::PlatformThread::Create(0, &delegate, &thread_handle));
321 base::PlatformThread::Join(thread_handle); 306 base::PlatformThread::Join(thread_handle);
322 } 307 }
323 308
324 INSTANTIATE_TEST_CASE_P(EmbeddedTestServerThreadingTestInstantiation, 309 INSTANTIATE_TEST_CASE_P(EmbeddedTestServerThreadingTestInstantiation,
325 EmbeddedTestServerThreadingTest, 310 EmbeddedTestServerThreadingTest,
326 testing::Combine(testing::Bool(), testing::Bool())); 311 testing::Combine(testing::Bool(), testing::Bool()));
327 312
328 } // namespace test_server 313 } // namespace test_server
329 } // namespace net 314 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698