blob: 5e1721295ad64c3c8bbd69358851abf0b543b304 [file] [log] [blame]
[email protected]50a7f3a2012-01-05 14:30:501// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]37d06912010-05-20 20:00:312// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/file_util.h"
6#include "base/path_service.h"
[email protected]49c09c15d2010-12-10 02:46:037#include "base/test/test_timeouts.h"
[email protected]37d06912010-05-20 20:00:318#include "build/build_config.h"
[email protected]c08950d22011-10-13 22:20:299#include "content/public/common/content_switches.h"
[email protected]cee34b72011-11-18 21:52:4010#include "content/common/pepper_plugin_registry.h"
11#include "chrome/common/chrome_paths.h"
[email protected]37d06912010-05-20 20:00:3112#include "chrome/common/chrome_switches.h"
[email protected]09c37ba2012-01-05 18:00:3313#include "chrome/test/automation/browser_proxy.h"
[email protected]37d06912010-05-20 20:00:3114#include "chrome/test/automation/tab_proxy.h"
[email protected]efc3a40e2011-11-23 02:32:5115#include "chrome/test/base/ui_test_utils.h"
[email protected]37d06912010-05-20 20:00:3116#include "chrome/test/ui/ui_test.h"
[email protected]09c37ba2012-01-05 18:00:3317#include "content/public/common/url_constants.h"
[email protected]37d06912010-05-20 20:00:3118#include "net/base/net_util.h"
[email protected]3985ba82010-07-29 21:44:1219#include "net/test/test_server.h"
[email protected]0bd753682010-12-16 18:15:5220#include "webkit/plugins/plugin_switches.h"
[email protected]37d06912010-05-20 20:00:3121
22namespace {
23
[email protected]df4bdd02010-06-10 17:56:5324// Platform-specific filename relative to the chrome executable.
[email protected]37d06912010-05-20 20:00:3125#if defined(OS_WIN)
26const wchar_t library_name[] = L"ppapi_tests.dll";
27#elif defined(OS_MACOSX)
28const char library_name[] = "ppapi_tests.plugin";
29#elif defined(OS_POSIX)
[email protected]df4bdd02010-06-10 17:56:5330const char library_name[] = "libppapi_tests.so";
[email protected]37d06912010-05-20 20:00:3131#endif
32
33} // namespace
34
[email protected]cee34b72011-11-18 21:52:4035class PPAPITestBase : public UITest {
[email protected]37d06912010-05-20 20:00:3136 public:
[email protected]cee34b72011-11-18 21:52:4037 PPAPITestBase() {
[email protected]37d06912010-05-20 20:00:3138 // The test sends us the result via a cookie.
39 launch_arguments_.AppendSwitch(switches::kEnableFileCookies);
[email protected]6a2c9cb2010-06-11 20:47:5040
41 // Some stuff is hung off of the testing interface which is not enabled
42 // by default.
43 launch_arguments_.AppendSwitch(switches::kEnablePepperTesting);
[email protected]eff5e8882010-10-20 00:24:4644
[email protected]678e68a2011-09-01 15:23:5645 // Smooth scrolling confuses the scrollbar test.
46 launch_arguments_.AppendSwitch(switches::kDisableSmoothScrolling);
[email protected]37d06912010-05-20 20:00:3147 }
48
[email protected]cee34b72011-11-18 21:52:4049 virtual std::string BuildQuery(const std::string& base,
[email protected]09c37ba2012-01-05 18:00:3350 const std::string& test_case) = 0;
[email protected]cee34b72011-11-18 21:52:4051
[email protected]09c37ba2012-01-05 18:00:3352 // Returns the URL to load for file: tests.
53 GURL GetTestFileUrl(const std::string& test_case) {
[email protected]37d06912010-05-20 20:00:3154 FilePath test_path;
[email protected]cee34b72011-11-18 21:52:4055 EXPECT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &test_path));
[email protected]37d06912010-05-20 20:00:3156 test_path = test_path.Append(FILE_PATH_LITERAL("ppapi"));
57 test_path = test_path.Append(FILE_PATH_LITERAL("tests"));
[email protected]44d80ea2010-07-02 20:14:2558 test_path = test_path.Append(FILE_PATH_LITERAL("test_case.html"));
[email protected]37d06912010-05-20 20:00:3159
60 // Sanity check the file name.
61 EXPECT_TRUE(file_util::PathExists(test_path));
62
[email protected]09c37ba2012-01-05 18:00:3363 GURL test_url = net::FilePathToFileURL(test_path);
64
[email protected]44d80ea2010-07-02 20:14:2565 GURL::Replacements replacements;
[email protected]cee34b72011-11-18 21:52:4066 std::string query = BuildQuery("", test_case);
[email protected]ebc5c8be2011-05-20 22:52:5967 replacements.SetQuery(query.c_str(), url_parse::Component(0, query.size()));
[email protected]09c37ba2012-01-05 18:00:3368 return test_url.ReplaceComponents(replacements);
69 }
70
71 void RunTest(const std::string& test_case) {
72 scoped_refptr<TabProxy> tab = GetActiveTab();
73 EXPECT_TRUE(tab.get());
74 if (!tab.get())
75 return;
76 GURL url = GetTestFileUrl(test_case);
77 EXPECT_TRUE(tab->NavigateToURLBlockUntilNavigationsComplete(url, 1));
78 RunTestURL(tab, url);
[email protected]44d80ea2010-07-02 20:14:2579 }
80
81 void RunTestViaHTTP(const std::string& test_case) {
[email protected]cee34b72011-11-18 21:52:4082 // For HTTP tests, we use the output DIR to grab the generated files such
83 // as the NEXEs.
84 FilePath exe_dir = CommandLine::ForCurrentProcess()->GetProgram().DirName();
85 FilePath src_dir;
86 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir));
87
88 // TestServer expects a path relative to source. So we must first
89 // generate absolute paths to SRC and EXE and from there generate
90 // a relative path.
91 if (!exe_dir.IsAbsolute()) file_util::AbsolutePath(&exe_dir);
92 if (!src_dir.IsAbsolute()) file_util::AbsolutePath(&src_dir);
93 ASSERT_TRUE(exe_dir.IsAbsolute());
94 ASSERT_TRUE(src_dir.IsAbsolute());
95
96 size_t match, exe_size, src_size;
97 std::vector<FilePath::StringType> src_parts, exe_parts;
98
99 // Determine point at which src and exe diverge, and create a relative path.
100 exe_dir.GetComponents(&exe_parts);
101 src_dir.GetComponents(&src_parts);
102 exe_size = exe_parts.size();
103 src_size = src_parts.size();
104 for (match = 0; match < exe_size && match < src_size; ++match) {
105 if (exe_parts[match] != src_parts[match])
106 break;
107 }
108 FilePath web_dir;
109 for (size_t tmp_itr = match; tmp_itr < src_size; ++tmp_itr) {
110 web_dir = web_dir.Append(FILE_PATH_LITERAL(".."));
111 }
112 for (; match < exe_size; ++match) {
113 web_dir = web_dir.Append(exe_parts[match]);
114 }
115
116 net::TestServer test_server(net::TestServer::TYPE_HTTP, web_dir);
[email protected]95409e12010-08-17 20:07:11117 ASSERT_TRUE(test_server.Start());
[email protected]cee34b72011-11-18 21:52:40118 std::string query = BuildQuery("files/test_case.html?", test_case);
[email protected]09c37ba2012-01-05 18:00:33119
120 scoped_refptr<TabProxy> tab = GetActiveTab();
121 GURL url = test_server.GetURL(query);
122 EXPECT_TRUE(tab->NavigateToURLBlockUntilNavigationsComplete(url, 1));
123 RunTestURL(tab, url);
[email protected]44d80ea2010-07-02 20:14:25124 }
125
[email protected]efc3a40e2011-11-23 02:32:51126 void RunTestWithWebSocketServer(const std::string& test_case) {
127 FilePath websocket_root_dir;
128 ASSERT_TRUE(
129 PathService::Get(chrome::DIR_LAYOUT_TESTS, &websocket_root_dir));
130
131 ui_test_utils::TestWebSocketServer server;
132 ASSERT_TRUE(server.Start(websocket_root_dir));
[email protected]9082aa5b2012-01-19 08:44:47133 RunTestViaHTTP(test_case);
[email protected]efc3a40e2011-11-23 02:32:51134 }
135
[email protected]d4067422011-12-07 05:24:24136 std::string StripPrefixes(const std::string& test_name) {
137 const char* const prefixes[] = { "FAILS_", "FLAKY_", "DISABLED_" };
138 for (size_t i = 0; i < sizeof(prefixes)/sizeof(prefixes[0]); ++i)
139 if (test_name.find(prefixes[i]) == 0)
140 return test_name.substr(strlen(prefixes[i]));
141 return test_name;
142 }
143
[email protected]09c37ba2012-01-05 18:00:33144 protected:
145 // Runs the test for a tab given the tab that's already navigated to the
146 // given URL.
147 void RunTestURL(scoped_refptr<TabProxy> tab, const GURL& test_url) {
[email protected]37d06912010-05-20 20:00:31148 ASSERT_TRUE(tab.get());
[email protected]49c09c15d2010-12-10 02:46:03149
[email protected]451b1822011-12-21 13:00:48150 // The large timeout was causing the cycle time for the whole test suite
151 // to be too long when a tiny bug caused all tests to timeout.
152 // http://crbug.com/108264
153 int timeout_ms = 90000;
154 //int timeout_ms = TestTimeouts::large_test_timeout_ms());
155
[email protected]b46661f2011-08-25 01:42:53156 // See comment above TestingInstance in ppapi/test/testing_instance.h.
157 // Basically it sets a series of numbered cookies. The value of "..." means
158 // it's still working and we should continue to wait, any other value
159 // indicates completion (in this case it will start with "PASS" or "FAIL").
160 // This keeps us from timing out on cookie waits for long tests.
161 int progress_number = 0;
162 std::string progress;
163 while (true) {
164 std::string cookie_name = StringPrintf("PPAPI_PROGRESS_%d",
165 progress_number);
166 progress = WaitUntilCookieNonEmpty(tab.get(), test_url,
[email protected]451b1822011-12-21 13:00:48167 cookie_name.c_str(), timeout_ms);
[email protected]b46661f2011-08-25 01:42:53168 if (progress != "...")
169 break;
170 progress_number++;
171 }
[email protected]49c09c15d2010-12-10 02:46:03172
[email protected]b46661f2011-08-25 01:42:53173 if (progress_number == 0) {
174 // Failing the first time probably means the plugin wasn't loaded.
175 ASSERT_FALSE(progress.empty())
176 << "Plugin couldn't be loaded. Make sure the PPAPI test plugin is "
177 << "built, in the right place, and doesn't have any missing symbols.";
178 } else {
179 ASSERT_FALSE(progress.empty()) << "Test timed out.";
180 }
[email protected]49c09c15d2010-12-10 02:46:03181
[email protected]b46661f2011-08-25 01:42:53182 EXPECT_STREQ("PASS", progress.c_str());
[email protected]37d06912010-05-20 20:00:31183 }
184};
185
[email protected]cee34b72011-11-18 21:52:40186// In-process plugin test runner. See OutOfProcessPPAPITest below for the
187// out-of-process version.
188class PPAPITest : public PPAPITestBase {
189 public:
190 PPAPITest() {
191 // Append the switch to register the pepper plugin.
192 // library name = <out dir>/<test_name>.<library_extension>
193 // MIME type = application/x-ppapi-<test_name>
194 FilePath plugin_dir;
195 EXPECT_TRUE(PathService::Get(base::DIR_EXE, &plugin_dir));
196
197 FilePath plugin_lib = plugin_dir.Append(library_name);
198 EXPECT_TRUE(file_util::PathExists(plugin_lib));
199 FilePath::StringType pepper_plugin = plugin_lib.value();
200 pepper_plugin.append(FILE_PATH_LITERAL(";application/x-ppapi-tests"));
201 launch_arguments_.AppendSwitchNative(switches::kRegisterPepperPlugins,
202 pepper_plugin);
[email protected]ef5e98e2011-12-06 09:49:18203 launch_arguments_.AppendSwitchASCII(switches::kAllowNaClSocketAPI,
204 "127.0.0.1");
[email protected]cee34b72011-11-18 21:52:40205 }
206
207 std::string BuildQuery(const std::string& base,
208 const std::string& test_case){
209 return StringPrintf("%stestcase=%s", base.c_str(), test_case.c_str());
210 }
211
212};
213
[email protected]32523382011-06-10 02:30:00214// Variant of PPAPITest that runs plugins out-of-process to test proxy
215// codepaths.
216class OutOfProcessPPAPITest : public PPAPITest {
217 public:
218 OutOfProcessPPAPITest() {
219 // Run PPAPI out-of-process to exercise proxy implementations.
220 launch_arguments_.AppendSwitch(switches::kPpapiOutOfProcess);
221 }
222};
223
[email protected]cee34b72011-11-18 21:52:40224// NaCl plugin test runner.
225class PPAPINaClTest : public PPAPITestBase {
226 public:
227 PPAPINaClTest() {
228 FilePath plugin_lib;
229 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib));
230 EXPECT_TRUE(file_util::PathExists(plugin_lib));
231
232 // Enable running NaCl outside of the store.
233 launch_arguments_.AppendSwitch(switches::kEnableNaCl);
[email protected]ef5e98e2011-12-06 09:49:18234 launch_arguments_.AppendSwitchASCII(switches::kAllowNaClSocketAPI,
235 "127.0.0.1");
[email protected]cee34b72011-11-18 21:52:40236 }
237
238 // Append the correct mode and testcase string
239 std::string BuildQuery(const std::string& base,
240 const std::string& test_case) {
241 return StringPrintf("%smode=nacl&testcase=%s", base.c_str(),
242 test_case.c_str());
243 }
244};
245
[email protected]240502342011-12-22 20:07:49246class PPAPINaClTestDisallowedSockets : public PPAPITestBase {
247 public:
248 PPAPINaClTestDisallowedSockets() {
249 FilePath plugin_lib;
250 EXPECT_TRUE(PathService::Get(chrome::FILE_NACL_PLUGIN, &plugin_lib));
251 EXPECT_TRUE(file_util::PathExists(plugin_lib));
252
253 // Enable running NaCl outside of the store.
254 launch_arguments_.AppendSwitch(switches::kEnableNaCl);
255 }
256
257 // Append the correct mode and testcase string
258 std::string BuildQuery(const std::string& base,
259 const std::string& test_case) {
260 return StringPrintf("%smode=nacl&testcase=%s", base.c_str(),
261 test_case.c_str());
262 }
263};
264
[email protected]d4067422011-12-07 05:24:24265// This macro finesses macro expansion to do what we want.
266#define STRIP_PREFIXES(test_name) StripPrefixes(#test_name)
[email protected]cee34b72011-11-18 21:52:40267
[email protected]d8eba1a2011-07-20 21:41:55268// Use these macros to run the tests for a specific interface.
269// Most interfaces should be tested with both macros.
270#define TEST_PPAPI_IN_PROCESS(test_name) \
271 TEST_F(PPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24272 RunTest(STRIP_PREFIXES(test_name)); \
[email protected]d8eba1a2011-07-20 21:41:55273 }
274#define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
275 TEST_F(OutOfProcessPPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24276 RunTest(STRIP_PREFIXES(test_name)); \
[email protected]d8eba1a2011-07-20 21:41:55277 }
[email protected]9815108e2011-05-27 21:50:28278
[email protected]d8eba1a2011-07-20 21:41:55279// Similar macros that test over HTTP.
280#define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
281 TEST_F(PPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24282 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
[email protected]d8eba1a2011-07-20 21:41:55283 }
284#define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
285 TEST_F(OutOfProcessPPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24286 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
[email protected]d8eba1a2011-07-20 21:41:55287 }
[email protected]97f706c2011-07-11 20:32:53288
[email protected]31c1a7e2011-11-26 03:45:30289// Similar macros that test with WebSocket server
290#define TEST_PPAPI_IN_PROCESS_WITH_WS(test_name) \
291 TEST_F(PPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24292 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
[email protected]31c1a7e2011-11-26 03:45:30293 }
294#define TEST_PPAPI_OUT_OF_PROCESS_WITH_WS(test_name) \
295 TEST_F(OutOfProcessPPAPITest, test_name) { \
[email protected]d4067422011-12-07 05:24:24296 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
[email protected]31c1a7e2011-11-26 03:45:30297 }
298
299
[email protected]c1af406f2011-11-27 07:05:20300#if defined(DISABLE_NACL)
301#define TEST_PPAPI_NACL_VIA_HTTP(test_name)
[email protected]240502342011-12-22 20:07:49302#define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name)
[email protected]9082aa5b2012-01-19 08:44:47303#define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name)
[email protected]c1af406f2011-11-27 07:05:20304#else
[email protected]d8eba1a2011-07-20 21:41:55305
[email protected]cee34b72011-11-18 21:52:40306// NaCl based PPAPI tests
307#define TEST_PPAPI_NACL_VIA_HTTP(test_name) \
308 TEST_F(PPAPINaClTest, test_name) { \
[email protected]9082aa5b2012-01-19 08:44:47309 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
310 }
[email protected]240502342011-12-22 20:07:49311
312// NaCl based PPAPI tests with disallowed socket API
313#define TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(test_name) \
314 TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
[email protected]9082aa5b2012-01-19 08:44:47315 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
316 }
317
318// NaCl based PPAPI tests with WebSocket server
319#define TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(test_name) \
320 TEST_F(PPAPINaClTest, test_name) { \
321 RunTestWithWebSocketServer(STRIP_PREFIXES(test_name)); \
322 }
[email protected]c1af406f2011-11-27 07:05:20323#endif
324
[email protected]cee34b72011-11-18 21:52:40325
[email protected]d8eba1a2011-07-20 21:41:55326//
327// Interface tests.
328//
[email protected]d8eba1a2011-07-20 21:41:55329
[email protected]a9d504a2011-11-22 22:46:47330// Disable tests under ASAN. http://crbug.com/104832.
331// This is a bit heavy handed, but the majority of these tests fail under ASAN.
332// See bug for history.
333#if !defined(ADDRESS_SANITIZER)
334
[email protected]d8eba1a2011-07-20 21:41:55335TEST_PPAPI_IN_PROCESS(Broker)
[email protected]0caf2302012-02-14 21:35:25336// Flaky, http://crbug.com/111355
337TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
[email protected]d8eba1a2011-07-20 21:41:55338
339TEST_PPAPI_IN_PROCESS(Core)
340TEST_PPAPI_OUT_OF_PROCESS(Core)
341
[email protected]e62768f2011-12-20 17:51:34342// Times out on Linux. http://crbug.com/108180
343#if defined(OS_LINUX)
344#define MAYBE_CursorControl DISABLED_CursorControl
345#else
346#define MAYBE_CursorControl CursorControl
347#endif
348
349TEST_PPAPI_IN_PROCESS(MAYBE_CursorControl)
350TEST_PPAPI_OUT_OF_PROCESS(MAYBE_CursorControl)
351TEST_PPAPI_NACL_VIA_HTTP(MAYBE_CursorControl)
[email protected]9815108e2011-05-27 21:50:28352
[email protected]1f8b15f2011-12-30 12:45:09353// Times out on Linux. http://crbug.com/108859
354#if defined(OS_LINUX)
355#define MAYBE_InputEvent DISABLED_InputEvent
[email protected]50a7f3a2012-01-05 14:30:50356#elif defined(OS_MACOSX)
357// Flaky on Mac. http://crbug.com/109258
[email protected]0caf2302012-02-14 21:35:25358#define MAYBE_InputEvent DISABLED_InputEvent
[email protected]1f8b15f2011-12-30 12:45:09359#else
360#define MAYBE_InputEvent InputEvent
361#endif
362
363TEST_PPAPI_IN_PROCESS(MAYBE_InputEvent)
364TEST_PPAPI_OUT_OF_PROCESS(MAYBE_InputEvent)
[email protected]08610102011-12-17 14:24:30365// TODO(bbudge) Enable when input events are proxied correctly for NaCl.
366TEST_PPAPI_NACL_VIA_HTTP(DISABLED_InputEvent)
[email protected]ed33e2e2011-11-20 21:18:07367
[email protected]c4d5960e52011-07-21 21:47:43368TEST_PPAPI_IN_PROCESS(Instance)
[email protected]c74e095c2011-12-09 00:07:34369TEST_PPAPI_OUT_OF_PROCESS(Instance)
370// The Instance test is actually InstanceDeprecated which isn't supported
371// by NaCl.
[email protected]4d849c62010-09-02 16:00:12372
[email protected]d8eba1a2011-07-20 21:41:55373TEST_PPAPI_IN_PROCESS(Graphics2D)
[email protected]779a24a42011-09-13 05:41:58374TEST_PPAPI_OUT_OF_PROCESS(Graphics2D)
[email protected]cee34b72011-11-18 21:52:40375TEST_PPAPI_NACL_VIA_HTTP(Graphics2D)
[email protected]1559f512010-05-25 04:21:49376
[email protected]d8eba1a2011-07-20 21:41:55377TEST_PPAPI_IN_PROCESS(ImageData)
[email protected]c4d5960e52011-07-21 21:47:43378TEST_PPAPI_OUT_OF_PROCESS(ImageData)
[email protected]cee34b72011-11-18 21:52:40379TEST_PPAPI_NACL_VIA_HTTP(ImageData)
[email protected]4faecb52010-06-18 23:27:11380
[email protected]7a26d92e2012-02-17 20:15:25381TEST_PPAPI_IN_PROCESS(BrowserFont)
382TEST_PPAPI_OUT_OF_PROCESS(BrowserFont)
383
[email protected]d8eba1a2011-07-20 21:41:55384TEST_PPAPI_IN_PROCESS(Buffer)
385TEST_PPAPI_OUT_OF_PROCESS(Buffer)
[email protected]4faecb52010-06-18 23:27:11386
[email protected]ef5e98e2011-12-06 09:49:18387// TODO(ygorshenin): investigate why
388// TEST_PPAPI_IN_PROCESS(TCPSocketPrivateShared) fails,
389// http://crbug.com/105860.
390TEST_PPAPI_IN_PROCESS_VIA_HTTP(TCPSocketPrivateShared)
391TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPSocketPrivateShared)
392TEST_PPAPI_NACL_VIA_HTTP(TCPSocketPrivateShared)
393
394// TODO(ygorshenin): investigate why
395// TEST_PPAPI_IN_PROCESS(UDPSocketPrivateShared) fails,
396// http://crbug.com/105860.
397TEST_PPAPI_IN_PROCESS_VIA_HTTP(UDPSocketPrivateShared)
398TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivateShared)
399TEST_PPAPI_NACL_VIA_HTTP(UDPSocketPrivateShared)
400
[email protected]240502342011-12-22 20:07:49401TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed)
402TEST_PPAPI_NACL_VIA_HTTP_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed)
403
[email protected]d4067422011-12-07 05:24:24404// URLLoader tests.
405TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicGET)
406TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicPOST)
407TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicFilePOST)
408TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BasicFileRangePOST)
409TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_CompoundBodyPOST)
410TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_EmptyDataPOST)
411TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_BinaryDataPOST)
412TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_CustomRequestHeader)
413TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_FailsBogusContentLength)
414TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_StreamToFile)
415TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
416TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedSameOriginRestriction)
417TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
418TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedCrossOriginRequest)
419TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
420// TODO(bbudge) Fix Javascript URLs for trusted loaders.
421// http://crbug.com/103062
422TEST_PPAPI_IN_PROCESS_VIA_HTTP(FAILS_URLLoader_TrustedJavascriptURLRestriction)
[email protected]91ebba32011-12-08 01:35:42423TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntrustedHttpRestriction)
424TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_TrustedHttpRestriction)
[email protected]c95b45792011-12-08 23:54:18425TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_FollowURLRedirect)
[email protected]d4067422011-12-07 05:24:24426TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_AuditURLRedirect)
427TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_AbortCalls)
428TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_UntendedLoad)
[email protected]94af0572012-01-17 22:10:14429TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLLoader_PrefetchBufferThreshold)
[email protected]d4067422011-12-07 05:24:24430
431TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicGET)
432TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicPOST)
[email protected]5667e122012-01-11 21:27:45433TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicFilePOST)
434TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BasicFileRangePOST)
[email protected]d4067422011-12-07 05:24:24435TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_CompoundBodyPOST)
436TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_EmptyDataPOST)
437TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_BinaryDataPOST)
438TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_CustomRequestHeader)
439TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_FailsBogusContentLength)
440TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_StreamToFile)
441TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
442TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedSameOriginRestriction)
443TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
444TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedCrossOriginRequest)
445TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
446// TODO(bbudge) Fix Javascript URLs for trusted loaders.
447// http://crbug.com/103062
448TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(
449 FAILS_URLLoader_TrustedJavascriptURLRestriction)
[email protected]91ebba32011-12-08 01:35:42450TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntrustedHttpRestriction)
451TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_TrustedHttpRestriction)
[email protected]c95b45792011-12-08 23:54:18452TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_FollowURLRedirect)
[email protected]d4067422011-12-07 05:24:24453TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_AuditURLRedirect)
454TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_AbortCalls)
455TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLLoader_UntendedLoad)
456
457TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicGET)
458TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicPOST)
459TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicFilePOST)
460TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BasicFileRangePOST)
461TEST_PPAPI_NACL_VIA_HTTP(URLLoader_CompoundBodyPOST)
462TEST_PPAPI_NACL_VIA_HTTP(URLLoader_EmptyDataPOST)
463TEST_PPAPI_NACL_VIA_HTTP(URLLoader_BinaryDataPOST)
464TEST_PPAPI_NACL_VIA_HTTP(URLLoader_CustomRequestHeader)
465TEST_PPAPI_NACL_VIA_HTTP(URLLoader_FailsBogusContentLength)
466TEST_PPAPI_NACL_VIA_HTTP(URLLoader_StreamToFile)
[email protected]c95b45792011-12-08 23:54:18467TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedSameOriginRestriction)
468TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedCrossOriginRequest)
[email protected]d4067422011-12-07 05:24:24469TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedJavascriptURLRestriction)
[email protected]91ebba32011-12-08 01:35:42470TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntrustedHttpRestriction)
[email protected]c95b45792011-12-08 23:54:18471TEST_PPAPI_NACL_VIA_HTTP(URLLoader_FollowURLRedirect)
[email protected]d4067422011-12-07 05:24:24472TEST_PPAPI_NACL_VIA_HTTP(URLLoader_AuditURLRedirect)
473TEST_PPAPI_NACL_VIA_HTTP(URLLoader_AbortCalls)
474TEST_PPAPI_NACL_VIA_HTTP(URLLoader_UntendedLoad)
[email protected]1ff90a82011-11-22 21:51:49475
[email protected]a333c232012-01-27 23:14:27476// URLRequestInfo tests.
477TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
478TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
479TEST_PPAPI_NACL_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
480TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty)
481TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty)
482TEST_PPAPI_NACL_VIA_HTTP(URLRequest_SetProperty)
483TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
484TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
485TEST_PPAPI_NACL_VIA_HTTP(URLRequest_AppendDataToBody)
486TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress)
487TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress)
488TEST_PPAPI_NACL_VIA_HTTP(URLRequest_Stress)
489
[email protected]d8eba1a2011-07-20 21:41:55490TEST_PPAPI_IN_PROCESS(PaintAggregator)
[email protected]1ff90a82011-11-22 21:51:49491TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator)
[email protected]cee34b72011-11-18 21:52:40492TEST_PPAPI_NACL_VIA_HTTP(PaintAggregator)
[email protected]2f0e64e2010-07-08 22:10:22493
[email protected]d8eba1a2011-07-20 21:41:55494TEST_PPAPI_IN_PROCESS(Scrollbar)
[email protected]c4d5960e52011-07-21 21:47:43495// http://crbug.com/89961
[email protected]1ff90a82011-11-22 21:51:49496TEST_F(OutOfProcessPPAPITest, FAILS_Scrollbar) {
[email protected]c4d5960e52011-07-21 21:47:43497 RunTest("Scrollbar");
498}
[email protected]cee34b72011-11-18 21:52:40499TEST_PPAPI_NACL_VIA_HTTP(Scrollbar)
[email protected]39ef4342010-08-05 22:56:03500
[email protected]d8eba1a2011-07-20 21:41:55501TEST_PPAPI_IN_PROCESS(URLUtil)
[email protected]c4d5960e52011-07-21 21:47:43502TEST_PPAPI_OUT_OF_PROCESS(URLUtil)
[email protected]e1333fb2010-08-22 04:54:00503
[email protected]d8eba1a2011-07-20 21:41:55504TEST_PPAPI_IN_PROCESS(CharSet)
[email protected]c4d5960e52011-07-21 21:47:43505TEST_PPAPI_OUT_OF_PROCESS(CharSet)
[email protected]167b0dd12010-09-30 20:00:40506
[email protected]947bcaf2011-11-22 21:56:04507TEST_PPAPI_IN_PROCESS(Crypto)
[email protected]8e66338e2011-11-22 21:57:17508TEST_PPAPI_OUT_OF_PROCESS(Crypto)
[email protected]8d770e492011-10-11 04:54:31509
[email protected]d8eba1a2011-07-20 21:41:55510TEST_PPAPI_IN_PROCESS(Var)
[email protected]608fcb92011-12-02 20:44:59511TEST_PPAPI_OUT_OF_PROCESS(Var)
[email protected]cee34b72011-11-18 21:52:40512TEST_PPAPI_NACL_VIA_HTTP(Var)
[email protected]0925622c2011-06-08 20:22:02513
[email protected]d8eba1a2011-07-20 21:41:55514TEST_PPAPI_IN_PROCESS(VarDeprecated)
[email protected]b538d7e2011-12-20 00:07:39515TEST_PPAPI_OUT_OF_PROCESS(VarDeprecated)
[email protected]3ed09692010-11-13 00:28:17516
[email protected]b20df1c2011-08-03 14:38:24517// Windows defines 'PostMessage', so we have to undef it.
518#ifdef PostMessage
519#undef PostMessage
520#endif
[email protected]2622d6b2011-11-16 04:28:02521TEST_PPAPI_IN_PROCESS(PostMessage_SendInInit)
522TEST_PPAPI_IN_PROCESS(PostMessage_SendingData)
[email protected]8cc26a42011-12-15 21:22:31523TEST_PPAPI_IN_PROCESS(PostMessage_SendingArrayBuffer)
[email protected]2622d6b2011-11-16 04:28:02524TEST_PPAPI_IN_PROCESS(PostMessage_MessageEvent)
525TEST_PPAPI_IN_PROCESS(PostMessage_NoHandler)
526TEST_PPAPI_IN_PROCESS(PostMessage_ExtraParam)
527TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendInInit)
528TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendingData)
[email protected]10305deb2012-02-16 19:39:22529TEST_PPAPI_OUT_OF_PROCESS(PostMessage_SendingArrayBuffer)
[email protected]2622d6b2011-11-16 04:28:02530TEST_PPAPI_OUT_OF_PROCESS(PostMessage_MessageEvent)
531TEST_PPAPI_OUT_OF_PROCESS(PostMessage_NoHandler)
532TEST_PPAPI_OUT_OF_PROCESS(PostMessage_ExtraParam)
[email protected]924071b2012-02-10 01:54:07533#if !defined(OS_WIN)
534// Times out on Windows XP and Windows 7: http://crbug.com/95557
[email protected]2622d6b2011-11-16 04:28:02535TEST_PPAPI_OUT_OF_PROCESS(PostMessage_NonMainThread)
[email protected]924071b2012-02-10 01:54:07536#endif
[email protected]08610102011-12-17 14:24:30537TEST_PPAPI_NACL_VIA_HTTP(PostMessage_SendInInit)
538TEST_PPAPI_NACL_VIA_HTTP(PostMessage_SendingData)
[email protected]07527712012-01-06 00:09:55539TEST_PPAPI_NACL_VIA_HTTP(PostMessage_SendingArrayBuffer)
[email protected]08610102011-12-17 14:24:30540TEST_PPAPI_NACL_VIA_HTTP(PostMessage_MessageEvent)
541TEST_PPAPI_NACL_VIA_HTTP(PostMessage_NoHandler)
[email protected]396e3fd2012-02-09 18:46:10542
[email protected]976976e12012-01-24 20:08:08543#if defined(OS_WIN)
544// Flaky: http://crbug.com/111209
545//
546// Note from sheriffs miket and syzm: we're not convinced that this test is
547// directly to blame for the flakiness. It's possible that it's a more general
548// problem that is exposing itself only with one of the later tests in this
549// series.
[email protected]0caf2302012-02-14 21:35:25550TEST_PPAPI_NACL_VIA_HTTP(DISABLED_PostMessage_ExtraParam)
[email protected]976976e12012-01-24 20:08:08551#else
[email protected]08610102011-12-17 14:24:30552TEST_PPAPI_NACL_VIA_HTTP(PostMessage_ExtraParam)
[email protected]976976e12012-01-24 20:08:08553#endif
[email protected]f1ced922011-03-26 20:56:35554
[email protected]d8eba1a2011-07-20 21:41:55555TEST_PPAPI_IN_PROCESS(Memory)
556TEST_PPAPI_OUT_OF_PROCESS(Memory)
[email protected]cee34b72011-11-18 21:52:40557TEST_PPAPI_NACL_VIA_HTTP(Memory)
[email protected]14710e222011-07-05 21:37:00558
[email protected]7ace8ad2011-08-06 03:23:58559TEST_PPAPI_IN_PROCESS(VideoDecoder)
560TEST_PPAPI_OUT_OF_PROCESS(VideoDecoder)
561
[email protected]d4067422011-12-07 05:24:24562// Touch and SetLength fail on Mac and Linux due to sandbox restrictions.
563// http://crbug.com/101128
564#if defined(OS_MACOSX) || defined(OS_LINUX)
565#define MAYBE_FileIO_ReadWriteSetLength DISABLED_FileIO_ReadWriteSetLength
566#define MAYBE_FileIO_TouchQuery DISABLED_FileIO_TouchQuery
567#define MAYBE_FileIO_WillWriteWillSetLength \
568 DISABLED_FileIO_WillWriteWillSetLength
569#else
570#define MAYBE_FileIO_ReadWriteSetLength FileIO_ReadWriteSetLength
571#define MAYBE_FileIO_TouchQuery FileIO_TouchQuery
572#define MAYBE_FileIO_WillWriteWillSetLength FileIO_WillWriteWillSetLength
573#endif
[email protected]cee34b72011-11-18 21:52:40574
[email protected]d4067422011-12-07 05:24:24575TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_Open)
576TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_AbortCalls)
577TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_ParallelReads)
578TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_ParallelWrites)
579TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
580TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
581TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_TouchQuery)
582TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_FileIO_WillWriteWillSetLength)
583
[email protected]694878de2011-12-21 20:22:14584TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_Open)
585TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_AbortCalls)
586TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_ParallelReads)
587TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_ParallelWrites)
588TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
589TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
590TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_TouchQuery)
591TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileIO_WillWriteWillSetLength)
[email protected]d4067422011-12-07 05:24:24592
593TEST_PPAPI_NACL_VIA_HTTP(FileIO_Open)
594TEST_PPAPI_NACL_VIA_HTTP(FileIO_AbortCalls)
595TEST_PPAPI_NACL_VIA_HTTP(FileIO_ParallelReads)
596TEST_PPAPI_NACL_VIA_HTTP(FileIO_ParallelWrites)
597TEST_PPAPI_NACL_VIA_HTTP(FileIO_NotAllowMixedReadWrite)
598TEST_PPAPI_NACL_VIA_HTTP(MAYBE_FileIO_TouchQuery)
599TEST_PPAPI_NACL_VIA_HTTP(MAYBE_FileIO_ReadWriteSetLength)
600// The following test requires PPB_FileIO_Trusted, not available in NaCl.
601TEST_PPAPI_NACL_VIA_HTTP(DISABLED_FileIO_WillWriteWillSetLength)
[email protected]3ed09692010-11-13 00:28:17602
[email protected]d8eba1a2011-07-20 21:41:55603TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileRef)
[email protected]cc6db922011-12-10 16:54:22604TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileRef)
[email protected]cee34b72011-11-18 21:52:40605TEST_PPAPI_NACL_VIA_HTTP(FileRef)
606
[email protected]c4d5960e52011-07-21 21:47:43607TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem)
[email protected]0fe6c2422011-09-07 20:20:41608TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)
[email protected]cee34b72011-11-18 21:52:40609TEST_PPAPI_NACL_VIA_HTTP(FileSystem)
[email protected]3ed09692010-11-13 00:28:17610
[email protected]61d2eea2012-01-12 03:08:53611// Mac/Aura reach NOTIMPLEMENTED/time out.
612// Other systems work in-process, but flake out-of-process because of the
613// asyncronous nature of the proxy.
614// mac: http://crbug.com/96767
615// aura: http://crbug.com/104384
616// async flakiness: http://crbug.com/108471
617#if defined(OS_MACOSX) || defined(USE_AURA)
[email protected]81a33d92011-12-20 01:13:03618#define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
[email protected]61d2eea2012-01-12 03:08:53619#define MAYBE_OutOfProcessFlashFullscreen DISABLED_FlashFullscreen
[email protected]155be092011-11-16 04:34:59620#else
[email protected]61d2eea2012-01-12 03:08:53621#define MAYBE_FlashFullscreen FlashFullscreen
[email protected]b6a9ecc2012-01-30 23:17:40622#define MAYBE_OutOfProcessFlashFullscreen FlashFullscreen
[email protected]155be092011-11-16 04:34:59623#endif
624
625TEST_F(PPAPITest, MAYBE_FlashFullscreen) {
[email protected]06e0a342011-09-27 04:24:30626 RunTestViaHTTP("FlashFullscreen");
627}
[email protected]61d2eea2012-01-12 03:08:53628TEST_F(OutOfProcessPPAPITest, MAYBE_OutOfProcessFlashFullscreen) {
[email protected]06e0a342011-09-27 04:24:30629 RunTestViaHTTP("FlashFullscreen");
630}
[email protected]400d9e92011-12-08 22:54:26631
[email protected]1fb491952011-12-12 05:59:23632// http://crbug.com/107175.
633#if defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_LINUX)
[email protected]400d9e92011-12-08 22:54:26634#define MAYBE_Fullscreen FAILS_Fullscreen
635#else
636#define MAYBE_Fullscreen Fullscreen
637#endif
638
639// TODO(bbudge) Fix fullscreen on Mac.
640TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
641// TODO(bbudge) Will fail until we add an ACK message to extend user gesture.
642TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FAILS_Fullscreen)
643// TODO(bbudge) Enable when PPB_Testing_Dev SimulateInputEvent is proxied.
644TEST_PPAPI_NACL_VIA_HTTP(DISABLED_Fullscreen)
[email protected]6d54e2ed2011-09-15 23:02:04645
[email protected]3c149c62011-11-11 23:22:52646TEST_PPAPI_IN_PROCESS(FlashClipboard)
647TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard)
[email protected]fe833c92011-10-22 16:13:22648
[email protected]0caf2302012-02-14 21:35:25649// http://crbug.com/63239
[email protected]35f05982011-06-09 20:38:01650#if defined(OS_POSIX)
[email protected]0caf2302012-02-14 21:35:25651#define MAYBE_DirectoryReader DISABLED_DirectoryReader
[email protected]09283b72011-06-01 16:04:29652#else
653#define MAYBE_DirectoryReader DirectoryReader
654#endif
655
[email protected]35f05982011-06-09 20:38:01656// Flaky on Mac + Linux, maybe http://codereview.chromium.org/7094008
[email protected]a367e282011-12-02 19:13:25657// Not implemented out of process: http://crbug.com/106129
[email protected]09283b72011-06-01 16:04:29658TEST_F(PPAPITest, MAYBE_DirectoryReader) {
[email protected]3ed09692010-11-13 00:28:17659 RunTestViaHTTP("DirectoryReader");
660}
[email protected]9b4cb192011-02-16 00:17:22661
[email protected]c462d122011-05-25 01:54:04662#if defined(ENABLE_P2P_APIS)
[email protected]ff8de9962011-08-31 23:23:57663// Flaky. http://crbug.com/84294
[email protected]8c7ed892012-02-03 04:12:25664TEST_F(PPAPITest, DISABLED_Transport) {
[email protected]9b4cb192011-02-16 00:17:22665 RunTest("Transport");
666}
[email protected]c4d5960e52011-07-21 21:47:43667// http://crbug.com/89961
[email protected]8c7ed892012-02-03 04:12:25668TEST_F(OutOfProcessPPAPITest, DISABLED_Transport) {
[email protected]c4d5960e52011-07-21 21:47:43669 RunTestViaHTTP("Transport");
670}
[email protected]c462d122011-05-25 01:54:04671#endif // ENABLE_P2P_APIS
[email protected]31050482011-07-22 17:03:19672
[email protected]02ab09c32011-11-29 18:59:44673// There is no proxy. This is used for PDF metrics reporting, and PDF only
674// runs in process, so there's currently no need for a proxy.
[email protected]31050482011-07-22 17:03:19675TEST_PPAPI_IN_PROCESS(UMA)
[email protected]87f36372011-11-11 20:49:01676
[email protected]ba359352011-11-22 00:24:13677TEST_PPAPI_IN_PROCESS(NetAddressPrivate_AreEqual)
678TEST_PPAPI_IN_PROCESS(NetAddressPrivate_AreHostsEqual)
679TEST_PPAPI_IN_PROCESS(NetAddressPrivate_Describe)
680TEST_PPAPI_IN_PROCESS(NetAddressPrivate_ReplacePort)
681TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetAnyAddress)
682TEST_PPAPI_IN_PROCESS(NetAddressPrivate_DescribeIPv6)
[email protected]ee9bdfce2012-02-09 00:04:09683TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetFamily)
684TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetPort)
685TEST_PPAPI_IN_PROCESS(NetAddressPrivate_GetAddress)
[email protected]ba359352011-11-22 00:24:13686TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_AreEqual)
687TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_AreHostsEqual)
688TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_Describe)
689TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_ReplacePort)
690TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetAnyAddress)
691TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_DescribeIPv6)
[email protected]ee9bdfce2012-02-09 00:04:09692TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetFamily)
693TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetPort)
694TEST_PPAPI_OUT_OF_PROCESS(NetAddressPrivate_GetAddress)
[email protected]cfff9eb82011-11-15 03:17:10695
[email protected]9e855c0a2012-01-18 13:36:55696TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_AreEqual)
697TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_AreHostsEqual)
698TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_Describe)
699TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_ReplacePort)
700TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetAnyAddress)
[email protected]ee9bdfce2012-02-09 00:04:09701TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetFamily)
702TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetPort)
703TEST_PPAPI_NACL_VIA_HTTP(NetAddressPrivateUntrusted_GetAddress)
[email protected]9e855c0a2012-01-18 13:36:55704
[email protected]cfff9eb82011-11-15 03:17:10705// PPB_TCPSocket_Private currently isn't supported in-process.
706TEST_F(OutOfProcessPPAPITest, TCPSocketPrivate) {
707 RunTestViaHTTP("TCPSocketPrivate");
708}
[email protected]d67f5ae2011-11-17 22:41:52709
710TEST_PPAPI_IN_PROCESS(Flash_SetInstanceAlwaysOnTop)
711TEST_PPAPI_IN_PROCESS(Flash_GetProxyForURL)
712TEST_PPAPI_IN_PROCESS(Flash_MessageLoop)
713TEST_PPAPI_IN_PROCESS(Flash_GetLocalTimeZoneOffset)
714TEST_PPAPI_IN_PROCESS(Flash_GetCommandLineArgs)
715TEST_PPAPI_OUT_OF_PROCESS(Flash_SetInstanceAlwaysOnTop)
716TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL)
717TEST_PPAPI_OUT_OF_PROCESS(Flash_MessageLoop)
718TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset)
719TEST_PPAPI_OUT_OF_PROCESS(Flash_GetCommandLineArgs)
[email protected]081d147b2011-11-18 05:51:54720
[email protected]e056f5f2012-01-27 16:37:58721// Intermittently fails on OSX. http://crbug.com/111636
[email protected]0866da62012-01-30 13:26:52722#if defined(OS_MACOSX)
[email protected]0caf2302012-02-14 21:35:25723#define MAYBE_WebSocket_CcInterfaces DISABLED_WebSocket_CcInterfaces
[email protected]e056f5f2012-01-27 16:37:58724#else
725#define MAYBE_WebSocket_CcInterfaces WebSocket_CcInterfaces
726#endif
727
[email protected]081d147b2011-11-18 05:51:54728TEST_PPAPI_IN_PROCESS(WebSocket_IsWebSocket)
[email protected]a1cff782011-12-06 18:06:34729TEST_PPAPI_IN_PROCESS(WebSocket_UninitializedPropertiesAccess)
[email protected]65f6b002011-12-01 07:44:11730TEST_PPAPI_IN_PROCESS(WebSocket_InvalidConnect)
[email protected]32b05b12011-12-09 04:26:28731TEST_PPAPI_IN_PROCESS(WebSocket_Protocols)
[email protected]65f6b002011-12-01 07:44:11732TEST_PPAPI_IN_PROCESS(WebSocket_GetURL)
[email protected]2e4b7ab2012-01-25 13:28:07733TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidConnect)
734TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_InvalidClose)
735TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidClose)
736TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_GetProtocol)
737TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_TextSendReceive)
738TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BinarySendReceive)
739TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_BufferedAmount)
[email protected]e056f5f2012-01-27 16:37:58740TEST_PPAPI_IN_PROCESS_WITH_WS(MAYBE_WebSocket_CcInterfaces)
[email protected]9082aa5b2012-01-19 08:44:47741TEST_PPAPI_NACL_VIA_HTTP(WebSocket_IsWebSocket)
742TEST_PPAPI_NACL_VIA_HTTP(WebSocket_UninitializedPropertiesAccess)
743TEST_PPAPI_NACL_VIA_HTTP(WebSocket_InvalidConnect)
744TEST_PPAPI_NACL_VIA_HTTP(WebSocket_Protocols)
745TEST_PPAPI_NACL_VIA_HTTP(WebSocket_GetURL)
[email protected]2e4b7ab2012-01-25 13:28:07746TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidConnect)
747TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_InvalidClose)
748TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_ValidClose)
749TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_GetProtocol)
750TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_TextSendReceive)
751TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BinarySendReceive)
752TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(WebSocket_BufferedAmount)
[email protected]e056f5f2012-01-27 16:37:58753TEST_PPAPI_NACL_VIA_HTTP_WITH_WS(MAYBE_WebSocket_CcInterfaces)
[email protected]a9d504a2011-11-22 22:46:47754
[email protected]c3d06212011-12-01 00:40:52755TEST_PPAPI_IN_PROCESS(AudioConfig_ValidConfigs)
756TEST_PPAPI_IN_PROCESS(AudioConfig_InvalidConfigs)
757TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_ValidConfigs)
758TEST_PPAPI_OUT_OF_PROCESS(AudioConfig_InvalidConfigs)
[email protected]65bc60362011-11-30 06:20:37759
[email protected]371a7b812012-02-17 02:35:20760// PPAPITest.Audio_Creation fails on Linux try servers. http://crbug.com/114712
761#if defined(OS_LINUX)
762#define MAYBE_Audio_Creation DISABLED_Audio_Creation
763#else
764#define MAYBE_Audio_Creation Audio_Creation
765#endif
766
767TEST_PPAPI_IN_PROCESS(MAYBE_Audio_Creation)
[email protected]c6b2b7f2011-12-01 02:38:25768TEST_PPAPI_IN_PROCESS(Audio_DestroyNoStop)
769TEST_PPAPI_IN_PROCESS(Audio_Failures)
770TEST_PPAPI_OUT_OF_PROCESS(Audio_Creation)
771TEST_PPAPI_OUT_OF_PROCESS(Audio_DestroyNoStop)
772TEST_PPAPI_OUT_OF_PROCESS(Audio_Failures)
773
[email protected]09c37ba2012-01-05 18:00:33774TEST_PPAPI_IN_PROCESS(View_CreateVisible);
775TEST_PPAPI_OUT_OF_PROCESS(View_CreateVisible);
776TEST_PPAPI_NACL_VIA_HTTP(View_CreateVisible);
777// This test ensures that plugins created in a background tab have their
778// initial visibility set to false. We don't bother testing in-process for this
779// custom test since the out of process code also exercises in-process.
780TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) {
781 // Make a second tab in the foreground.
782 scoped_refptr<TabProxy> tab(GetActiveTab());
783 ASSERT_TRUE(tab.get());
784 scoped_refptr<BrowserProxy> browser(tab->GetParentBrowser());
785 ASSERT_TRUE(browser.get());
786 GURL url = GetTestFileUrl("View_CreatedInvisible");
787 ASSERT_TRUE(browser->AppendBackgroundTab(url));
788
789 // Tab 1 will be the one we appended after the default tab 0.
790 RunTestURL(tab, url);
791}
792// This test messes with tab visibility so is custom.
793TEST_F(OutOfProcessPPAPITest, View_PageHideShow) {
794 GURL url = GetTestFileUrl("View_PageHideShow");
795 scoped_refptr<TabProxy> tab = GetActiveTab();
796 ASSERT_TRUE(tab.get());
797 ASSERT_TRUE(tab->NavigateToURLBlockUntilNavigationsComplete(url, 1));
798
799 // The plugin will be loaded in the foreground tab and will set the
800 // "created" cookie.
801 std::string true_str("TRUE");
802 std::string progress = WaitUntilCookieNonEmpty(tab.get(), url,
803 "TestPageHideShow:Created",
804 TestTimeouts::action_max_timeout_ms());
805 ASSERT_EQ(true_str, progress);
806
807 // Make a new tab to cause the original one to hide, this should trigger the
808 // next phase of the test.
809 scoped_refptr<BrowserProxy> browser(tab->GetParentBrowser());
810 ASSERT_TRUE(browser.get());
811 ASSERT_TRUE(browser->AppendTab(GURL(chrome::kAboutBlankURL)));
812
813 // Wait until the test acks that it got hidden.
814 progress = WaitUntilCookieNonEmpty(tab.get(), url, "TestPageHideShow:Hidden",
815 TestTimeouts::action_max_timeout_ms());
816 ASSERT_EQ(true_str, progress);
817
818 // Switch back to the test tab.
819 ASSERT_TRUE(browser->ActivateTab(0));
820
821 // Wait for the test completion event.
822 RunTestURL(tab, url);
823}
824TEST_PPAPI_IN_PROCESS(View_SizeChange);
825TEST_PPAPI_OUT_OF_PROCESS(View_SizeChange);
826TEST_PPAPI_NACL_VIA_HTTP(View_SizeChange);
827TEST_PPAPI_IN_PROCESS(View_ClipChange);
828TEST_PPAPI_OUT_OF_PROCESS(View_ClipChange);
829TEST_PPAPI_NACL_VIA_HTTP(View_ClipChange);
830
[email protected]6117b82da2012-01-07 00:51:01831TEST_PPAPI_IN_PROCESS(ResourceArray_Basics)
832TEST_PPAPI_IN_PROCESS(ResourceArray_OutOfRangeAccess)
833TEST_PPAPI_IN_PROCESS(ResourceArray_EmptyArray)
834TEST_PPAPI_IN_PROCESS(ResourceArray_InvalidElement)
835TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_Basics)
836TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_OutOfRangeAccess)
837TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_EmptyArray)
838TEST_PPAPI_OUT_OF_PROCESS(ResourceArray_InvalidElement)
839
[email protected]cd2af392012-01-31 09:19:17840TEST_PPAPI_IN_PROCESS(FlashMessageLoop_Basics)
841TEST_PPAPI_IN_PROCESS(FlashMessageLoop_RunWithoutQuit)
842TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_Basics)
843TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_RunWithoutQuit)
844
[email protected]a9d504a2011-11-22 22:46:47845#endif // ADDRESS_SANITIZER