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

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

Issue 1150563003: Rename InterfacePtr's WaitForIncomingMethodCall() -> WaitForIncomingResponse(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 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
« no previous file with comments | « services/files/files_test_base.cc ('k') | services/js/echo_apptest.cc » ('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"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 } // namespace 43 } // namespace
44 44
45 // Test handler that responds to all requests with the status OK and 45 // Test handler that responds to all requests with the status OK and
46 // kExampleMessage. 46 // kExampleMessage.
47 class GetHandler : public http_server::HttpHandler { 47 class GetHandler : public http_server::HttpHandler {
48 public: 48 public:
49 GetHandler(mojo::InterfaceRequest<HttpHandler> request) 49 GetHandler(mojo::InterfaceRequest<HttpHandler> request)
50 : binding_(this, request.Pass()) {} 50 : binding_(this, request.Pass()) {}
51 ~GetHandler() override {} 51 ~GetHandler() override {}
52 52
53 bool WaitForIncomingMethodCall() {
54 return binding_.WaitForIncomingMethodCall();
55 }
56
57 private: 53 private:
58 // http_server::HttpHandler: 54 // http_server::HttpHandler:
59 void HandleRequest(http_server::HttpRequestPtr request, 55 void HandleRequest(http_server::HttpRequestPtr request,
60 const mojo::Callback<void(http_server::HttpResponsePtr)>& 56 const mojo::Callback<void(http_server::HttpResponsePtr)>&
61 callback) override { 57 callback) override {
62 callback.Run(http_server::CreateHttpResponse(200, kExampleMessage)); 58 callback.Run(http_server::CreateHttpResponse(200, kExampleMessage));
63 } 59 }
64 60
65 mojo::Binding<http_server::HttpHandler> binding_; 61 mojo::Binding<http_server::HttpHandler> binding_;
66 62
67 MOJO_DISALLOW_COPY_AND_ASSIGN(GetHandler); 63 MOJO_DISALLOW_COPY_AND_ASSIGN(GetHandler);
68 }; 64 };
69 65
70 // Test handler that responds to POST requests with the status OK and message 66 // Test handler that responds to POST requests with the status OK and message
71 // read from the payload of the request. 67 // read from the payload of the request.
72 class PostHandler : public http_server::HttpHandler { 68 class PostHandler : public http_server::HttpHandler {
73 public: 69 public:
74 PostHandler(mojo::InterfaceRequest<HttpHandler> request) 70 PostHandler(mojo::InterfaceRequest<HttpHandler> request)
75 : binding_(this, request.Pass()) {} 71 : binding_(this, request.Pass()) {}
76 ~PostHandler() override {} 72 ~PostHandler() override {}
77 73
78 bool WaitForIncomingMethodCall() {
79 return binding_.WaitForIncomingMethodCall();
80 }
81
82 private: 74 private:
83 // http_server::HttpHandler: 75 // http_server::HttpHandler:
84 void HandleRequest(http_server::HttpRequestPtr request, 76 void HandleRequest(http_server::HttpRequestPtr request,
85 const mojo::Callback<void(http_server::HttpResponsePtr)>& 77 const mojo::Callback<void(http_server::HttpResponsePtr)>&
86 callback) override { 78 callback) override {
87 DCHECK_EQ("POST", request->method); 79 DCHECK_EQ("POST", request->method);
88 std::string message; 80 std::string message;
89 mojo::common::BlockingCopyToString(request->body.Pass(), &message); 81 mojo::common::BlockingCopyToString(request->body.Pass(), &message);
90 callback.Run(http_server::CreateHttpResponse(200, message)); 82 callback.Run(http_server::CreateHttpResponse(200, message));
91 } 83 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 EXPECT_EQ(kExampleMessage, response_body); 135 EXPECT_EQ(kExampleMessage, response_body);
144 base::MessageLoop::current()->Quit(); 136 base::MessageLoop::current()->Quit();
145 } 137 }
146 138
147 // Verifies that the server responds to http GET requests using example 139 // Verifies that the server responds to http GET requests using example
148 // GetHandler. 140 // GetHandler.
149 TEST_F(HttpServerApplicationTest, ServerResponse) { 141 TEST_F(HttpServerApplicationTest, ServerResponse) {
150 http_server::HttpServerPtr http_server(CreateHttpServer()); 142 http_server::HttpServerPtr http_server(CreateHttpServer());
151 uint16_t assigned_port; 143 uint16_t assigned_port;
152 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; }); 144 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; });
153 http_server.WaitForIncomingMethodCall(); 145 http_server.WaitForIncomingResponse();
154 146
155 HttpHandlerPtr http_handler_ptr; 147 HttpHandlerPtr http_handler_ptr;
156 GetHandler handler(GetProxy(&http_handler_ptr).Pass()); 148 GetHandler handler(GetProxy(&http_handler_ptr).Pass());
157 149
158 // Set the test handler and wait for confirmation. 150 // Set the test handler and wait for confirmation.
159 http_server->SetHandler("/test", http_handler_ptr.Pass(), 151 http_server->SetHandler("/test", http_handler_ptr.Pass(),
160 [](bool result) { EXPECT_TRUE(result); }); 152 [](bool result) { EXPECT_TRUE(result); });
161 http_server.WaitForIncomingMethodCall(); 153 http_server.WaitForIncomingResponse();
162 154
163 mojo::URLLoaderPtr url_loader; 155 mojo::URLLoaderPtr url_loader;
164 network_service_->CreateURLLoader(GetProxy(&url_loader)); 156 network_service_->CreateURLLoader(GetProxy(&url_loader));
165 157
166 mojo::URLRequestPtr url_request = mojo::URLRequest::New(); 158 mojo::URLRequestPtr url_request = mojo::URLRequest::New();
167 url_request->url = 159 url_request->url =
168 base::StringPrintf("http://127.0.0.1:%u/test", assigned_port); 160 base::StringPrintf("http://127.0.0.1:%u/test", assigned_port);
169 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse)); 161 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse));
170 base::RunLoop run_loop; 162 base::RunLoop run_loop;
171 run_loop.Run(); 163 run_loop.Run();
172 } 164 }
173 165
174 // Verifies that the server correctly passes the POST request payload using 166 // Verifies that the server correctly passes the POST request payload using
175 // example PostHandler. 167 // example PostHandler.
176 TEST_F(HttpServerApplicationTest, PostData) { 168 TEST_F(HttpServerApplicationTest, PostData) {
177 http_server::HttpServerPtr http_server(CreateHttpServer()); 169 http_server::HttpServerPtr http_server(CreateHttpServer());
178 uint16_t assigned_port; 170 uint16_t assigned_port;
179 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; }); 171 http_server->GetPort([&assigned_port](uint16_t p) { assigned_port = p; });
180 http_server.WaitForIncomingMethodCall(); 172 http_server.WaitForIncomingResponse();
181 173
182 HttpHandlerPtr http_handler_ptr; 174 HttpHandlerPtr http_handler_ptr;
183 PostHandler handler(GetProxy(&http_handler_ptr).Pass()); 175 PostHandler handler(GetProxy(&http_handler_ptr).Pass());
184 176
185 // Set the test handler and wait for confirmation. 177 // Set the test handler and wait for confirmation.
186 http_server->SetHandler("/post", http_handler_ptr.Pass(), 178 http_server->SetHandler("/post", http_handler_ptr.Pass(),
187 [](bool result) { EXPECT_TRUE(result); }); 179 [](bool result) { EXPECT_TRUE(result); });
188 http_server.WaitForIncomingMethodCall(); 180 http_server.WaitForIncomingResponse();
189 181
190 mojo::URLLoaderPtr url_loader; 182 mojo::URLLoaderPtr url_loader;
191 network_service_->CreateURLLoader(GetProxy(&url_loader)); 183 network_service_->CreateURLLoader(GetProxy(&url_loader));
192 184
193 mojo::URLRequestPtr url_request = mojo::URLRequest::New(); 185 mojo::URLRequestPtr url_request = mojo::URLRequest::New();
194 url_request->url = 186 url_request->url =
195 base::StringPrintf("http://127.0.0.1:%u/post", assigned_port); 187 base::StringPrintf("http://127.0.0.1:%u/post", assigned_port);
196 url_request->method = "POST"; 188 url_request->method = "POST";
197 url_request->body.resize(1); 189 url_request->body.resize(1);
198 WriteMessageToDataPipe(kExampleMessage, &url_request->body[0]); 190 WriteMessageToDataPipe(kExampleMessage, &url_request->body[0]);
199 191
200 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse)); 192 url_loader->Start(url_request.Pass(), base::Bind(&CheckServerResponse));
201 base::RunLoop run_loop; 193 base::RunLoop run_loop;
202 run_loop.Run(); 194 run_loop.Run();
203 } 195 }
204 196
205 } // namespace http_server 197 } // namespace http_server
OLDNEW
« no previous file with comments | « services/files/files_test_base.cc ('k') | services/js/echo_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698