OLD | NEW |
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 "chrome/test/ppapi/ppapi_test.h" | 5 #include "chrome/test/ppapi/ppapi_test.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 | 159 |
160 void PPAPITestBase::RunTestAndReload(const std::string& test_case) { | 160 void PPAPITestBase::RunTestAndReload(const std::string& test_case) { |
161 GURL url = GetTestFileUrl(test_case); | 161 GURL url = GetTestFileUrl(test_case); |
162 RunTestURL(url); | 162 RunTestURL(url); |
163 // If that passed, we simply run the test again, which navigates again. | 163 // If that passed, we simply run the test again, which navigates again. |
164 RunTestURL(url); | 164 RunTestURL(url); |
165 } | 165 } |
166 | 166 |
167 void PPAPITestBase::RunTestViaHTTP(const std::string& test_case) { | 167 void PPAPITestBase::RunTestViaHTTP(const std::string& test_case) { |
168 FilePath document_root; | 168 FilePath document_root; |
169 ASSERT_TRUE(GetHTTPDocumentRoot(&document_root)); | 169 ASSERT_TRUE(ui_test_utils::GetRelativeBuildDirectory(&document_root)); |
170 RunHTTPTestServer(document_root, test_case, ""); | 170 RunHTTPTestServer(document_root, test_case, ""); |
171 } | 171 } |
172 | 172 |
173 void PPAPITestBase::RunTestWithSSLServer(const std::string& test_case) { | 173 void PPAPITestBase::RunTestWithSSLServer(const std::string& test_case) { |
174 FilePath document_root; | 174 FilePath document_root; |
175 ASSERT_TRUE(GetHTTPDocumentRoot(&document_root)); | 175 ASSERT_TRUE(ui_test_utils::GetRelativeBuildDirectory(&document_root)); |
176 net::TestServer test_server(net::BaseTestServer::HTTPSOptions(), | 176 net::TestServer test_server(net::BaseTestServer::HTTPSOptions(), |
177 document_root); | 177 document_root); |
178 ASSERT_TRUE(test_server.Start()); | 178 ASSERT_TRUE(test_server.Start()); |
179 uint16_t port = test_server.host_port_pair().port(); | 179 uint16_t port = test_server.host_port_pair().port(); |
180 RunHTTPTestServer(document_root, test_case, | 180 RunHTTPTestServer(document_root, test_case, |
181 StringPrintf("ssl_server_port=%d", port)); | 181 StringPrintf("ssl_server_port=%d", port)); |
182 } | 182 } |
183 | 183 |
184 void PPAPITestBase::RunTestWithWebSocketServer(const std::string& test_case) { | 184 void PPAPITestBase::RunTestWithWebSocketServer(const std::string& test_case) { |
185 FilePath websocket_root_dir; | 185 FilePath websocket_root_dir; |
186 ASSERT_TRUE( | 186 ASSERT_TRUE( |
187 PathService::Get(content::DIR_LAYOUT_TESTS, &websocket_root_dir)); | 187 PathService::Get(content::DIR_LAYOUT_TESTS, &websocket_root_dir)); |
188 content::TestWebSocketServer server; | 188 content::TestWebSocketServer server; |
189 int port = server.UseRandomPort(); | 189 int port = server.UseRandomPort(); |
190 ASSERT_TRUE(server.Start(websocket_root_dir)); | 190 ASSERT_TRUE(server.Start(websocket_root_dir)); |
191 FilePath http_document_root; | 191 FilePath http_document_root; |
192 ASSERT_TRUE(GetHTTPDocumentRoot(&http_document_root)); | 192 ASSERT_TRUE(ui_test_utils::GetRelativeBuildDirectory(&http_document_root)); |
193 RunHTTPTestServer(http_document_root, test_case, | 193 RunHTTPTestServer(http_document_root, test_case, |
194 StringPrintf("websocket_port=%d", port)); | 194 StringPrintf("websocket_port=%d", port)); |
195 } | 195 } |
196 | 196 |
197 void PPAPITestBase::RunTestIfAudioOutputAvailable( | 197 void PPAPITestBase::RunTestIfAudioOutputAvailable( |
198 const std::string& test_case) { | 198 const std::string& test_case) { |
199 if (IsAudioOutputAvailable()) { | 199 if (IsAudioOutputAvailable()) { |
200 RunTest(test_case); | 200 RunTest(test_case); |
201 } else { | 201 } else { |
202 LOG(WARNING) << "PPAPITest: " << test_case << | 202 LOG(WARNING) << "PPAPITest: " << test_case << |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 document_root); | 249 document_root); |
250 ASSERT_TRUE(test_server.Start()); | 250 ASSERT_TRUE(test_server.Start()); |
251 std::string query = BuildQuery("files/test_case.html?", test_case); | 251 std::string query = BuildQuery("files/test_case.html?", test_case); |
252 if (!extra_params.empty()) | 252 if (!extra_params.empty()) |
253 query = StringPrintf("%s&%s", query.c_str(), extra_params.c_str()); | 253 query = StringPrintf("%s&%s", query.c_str(), extra_params.c_str()); |
254 | 254 |
255 GURL url = test_server.GetURL(query); | 255 GURL url = test_server.GetURL(query); |
256 RunTestURL(url); | 256 RunTestURL(url); |
257 } | 257 } |
258 | 258 |
259 bool PPAPITestBase::GetHTTPDocumentRoot(FilePath* document_root) { | |
260 // For HTTP tests, we use the output DIR to grab the generated files such | |
261 // as the NEXEs. | |
262 FilePath exe_dir = CommandLine::ForCurrentProcess()->GetProgram().DirName(); | |
263 FilePath src_dir; | |
264 if (!PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)) | |
265 return false; | |
266 | |
267 // TestServer expects a path relative to source. So we must first | |
268 // generate absolute paths to SRC and EXE and from there generate | |
269 // a relative path. | |
270 if (!exe_dir.IsAbsolute()) file_util::AbsolutePath(&exe_dir); | |
271 if (!src_dir.IsAbsolute()) file_util::AbsolutePath(&src_dir); | |
272 if (!exe_dir.IsAbsolute()) | |
273 return false; | |
274 if (!src_dir.IsAbsolute()) | |
275 return false; | |
276 | |
277 size_t match, exe_size, src_size; | |
278 std::vector<FilePath::StringType> src_parts, exe_parts; | |
279 | |
280 // Determine point at which src and exe diverge, and create a relative path. | |
281 exe_dir.GetComponents(&exe_parts); | |
282 src_dir.GetComponents(&src_parts); | |
283 exe_size = exe_parts.size(); | |
284 src_size = src_parts.size(); | |
285 for (match = 0; match < exe_size && match < src_size; ++match) { | |
286 if (exe_parts[match] != src_parts[match]) | |
287 break; | |
288 } | |
289 for (size_t tmp_itr = match; tmp_itr < src_size; ++tmp_itr) { | |
290 *document_root = document_root->Append(FILE_PATH_LITERAL("..")); | |
291 } | |
292 for (; match < exe_size; ++match) { | |
293 *document_root = document_root->Append(exe_parts[match]); | |
294 } | |
295 return true; | |
296 } | |
297 | |
298 PPAPITest::PPAPITest() { | 259 PPAPITest::PPAPITest() { |
299 } | 260 } |
300 | 261 |
301 void PPAPITest::SetUpCommandLine(CommandLine* command_line) { | 262 void PPAPITest::SetUpCommandLine(CommandLine* command_line) { |
302 PPAPITestBase::SetUpCommandLine(command_line); | 263 PPAPITestBase::SetUpCommandLine(command_line); |
303 | 264 |
304 // Append the switch to register the pepper plugin. | 265 // Append the switch to register the pepper plugin. |
305 // library name = <out dir>/<test_name>.<library_extension> | 266 // library name = <out dir>/<test_name>.<library_extension> |
306 // MIME type = application/x-ppapi-<test_name> | 267 // MIME type = application/x-ppapi-<test_name> |
307 FilePath plugin_dir; | 268 FilePath plugin_dir; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 } | 331 } |
371 | 332 |
372 // Append the correct mode and testcase string | 333 // Append the correct mode and testcase string |
373 std::string PPAPINaClTestDisallowedSockets::BuildQuery( | 334 std::string PPAPINaClTestDisallowedSockets::BuildQuery( |
374 const std::string& base, | 335 const std::string& base, |
375 const std::string& test_case) { | 336 const std::string& test_case) { |
376 return StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), | 337 return StringPrintf("%smode=nacl_newlib&testcase=%s", base.c_str(), |
377 test_case.c_str()); | 338 test_case.c_str()); |
378 } | 339 } |
379 | 340 |
OLD | NEW |