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

Side by Side Diff: services/http_server/http_server_apptest.cc

Issue 953513002: http_server: accept full NetAddress in CreateHttpServer. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Address Ben's comments. Created 5 years, 10 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 | « examples/http_handler/http_handler.cc ('k') | services/http_server/http_server_factory_impl.h » ('j') | 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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "mojo/common/data_pipe_utils.h" 8 #include "mojo/common/data_pipe_utils.h"
9 #include "mojo/public/cpp/application/application_impl.h" 9 #include "mojo/public/cpp/application/application_impl.h"
10 #include "mojo/public/cpp/application/application_test_base.h" 10 #include "mojo/public/cpp/application/application_test_base.h"
11 #include "mojo/public/cpp/system/macros.h" 11 #include "mojo/public/cpp/system/macros.h"
12 #include "mojo/services/network/public/interfaces/net_address.mojom.h"
12 #include "mojo/services/network/public/interfaces/network_service.mojom.h" 13 #include "mojo/services/network/public/interfaces/network_service.mojom.h"
13 #include "mojo/services/network/public/interfaces/url_loader.mojom.h" 14 #include "mojo/services/network/public/interfaces/url_loader.mojom.h"
14 #include "services/http_server/public/http_server.mojom.h" 15 #include "services/http_server/public/http_server.mojom.h"
15 #include "services/http_server/public/http_server_factory.mojom.h" 16 #include "services/http_server/public/http_server_factory.mojom.h"
16 #include "services/http_server/public/http_server_util.h" 17 #include "services/http_server/public/http_server_util.h"
17 18
18 namespace http_server { 19 namespace http_server {
19 20
20 namespace { 21 namespace {
21 void WriteMessageToDataPipe( 22 void WriteMessageToDataPipe(
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 std::string response_body; 123 std::string response_body;
123 mojo::common::BlockingCopyToString(response->body.Pass(), &response_body); 124 mojo::common::BlockingCopyToString(response->body.Pass(), &response_body);
124 EXPECT_EQ(kExampleMessage, response_body); 125 EXPECT_EQ(kExampleMessage, response_body);
125 base::MessageLoop::current()->Quit(); 126 base::MessageLoop::current()->Quit();
126 } 127 }
127 128
128 // Verifies that the server responds to http GET requests using example 129 // Verifies that the server responds to http GET requests using example
129 // GetHandler. 130 // GetHandler.
130 TEST_F(HttpServerApplicationTest, ServerResponse) { 131 TEST_F(HttpServerApplicationTest, ServerResponse) {
131 http_server::HttpServerPtr http_server; 132 http_server::HttpServerPtr http_server;
132 http_server_factory_->CreateHttpServer(GetProxy(&http_server).Pass(), 0u); 133 http_server_factory_->CreateHttpServer(GetProxy(&http_server).Pass(),
134 nullptr);
133 135
134 uint16_t assigned_port; 136 uint16_t assigned_port;
135 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; }); 137 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; });
136 http_server.WaitForIncomingMethodCall(); 138 http_server.WaitForIncomingMethodCall();
137 139
138 HttpHandlerPtr http_handler_ptr; 140 HttpHandlerPtr http_handler_ptr;
139 GetHandler handler(GetProxy(&http_handler_ptr).Pass()); 141 GetHandler handler(GetProxy(&http_handler_ptr).Pass());
140 142
141 // Set the test handler and wait for confirmation. 143 // Set the test handler and wait for confirmation.
142 http_server->SetHandler("/test", http_handler_ptr.Pass(), 144 http_server->SetHandler("/test", http_handler_ptr.Pass(),
143 [](bool result) { EXPECT_TRUE(result); }); 145 [](bool result) { EXPECT_TRUE(result); });
144 http_server.WaitForIncomingMethodCall(); 146 http_server.WaitForIncomingMethodCall();
145 147
146 mojo::URLLoaderPtr url_loader; 148 mojo::URLLoaderPtr url_loader;
147 network_service_->CreateURLLoader(GetProxy(&url_loader)); 149 network_service_->CreateURLLoader(GetProxy(&url_loader));
148 150
149 mojo::URLRequestPtr url_request = mojo::URLRequest::New(); 151 mojo::URLRequestPtr url_request = mojo::URLRequest::New();
150 url_request->url = 152 url_request->url =
151 base::StringPrintf("http://0.0.0.0:%u/test", assigned_port); 153 base::StringPrintf("http://0.0.0.0:%u/test", assigned_port);
152 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse)); 154 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse));
153 base::RunLoop run_loop; 155 base::RunLoop run_loop;
154 run_loop.Run(); 156 run_loop.Run();
155 } 157 }
156 158
157 // Verifies that the server correctly passes the POST request payload using 159 // Verifies that the server correctly passes the POST request payload using
158 // example PostHandler. 160 // example PostHandler.
159 TEST_F(HttpServerApplicationTest, PostData) { 161 TEST_F(HttpServerApplicationTest, PostData) {
160 http_server::HttpServerPtr http_server; 162 http_server::HttpServerPtr http_server;
161 http_server_factory_->CreateHttpServer(GetProxy(&http_server).Pass(), 0u); 163 http_server_factory_->CreateHttpServer(GetProxy(&http_server).Pass(),
164 nullptr);
162 165
163 uint16_t assigned_port; 166 uint16_t assigned_port;
164 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; }); 167 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; });
165 http_server.WaitForIncomingMethodCall(); 168 http_server.WaitForIncomingMethodCall();
166 169
167 HttpHandlerPtr http_handler_ptr; 170 HttpHandlerPtr http_handler_ptr;
168 PostHandler handler(GetProxy(&http_handler_ptr).Pass()); 171 PostHandler handler(GetProxy(&http_handler_ptr).Pass());
169 172
170 // Set the test handler and wait for confirmation. 173 // Set the test handler and wait for confirmation.
171 http_server->SetHandler("/post", http_handler_ptr.Pass(), 174 http_server->SetHandler("/post", http_handler_ptr.Pass(),
172 [](bool result) { EXPECT_TRUE(result); }); 175 [](bool result) { EXPECT_TRUE(result); });
173 http_server.WaitForIncomingMethodCall(); 176 http_server.WaitForIncomingMethodCall();
174 177
175 mojo::URLLoaderPtr url_loader; 178 mojo::URLLoaderPtr url_loader;
176 network_service_->CreateURLLoader(GetProxy(&url_loader)); 179 network_service_->CreateURLLoader(GetProxy(&url_loader));
177 180
178 mojo::URLRequestPtr url_request = mojo::URLRequest::New(); 181 mojo::URLRequestPtr url_request = mojo::URLRequest::New();
179 url_request->url = 182 url_request->url =
180 base::StringPrintf("http://0.0.0.0:%u/post", assigned_port); 183 base::StringPrintf("http://0.0.0.0:%u/post", assigned_port);
181 url_request->method = "POST"; 184 url_request->method = "POST";
182 url_request->body.resize(1); 185 url_request->body.resize(1);
183 WriteMessageToDataPipe(kExampleMessage, &url_request->body[0]); 186 WriteMessageToDataPipe(kExampleMessage, &url_request->body[0]);
184 187
185 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse)); 188 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse));
186 base::RunLoop run_loop; 189 base::RunLoop run_loop;
187 run_loop.Run(); 190 run_loop.Run();
188 } 191 }
189 192
190 } // namespace http_server 193 } // namespace http_server
OLDNEW
« no previous file with comments | « examples/http_handler/http_handler.cc ('k') | services/http_server/http_server_factory_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698