Chromium Code Reviews| 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/test/test_timeouts.h" | 8 #include "base/test/test_timeouts.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "content/public/common/content_switches.h" | 10 #include "content/public/common/content_switches.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 117 net::TestServer test_server(net::TestServer::TYPE_HTTP, web_dir); | 117 net::TestServer test_server(net::TestServer::TYPE_HTTP, web_dir); |
| 118 ASSERT_TRUE(test_server.Start()); | 118 ASSERT_TRUE(test_server.Start()); |
| 119 std::string query = BuildQuery("files/test_case.html?", test_case); | 119 std::string query = BuildQuery("files/test_case.html?", test_case); |
| 120 | 120 |
| 121 scoped_refptr<TabProxy> tab = GetActiveTab(); | 121 scoped_refptr<TabProxy> tab = GetActiveTab(); |
| 122 GURL url = test_server.GetURL(query); | 122 GURL url = test_server.GetURL(query); |
| 123 EXPECT_TRUE(tab->NavigateToURLBlockUntilNavigationsComplete(url, 1)); | 123 EXPECT_TRUE(tab->NavigateToURLBlockUntilNavigationsComplete(url, 1)); |
| 124 RunTestURL(tab, url); | 124 RunTestURL(tab, url); |
| 125 } | 125 } |
| 126 | 126 |
| 127 void RunTestWithWebSocketServer(const std::string& test_case) { | 127 void RunTestWithWebSocketServer(const std::string& test_case, |
| 128 bool via_http) { | |
| 128 FilePath websocket_root_dir; | 129 FilePath websocket_root_dir; |
| 129 ASSERT_TRUE( | 130 ASSERT_TRUE( |
| 130 PathService::Get(chrome::DIR_LAYOUT_TESTS, &websocket_root_dir)); | 131 PathService::Get(chrome::DIR_LAYOUT_TESTS, &websocket_root_dir)); |
| 131 // TODO(toyoshim): Remove following logging after a bug investigation. | 132 // TODO(toyoshim): Remove following logging after a bug investigation. |
| 132 // http://crbug.com/107836 . | 133 // http://crbug.com/107836 . |
| 133 LOG(INFO) << "Assume LayoutTests in " << websocket_root_dir.MaybeAsASCII(); | 134 LOG(INFO) << "Assume LayoutTests in " << websocket_root_dir.MaybeAsASCII(); |
| 134 | 135 |
| 135 ui_test_utils::TestWebSocketServer server; | 136 ui_test_utils::TestWebSocketServer server; |
| 136 ASSERT_TRUE(server.Start(websocket_root_dir)); | 137 ASSERT_TRUE(server.Start(websocket_root_dir)); |
| 137 RunTest(test_case); | 138 if (via_http) |
| 139 RunTestViaHTTP(test_case); | |
|
dmichael (off chromium)
2012/01/17 23:32:45
I'm fine with this way, but couldn't you also just
Takashi Toyoshima
2012/01/18 11:07:16
Yes, I can. Is it make things simple?
Done.
| |
| 140 else | |
| 141 RunTest(test_case); | |
| 138 } | 142 } |
| 139 | 143 |
| 140 std::string StripPrefixes(const std::string& test_name) { | 144 std::string StripPrefixes(const std::string& test_name) { |
| 141 const char* const prefixes[] = { "FAILS_", "FLAKY_", "DISABLED_" }; | 145 const char* const prefixes[] = { "FAILS_", "FLAKY_", "DISABLED_" }; |
| 142 for (size_t i = 0; i < sizeof(prefixes)/sizeof(prefixes[0]); ++i) | 146 for (size_t i = 0; i < sizeof(prefixes)/sizeof(prefixes[0]); ++i) |
| 143 if (test_name.find(prefixes[i]) == 0) | 147 if (test_name.find(prefixes[i]) == 0) |
| 144 return test_name.substr(strlen(prefixes[i])); | 148 return test_name.substr(strlen(prefixes[i])); |
| 145 return test_name; | 149 return test_name; |
| 146 } | 150 } |
| 147 | 151 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 286 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ | 290 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ |
| 287 } | 291 } |
| 288 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \ | 292 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \ |
| 289 TEST_F(OutOfProcessPPAPITest, test_name) { \ | 293 TEST_F(OutOfProcessPPAPITest, test_name) { \ |
| 290 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ | 294 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ |
| 291 } | 295 } |
| 292 | 296 |
| 293 // Similar macros that test with WebSocket server | 297 // Similar macros that test with WebSocket server |
| 294 #define TEST_PPAPI_IN_PROCESS_WITH_WS(test_name) \ | 298 #define TEST_PPAPI_IN_PROCESS_WITH_WS(test_name) \ |
| 295 TEST_F(PPAPITest, test_name) { \ | 299 TEST_F(PPAPITest, test_name) { \ |
| 296 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \ | 300 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name), false); \ |
| 297 } | 301 } |
| 298 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_WS(test_name) \ | 302 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_WS(test_name) \ |
| 299 TEST_F(OutOfProcessPPAPITest, test_name) { \ | 303 TEST_F(OutOfProcessPPAPITest, test_name) { \ |
| 300 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \ | 304 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name), false); \ |
| 301 } | 305 } |
| 302 | 306 |
| 303 | 307 |
| 304 #if defined(DISABLE_NACL) | 308 #if defined(DISABLE_NACL) |
| 305 #define TEST_PPAPI_NACL_VIA_HTTP(test_name) | 309 #define TEST_PPAPI_NACL_VIA_HTTP(test_name) |
| 306 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) | 310 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) |
| 311 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name) | |
| 307 #else | 312 #else |
| 308 | 313 |
| 309 // NaCl based PPAPI tests | 314 // NaCl based PPAPI tests |
| 310 #define TEST_PPAPI_NACL_VIA_HTTP(test_name) \ | 315 #define TEST_PPAPI_NACL_VIA_HTTP(test_name) \ |
| 311 TEST_F(PPAPINaClTest, test_name) { \ | 316 TEST_F(PPAPINaClTest, test_name) { \ |
| 312 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ | 317 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ |
| 313 } | 318 } |
| 314 | 319 |
| 315 // NaCl based PPAPI tests with disallowed socket API | 320 // NaCl based PPAPI tests with disallowed socket API |
| 316 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) \ | 321 #define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) \ |
| 317 TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \ | 322 TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \ |
| 318 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ | 323 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \ |
| 319 } | 324 } |
| 325 | |
| 326 // NaCl based PPAPI tests with WebSocket server | |
| 327 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name) \ | |
| 328 TEST_F(PPAPINaClTest, test_name) { \ | |
| 329 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name), true); \ | |
| 330 } | |
| 320 #endif | 331 #endif |
| 321 | 332 |
| 322 | 333 |
| 323 // | 334 // |
| 324 // Interface tests. | 335 // Interface tests. |
| 325 // | 336 // |
| 326 | 337 |
| 327 // Disable tests under ASAN. http://crbug.com/104832. | 338 // Disable tests under ASAN. http://crbug.com/104832. |
| 328 // This is a bit heavy handed, but the majority of these tests fail under ASAN. | 339 // This is a bit heavy handed, but the majority of these tests fail under ASAN. |
| 329 // See bug for history. | 340 // See bug for history. |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 675 TEST_PPAPI_IN_PROCESS(WebSocket_Protocols) | 686 TEST_PPAPI_IN_PROCESS(WebSocket_Protocols) |
| 676 TEST_PPAPI_IN_PROCESS(WebSocket_GetURL) | 687 TEST_PPAPI_IN_PROCESS(WebSocket_GetURL) |
| 677 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidConnect) | 688 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidConnect) |
| 678 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_InvalidClose) | 689 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_InvalidClose) |
| 679 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidClose) | 690 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidClose) |
| 680 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_GetProtocol) | 691 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_GetProtocol) |
| 681 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_TextSendReceive) | 692 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_TextSendReceive) |
| 682 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BinarySendReceive) | 693 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BinarySendReceive) |
| 683 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BufferedAmount) | 694 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BufferedAmount) |
| 684 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_CcInterfaces) | 695 TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_CcInterfaces) |
| 696 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_IsWebSocket) | |
| 697 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UninitializedPropertiesAccess) | |
| 698 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_InvalidConnect) | |
| 699 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_Protocols) | |
| 700 TEST_PPAPI_NACL_VIA_HTTP(WebSocket_GetURL) | |
| 701 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidConnect) | |
| 702 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_InvalidClose) | |
| 703 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidClose) | |
| 704 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_GetProtocol) | |
| 705 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_TextSendReceive) | |
| 706 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BinarySendReceive) | |
| 707 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BufferedAmount) | |
| 708 TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_CcInterfaces) | |
| 685 | 709 |
| 686 TEST_PPAPI_IN_PROCESS(AudioConfig_ValidConfigs) | 710 TEST_PPAPI_IN_PROCESS(AudioConfig_ValidConfigs) |
| 687 TEST_PPAPI_IN_PROCESS(AudioConfig_InvalidConfigs) | 711 TEST_PPAPI_IN_PROCESS(AudioConfig_InvalidConfigs) |
| 688 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_ValidConfigs) | 712 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_ValidConfigs) |
| 689 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_InvalidConfigs) | 713 TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_InvalidConfigs) |
| 690 | 714 |
| 691 TEST_PPAPI_IN_PROCESS(Audio_Creation) | 715 TEST_PPAPI_IN_PROCESS(Audio_Creation) |
| 692 TEST_PPAPI_IN_PROCESS(Audio_DestroyNoStop) | 716 TEST_PPAPI_IN_PROCESS(Audio_DestroyNoStop) |
| 693 TEST_PPAPI_IN_PROCESS(Audio_Failures) | 717 TEST_PPAPI_IN_PROCESS(Audio_Failures) |
| 694 TEST_PPAPI_OUT_OF_PROCESS(Audio_Creation) | 718 TEST_PPAPI_OUT_OF_PROCESS(Audio_Creation) |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 755 TEST_PPAPI_IN_PROCESS(ResourceArray_Basics) | 779 TEST_PPAPI_IN_PROCESS(ResourceArray_Basics) |
| 756 TEST_PPAPI_IN_PROCESS(ResourceArray_OutOfRangeAccess) | 780 TEST_PPAPI_IN_PROCESS(ResourceArray_OutOfRangeAccess) |
| 757 TEST_PPAPI_IN_PROCESS(ResourceArray_EmptyArray) | 781 TEST_PPAPI_IN_PROCESS(ResourceArray_EmptyArray) |
| 758 TEST_PPAPI_IN_PROCESS(ResourceArray_InvalidElement) | 782 TEST_PPAPI_IN_PROCESS(ResourceArray_InvalidElement) |
| 759 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_Basics) | 783 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_Basics) |
| 760 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_OutOfRangeAccess) | 784 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_OutOfRangeAccess) |
| 761 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_EmptyArray) | 785 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_EmptyArray) |
| 762 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_InvalidElement) | 786 TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_InvalidElement) |
| 763 | 787 |
| 764 #endif // ADDRESS_SANITIZER | 788 #endif // ADDRESS_SANITIZER |
| OLD | NEW |