Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 #include "chrome/common/chrome_switches.h" | 9 #include "chrome/common/chrome_switches.h" |
| 10 #include "chrome/test/automation/tab_proxy.h" | 10 #include "chrome/test/automation/tab_proxy.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 83 RunTestURL( | 83 RunTestURL( |
| 84 test_server.GetURL("files/test_case.html?testcase=" + test_case)); | 84 test_server.GetURL("files/test_case.html?testcase=" + test_case)); |
| 85 } | 85 } |
| 86 | 86 |
| 87 private: | 87 private: |
| 88 void RunTestURL(const GURL& test_url) { | 88 void RunTestURL(const GURL& test_url) { |
| 89 scoped_refptr<TabProxy> tab(GetActiveTab()); | 89 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 90 ASSERT_TRUE(tab.get()); | 90 ASSERT_TRUE(tab.get()); |
| 91 ASSERT_TRUE(tab->NavigateToURL(test_url)); | 91 ASSERT_TRUE(tab->NavigateToURL(test_url)); |
| 92 | 92 |
| 93 // First wait for the "starting" signal. This cookie is set at the start | 93 // See comment above TestingInstance in the ppapi test plugin. Basically |
|
polina
2011/08/22 23:53:58
a file path would be useful here
| |
| 94 // of every test. Waiting for this separately allows us to avoid a single | 94 // it sets a series of numbered cookies. The value of "..." means it's |
| 95 // long timeout. Instead, we can have two timeouts which allow startup + | 95 // still working and we should continue to wait, any other value indicates |
| 96 // test execution time to take a while on a loaded computer, while also | 96 // completion (in this case it will start with "PASS" or "FAIL". This |
| 97 // making sure we're making forward progress. | 97 // keeps us from timing out on cookie waits for long tests. |
|
polina
2011/08/22 23:53:58
missing closing ")"
| |
| 98 std::string startup_cookie = | 98 int progress_number = 0; |
| 99 WaitUntilCookieNonEmpty(tab.get(), test_url, | 99 std::string progress; |
| 100 "STARTUP_COOKIE", TestTimeouts::action_max_timeout_ms()); | 100 while (true) { |
|
Paweł Hajdan Jr.
2011/08/18 22:45:13
NOOOOOOO! If you need a loop, you're doing it wron
Paweł Hajdan Jr.
2011/08/18 22:47:20
Ooops, please ignore my earlier comment. It's not
| |
| 101 std::string cookie_name = StringPrintf("PPAPI_PROGRESS_%d", | |
|
polina
2011/08/22 23:53:58
Is it not an option to share "PPAPI_PROGRESS", "..
brettw
2011/08/24 16:42:17
Unfortunately, there's no code in common between t
| |
| 102 progress_number); | |
| 103 progress = WaitUntilCookieNonEmpty(tab.get(), test_url, | |
| 104 cookie_name.c_str(), TestTimeouts::large_test_timeout_ms()); | |
| 105 if (progress != "...") | |
| 106 break; | |
| 107 progress_number++; | |
| 108 } | |
| 101 | 109 |
| 102 // If this fails, the plugin couldn't be loaded in the given amount of | 110 if (progress_number == 0) { |
| 103 // time. This may mean the plugin was not found or possibly the system | 111 // Failing the first time probably means the plugin wasn't loaded. |
| 104 // can't load it due to missing symbols, etc. | 112 ASSERT_FALSE(progress.empty()) |
| 105 ASSERT_STREQ("STARTED", startup_cookie.c_str()) | 113 << "Plugin couldn't be loaded. Make sure the PPAPI test plugin is " |
| 106 << "Plugin couldn't be loaded. Make sure the PPAPI test plugin is " | 114 << "built, in the right place, and doesn't have any missing symbols."; |
| 107 << "built, in the right place, and doesn't have any missing symbols."; | 115 } else { |
| 116 ASSERT_FALSE(progress.empty()) << "Test timed out."; | |
| 117 } | |
| 108 | 118 |
| 109 std::string escaped_value = | 119 EXPECT_STREQ("PASS", progress.c_str()); |
| 110 WaitUntilCookieNonEmpty(tab.get(), test_url, | |
| 111 "COMPLETION_COOKIE", TestTimeouts::large_test_timeout_ms()); | |
| 112 EXPECT_STREQ("PASS", escaped_value.c_str()); | |
| 113 } | 120 } |
| 114 }; | 121 }; |
| 115 | 122 |
| 116 // Variant of PPAPITest that runs plugins out-of-process to test proxy | 123 // Variant of PPAPITest that runs plugins out-of-process to test proxy |
| 117 // codepaths. | 124 // codepaths. |
| 118 class OutOfProcessPPAPITest : public PPAPITest { | 125 class OutOfProcessPPAPITest : public PPAPITest { |
| 119 public: | 126 public: |
| 120 OutOfProcessPPAPITest() { | 127 OutOfProcessPPAPITest() { |
| 121 // Run PPAPI out-of-process to exercise proxy implementations. | 128 // Run PPAPI out-of-process to exercise proxy implementations. |
| 122 launch_arguments_.AppendSwitch(switches::kPpapiOutOfProcess); | 129 launch_arguments_.AppendSwitch(switches::kPpapiOutOfProcess); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 TEST_F(OutOfProcessPPAPITest, FAILS_Transport) { | 272 TEST_F(OutOfProcessPPAPITest, FAILS_Transport) { |
| 266 RunTestViaHTTP("Transport"); | 273 RunTestViaHTTP("Transport"); |
| 267 } | 274 } |
| 268 #endif // ENABLE_P2P_APIS | 275 #endif // ENABLE_P2P_APIS |
| 269 | 276 |
| 270 TEST_PPAPI_IN_PROCESS(UMA) | 277 TEST_PPAPI_IN_PROCESS(UMA) |
| 271 // There is no proxy. | 278 // There is no proxy. |
| 272 TEST_F(OutOfProcessPPAPITest, FAILS_UMA) { | 279 TEST_F(OutOfProcessPPAPITest, FAILS_UMA) { |
| 273 RunTest("UMA"); | 280 RunTest("UMA"); |
| 274 } | 281 } |
| OLD | NEW |