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
3 // found in the LICENSE file.
4
5 #include "chrome/test/ppapi/ppapi_test.h"
6
7 #include "base/test/test_timeouts.h"
8 #include "build/build_config.h"
9 #include "chrome/browser/content_settings/host_content_settings_map.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/browser_navigator.h"
13 #include "chrome/browser/ui/tabs/tab_strip_model.h"
14 #include "chrome/test/base/ui_test_utils.h"
15 #include "chrome/test/nacl/nacl_browsertest_util.h"
16 #include "content/public/browser/web_contents.h"
17 #include "content/public/common/url_constants.h"
18 #include "content/public/test/javascript_test_observer.h"
19 #include "content/public/test/test_renderer_host.h"
20 #include "ppapi/shared_impl/test_harness_utils.h"
21
22 using content::RenderViewHost;
23
24 // This macro finesses macro expansion to do what we want.
25 #define STRIP_PREFIXES(test_name) ppapi::StripTestPrefixes(#test_name)
26 // Turn the given token into a string. This allows us to use precompiler stuff
27 // to turn names into DISABLED_Foo, but still pass a string to RunTest.
28 #define STRINGIFY(test_name) #test_name
29 #define LIST_TEST(test_name) STRINGIFY(test_name) ","
30
31 // Use these macros to run the tests for a specific interface.
32 // Most interfaces should be tested with both macros.
33 #define TEST_PPAPI_IN_PROCESS(test_name) \
34 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
35 RunTest(STRIP_PREFIXES(test_name)); \
36 }
37 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
38 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
39 RunTest(STRIP_PREFIXES(test_name)); \
40 }
41
42 // Similar macros that test over HTTP.
43 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
44 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
45 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
46 }
47 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
48 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
49 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
50 }
51
52 // Similar macros that test with an SSL server.
53 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \
54 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
55 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
56 }
57 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \
58 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
59 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
60 }
61
62 #if defined(DISABLE_NACL)
63
64 #define TEST_PPAPI_NACL(test_name)
65 #define TEST_PPAPI_NACL_NO_PNACL(test_name)
66 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name)
67 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name)
68
69 #else
70
71 // TODO(dmichael): Remove this macro, crbug.com/384539
72 #define TEST_PPAPI_NACL_NO_PNACL(test_name) \
73 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
74 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
75 } \
76 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
77 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
78 } \
79
80 // NaCl based PPAPI tests
81 #define TEST_PPAPI_NACL(test_name) \
82 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
83 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
84 } \
85 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
86 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
87 } \
88 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
89 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
90 } \
91 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
92 MAYBE_PNACL_NONSFI(test_name)) { \
93 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
94 }
95
96 // NaCl based PPAPI tests with disallowed socket API
97 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \
98 IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
99 RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
100 }
101
102 // NaCl based PPAPI tests with SSL server
103 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \
104 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
105 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
106 } \
107 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(test_name)) { \
108 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
109 } \
110 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
111 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
112 } \
113 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, \
114 MAYBE_PNACL_NONSFI(test_name)) { \
115 RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
116 }
117
118 #endif // DISABLE_NACL
119
120 //
121 // Interface tests.
122 //
123
124 TEST_PPAPI_IN_PROCESS(Broker)
125 // Flaky, http://crbug.com/111355
TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)126 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
127
128 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) {
129 // Accepting the infobar should grant permission to access the PPAPI broker.
130 InfoBarObserver observer(this);
131 observer.ExpectInfoBarAndAccept(true);
132
133 // PPB_Broker_Trusted::IsAllowed should return false before the infobar is
134 // popped and true after the infobar is popped.
135 RunTest("Broker_IsAllowedPermissionDenied");
136 RunTest("Broker_ConnectPermissionGranted");
137 RunTest("Broker_IsAllowedPermissionGranted");
138
139 // It should also set a content settings exception for the site.
140 GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted");
141 HostContentSettingsMap* content_settings =
142 browser()->profile()->GetHostContentSettingsMap();
143 EXPECT_EQ(CONTENT_SETTING_ALLOW,
144 content_settings->GetContentSetting(
145 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
146 }
147
IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest,Deny)148 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) {
149 // Canceling the infobar should deny permission to access the PPAPI broker.
150 InfoBarObserver observer(this);
151 observer.ExpectInfoBarAndAccept(false);
152
153 // PPB_Broker_Trusted::IsAllowed should return false before and after the
154 // infobar is popped.
155 RunTest("Broker_IsAllowedPermissionDenied");
156 RunTest("Broker_ConnectPermissionDenied");
157 RunTest("Broker_IsAllowedPermissionDenied");
158
159 // It should also set a content settings exception for the site.
160 GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied");
161 HostContentSettingsMap* content_settings =
162 browser()->profile()->GetHostContentSettingsMap();
163 EXPECT_EQ(CONTENT_SETTING_BLOCK,
164 content_settings->GetContentSetting(
165 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
166 }
167
IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest,Blocked)168 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) {
169 // Block access to the PPAPI broker.
170 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
171 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK);
172
173 // We shouldn't see an infobar.
174 InfoBarObserver observer(this);
175
176 RunTest("Broker_ConnectPermissionDenied");
177 RunTest("Broker_IsAllowedPermissionDenied");
178 }
179
IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest,Allowed)180 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) {
181 // Always allow access to the PPAPI broker.
182 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
183 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW);
184
185 // We shouldn't see an infobar.
186 InfoBarObserver observer(this);
187
188 RunTest("Broker_ConnectPermissionGranted");
189 RunTest("Broker_IsAllowedPermissionGranted");
190 }
191
192 TEST_PPAPI_NACL(Console)
193
194 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
195 // TODO(erg): linux_aura bringup: http://crbug.com/318961
196 #define MAYBE_Core DISABLED_Core
197 #else
198 #define MAYBE_Core Core
199 #endif
TEST_PPAPI_NACL(MAYBE_Core)200 TEST_PPAPI_NACL(MAYBE_Core)
201
202 // Non-NaCl TraceEvent tests are in content/test/ppapi/ppapi_browsertest.cc.
203 TEST_PPAPI_NACL(TraceEvent)
204
205 TEST_PPAPI_NACL(InputEvent)
206
207 // Flaky on Linux and Windows. http://crbug.com/135403
208 #if defined(OS_LINUX) || defined(OS_WIN)
209 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent
210 #else
211 #define MAYBE_ImeInputEvent ImeInputEvent
212 #endif
213
214 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent)
215 TEST_PPAPI_NACL(MAYBE_ImeInputEvent)
216
217 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces
218 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl.
219 TEST_PPAPI_NACL(Graphics2D_InvalidResource)
220 TEST_PPAPI_NACL(Graphics2D_InvalidSize)
221 TEST_PPAPI_NACL(Graphics2D_Humongous)
222 TEST_PPAPI_NACL(Graphics2D_InitToZero)
223 TEST_PPAPI_NACL(Graphics2D_Describe)
224 TEST_PPAPI_NACL(Graphics2D_Paint)
225 TEST_PPAPI_NACL(Graphics2D_Scroll)
226 TEST_PPAPI_NACL(Graphics2D_Replace)
227 TEST_PPAPI_NACL(Graphics2D_Flush)
228 TEST_PPAPI_NACL(Graphics2D_FlushOffscreenUpdate)
229 TEST_PPAPI_NACL(Graphics2D_BindNull)
230
231 #if defined(OS_WIN)
232 #if defined(USE_AURA)
233 // These tests fail with the test compositor which is what's used by default for
234 // browser tests on Windows Aura. Renable when the software compositor is
235 // available.
236 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
237 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
238 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
239 #else // defined(USE_AURA)
240 // In-process and NaCl tests are having flaky failures on Win: crbug.com/242252
241 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
242 #define MAYBE_OUT_Graphics3D Graphics3D
243 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
244 #endif // defined(USE_AURA)
245 #elif defined(OS_MACOSX)
246 // These tests fail when using the legacy software mode. Reenable when the
247 // software compositor is enabled crbug.com/286038
248 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
249 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
250 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
251 #else
252 // The tests are failing in-process. crbug.com/280282
253 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
254 #define MAYBE_OUT_Graphics3D Graphics3D
255 #define MAYBE_NACL_Graphics3D Graphics3D
256 #endif
257 TEST_PPAPI_IN_PROCESS(MAYBE_IN_Graphics3D)
258 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_OUT_Graphics3D)
259 TEST_PPAPI_NACL(MAYBE_NACL_Graphics3D)
260
261 TEST_PPAPI_NACL(ImageData)
262
263 // TCPSocket and TCPSocketPrivate tests.
264 #define RUN_TCPSOCKET_SUBTESTS \
265 RunTestViaHTTP( \
266 LIST_TEST(TCPSocket_Connect) \
267 LIST_TEST(TCPSocket_ReadWrite) \
268 LIST_TEST(TCPSocket_SetOption) \
269 LIST_TEST(TCPSocket_Listen) \
270 LIST_TEST(TCPSocket_Backlog) \
271 LIST_TEST(TCPSocket_Interface_1_0) \
272 )
273
274 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, TCPSocket) {
275 RUN_TCPSOCKET_SUBTESTS;
276 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,TCPSocket)277 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, TCPSocket) {
278 RUN_TCPSOCKET_SUBTESTS;
279 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (TCPSocket))280 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(TCPSocket)) {
281 RUN_TCPSOCKET_SUBTESTS;
282 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,TCPSocket)283 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, TCPSocket) {
284 RUN_TCPSOCKET_SUBTESTS;
285 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (TCPSocket))286 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
287 MAYBE_PNACL_NONSFI(TCPSocket)) {
288 RUN_TCPSOCKET_SUBTESTS;
289 }
290
291 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate)
TEST_PPAPI_NACL(TCPServerSocketPrivate)292 TEST_PPAPI_NACL(TCPServerSocketPrivate)
293
294 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate)
295 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate)
296
297 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted)
298
299 // UDPSocket tests.
300 // UDPSocket_Broadcast is disabled for OSX because it requires root
301 // permissions on OSX 10.7+.
302 #if defined(OS_MACOSX)
303 #define MAYBE_UDPSocket_Broadcast DISABLED_UDPSocket_Broadcast
304 #else
305 #define MAYBE_UDPSocket_Broadcast UDPSocket_Broadcast
306 #endif
307
308 #define RUN_UDPSOCKET_SUBTESTS \
309 RunTestViaHTTP( \
310 LIST_TEST(UDPSocket_ReadWrite) \
311 LIST_TEST(UDPSocket_SetOption) \
312 LIST_TEST(MAYBE_UDPSocket_Broadcast) \
313 )
314
315 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, UDPSocket) {
316 RUN_UDPSOCKET_SUBTESTS;
317 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,UDPSocket)318 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, UDPSocket) {
319 RUN_UDPSOCKET_SUBTESTS;
320 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (UDPSocket))321 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(UDPSocket)) {
322 RUN_UDPSOCKET_SUBTESTS;
323 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,UDPSocket)324 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, UDPSocket) {
325 RUN_UDPSOCKET_SUBTESTS;
326 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (UDPSocket))327 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
328 MAYBE_PNACL_NONSFI(UDPSocket)) {
329 RUN_UDPSOCKET_SUBTESTS;
330 }
331
332
333 // UDPSocketPrivate tests.
334 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires root
335 // permissions on OSX 10.7+.
336 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Connect)
TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure)337 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure)
338 #if !defined(OS_MACOSX)
339 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Broadcast)
340 #endif // !defined(OS_MACOSX)
341 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_SetSocketFeatureErrors)
342 TEST_PPAPI_NACL(UDPSocketPrivate_Connect)
343 TEST_PPAPI_NACL(UDPSocketPrivate_ConnectFailure)
344 #if !defined(OS_MACOSX)
345 TEST_PPAPI_NACL(UDPSocketPrivate_Broadcast)
346 #endif // !defined(OS_MACOSX)
347 TEST_PPAPI_NACL(UDPSocketPrivate_SetSocketFeatureErrors)
348
349 // Disallowed socket tests.
350 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(HostResolverPrivateDisallowed)
351 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed)
352 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed)
353 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed)
354
355 // HostResolver and HostResolverPrivate tests.
356 #define RUN_HOST_RESOLVER_SUBTESTS \
357 RunTestViaHTTP( \
358 LIST_TEST(HostResolver_Empty) \
359 LIST_TEST(HostResolver_Resolve) \
360 LIST_TEST(HostResolver_ResolveIPv4) \
361 )
362
363 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, HostResolver) {
364 RUN_HOST_RESOLVER_SUBTESTS;
365 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,HostResolver)366 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, HostResolver) {
367 RUN_HOST_RESOLVER_SUBTESTS;
368 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (HostResolver))369 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(HostResolver)) {
370 RUN_HOST_RESOLVER_SUBTESTS;
371 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,HostResolver)372 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, HostResolver) {
373 RUN_HOST_RESOLVER_SUBTESTS;
374 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (HostResolver))375 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
376 MAYBE_PNACL_NONSFI(HostResolver)) {
377 RUN_HOST_RESOLVER_SUBTESTS;
378 }
379
380 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve)
TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)381 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
382 TEST_PPAPI_NACL(HostResolverPrivate_Resolve)
383 TEST_PPAPI_NACL(HostResolverPrivate_ResolveIPv4)
384
385 // URLLoader tests. These are split into multiple test fixtures because if we
386 // run them all together, they tend to time out.
387 #define RUN_URLLOADER_SUBTESTS_0 \
388 RunTestViaHTTP( \
389 LIST_TEST(URLLoader_BasicGET) \
390 LIST_TEST(URLLoader_BasicPOST) \
391 LIST_TEST(URLLoader_BasicFilePOST) \
392 LIST_TEST(URLLoader_BasicFileRangePOST) \
393 LIST_TEST(URLLoader_CompoundBodyPOST) \
394 )
395
396 #define RUN_URLLOADER_SUBTESTS_1 \
397 RunTestViaHTTP( \
398 LIST_TEST(URLLoader_EmptyDataPOST) \
399 LIST_TEST(URLLoader_BinaryDataPOST) \
400 LIST_TEST(URLLoader_CustomRequestHeader) \
401 LIST_TEST(URLLoader_FailsBogusContentLength) \
402 LIST_TEST(URLLoader_StreamToFile) \
403 )
404
405 // TODO(bbudge) Fix Javascript URLs for trusted loaders.
406 // http://crbug.com/103062
407 #define RUN_URLLOADER_SUBTESTS_2 \
408 RunTestViaHTTP( \
409 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
410 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
411 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
412 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
413 )
414
415 #define RUN_URLLOADER_NACL_SUBTESTS_2 \
416 RunTestViaHTTP( \
417 LIST_TEST(URLLoader_UntrustedSameOriginRestriction) \
418 LIST_TEST(URLLoader_UntrustedCrossOriginRequest) \
419 LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction) \
420 LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction) \
421 )
422
423 #define RUN_URLLOADER_SUBTESTS_3 \
424 RunTestViaHTTP( \
425 LIST_TEST(URLLoader_UntrustedHttpRequests) \
426 LIST_TEST(URLLoader_FollowURLRedirect) \
427 LIST_TEST(URLLoader_AuditURLRedirect) \
428 LIST_TEST(URLLoader_AbortCalls) \
429 LIST_TEST(URLLoader_UntendedLoad) \
430 LIST_TEST(URLLoader_PrefetchBufferThreshold) \
431 )
432
433 // Note: we do not support Trusted APIs in NaCl, so these will be skipped.
434 #define RUN_URLLOADER_TRUSTED_SUBTESTS \
435 RunTestViaHTTP( \
436 LIST_TEST(URLLoader_TrustedSameOriginRestriction) \
437 LIST_TEST(URLLoader_TrustedCrossOriginRequest) \
438 LIST_TEST(URLLoader_TrustedHttpRequests) \
439 )
440
441 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader0) {
442 RUN_URLLOADER_SUBTESTS_0;
443 }
IN_PROC_BROWSER_TEST_F(PPAPITest,URLLoader1)444 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader1) {
445 RUN_URLLOADER_SUBTESTS_1;
446 }
IN_PROC_BROWSER_TEST_F(PPAPITest,URLLoader2)447 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader2) {
448 RUN_URLLOADER_SUBTESTS_2;
449 }
IN_PROC_BROWSER_TEST_F(PPAPITest,URLLoader3)450 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader3) {
451 RUN_URLLOADER_SUBTESTS_3;
452 }
IN_PROC_BROWSER_TEST_F(PPAPITest,URLLoaderTrusted)453 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoaderTrusted) {
454 RUN_URLLOADER_TRUSTED_SUBTESTS;
455 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,URLLoader0)456 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader0) {
457 RUN_URLLOADER_SUBTESTS_0;
458 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,URLLoader1)459 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader1) {
460 RUN_URLLOADER_SUBTESTS_1;
461 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,URLLoader2)462 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader2) {
463 RUN_URLLOADER_SUBTESTS_2;
464 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,URLLoader3)465 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoader3) {
466 RUN_URLLOADER_SUBTESTS_3;
467 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,URLLoaderTrusted)468 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, URLLoaderTrusted) {
469 RUN_URLLOADER_TRUSTED_SUBTESTS;
470 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,URLLoader0)471 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader0) {
472 RUN_URLLOADER_SUBTESTS_0;
473 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,URLLoader1)474 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader1) {
475 RUN_URLLOADER_SUBTESTS_1;
476 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,URLLoader2)477 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader2) {
478 RUN_URLLOADER_SUBTESTS_2;
479 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,URLLoader3)480 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader3) {
481 RUN_URLLOADER_SUBTESTS_3;
482 }
483
484 // Flaky on 32-bit linux bot; http://crbug.com/308906
485 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
486 #define MAYBE_URLLoader_BasicFilePOST DISABLED_URLLoader_BasicFilePOST
487 #else
488 #define MAYBE_URLLoader_BasicFilePOST URLLoader_BasicFilePOST
489 #endif
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (URLLoader0))490 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader0)) {
491 RunTestViaHTTP(
492 LIST_TEST(URLLoader_BasicGET)
493 LIST_TEST(URLLoader_BasicPOST)
494 LIST_TEST(MAYBE_URLLoader_BasicFilePOST)
495 LIST_TEST(URLLoader_BasicFileRangePOST)
496 LIST_TEST(URLLoader_CompoundBodyPOST)
497 );
498 }
499
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (URLLoader1))500 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader1)) {
501 RUN_URLLOADER_SUBTESTS_1;
502 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (URLLoader2))503 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader2)) {
504 RUN_URLLOADER_SUBTESTS_2;
505 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (URLLoader3))506 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(URLLoader3)) {
507 RUN_URLLOADER_SUBTESTS_3;
508 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,URLLoader0)509 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader0) {
510 RUN_URLLOADER_SUBTESTS_0;
511 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,URLLoader1)512 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader1) {
513 RUN_URLLOADER_SUBTESTS_1;
514 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,URLLoader2)515 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader2) {
516 RUN_URLLOADER_SUBTESTS_2;
517 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,URLLoader3)518 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader3) {
519 RUN_URLLOADER_SUBTESTS_3;
520 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (URLLoader0))521 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
522 MAYBE_PNACL_NONSFI(URLLoader0)) {
523 RUN_URLLOADER_SUBTESTS_0;
524 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (URLLoader1))525 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
526 MAYBE_PNACL_NONSFI(URLLoader1)) {
527 RUN_URLLOADER_SUBTESTS_1;
528 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (URLLoader2))529 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
530 MAYBE_PNACL_NONSFI(URLLoader2)) {
531 RUN_URLLOADER_SUBTESTS_2;
532 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (URLLoader3))533 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
534 MAYBE_PNACL_NONSFI(URLLoader3)) {
535 RUN_URLLOADER_SUBTESTS_3;
536 }
537
538 // URLRequestInfo tests.
539 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)540 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
541
542 // Timing out on Windows. http://crbug.com/129571
543 #if defined(OS_WIN)
544 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
545 DISABLED_URLRequest_CreateAndIsURLRequestInfo
546 #else
547 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
548 URLRequest_CreateAndIsURLRequestInfo
549 #endif
550 TEST_PPAPI_NACL(MAYBE_URLRequest_CreateAndIsURLRequestInfo)
551
552 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty)
553 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty)
554 TEST_PPAPI_NACL(URLRequest_SetProperty)
555 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
556 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
557 TEST_PPAPI_NACL(URLRequest_AppendDataToBody)
558 TEST_PPAPI_IN_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
559 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
560 TEST_PPAPI_NACL(DISABLED_URLRequest_AppendFileToBody)
561 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress)
562 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress)
563 TEST_PPAPI_NACL(URLRequest_Stress)
564
565 TEST_PPAPI_IN_PROCESS(PaintAggregator)
566 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator)
567 TEST_PPAPI_NACL(PaintAggregator)
568
569 // TODO(danakj): http://crbug.com/115286
570 TEST_PPAPI_NACL(DISABLED_Scrollbar)
571
572 TEST_PPAPI_NACL(Var)
573
574 TEST_PPAPI_NACL(VarResource)
575
576 // PostMessage tests.
577 #define RUN_POSTMESSAGE_SUBTESTS \
578 RunTestViaHTTP( \
579 LIST_TEST(PostMessage_SendInInit) \
580 LIST_TEST(PostMessage_SendingData) \
581 LIST_TEST(PostMessage_SendingString) \
582 LIST_TEST(PostMessage_SendingArrayBuffer) \
583 LIST_TEST(PostMessage_SendingArray) \
584 LIST_TEST(PostMessage_SendingDictionary) \
585 LIST_TEST(PostMessage_SendingResource) \
586 LIST_TEST(PostMessage_SendingComplexVar) \
587 LIST_TEST(PostMessage_MessageEvent) \
588 LIST_TEST(PostMessage_NoHandler) \
589 LIST_TEST(PostMessage_ExtraParam) \
590 LIST_TEST(PostMessage_NonMainThread) \
591 )
592
593 // Windows defines 'PostMessage', so we have to undef it.
594 #ifdef PostMessage
595 #undef PostMessage
596 #endif
597
598 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, PostMessage) {
599 RUN_POSTMESSAGE_SUBTESTS;
600 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,PostMessage)601 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, PostMessage) {
602 RUN_POSTMESSAGE_SUBTESTS;
603 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (PostMessage))604 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(PostMessage)) {
605 RUN_POSTMESSAGE_SUBTESTS;
606 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,PostMessage)607 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, PostMessage) {
608 RUN_POSTMESSAGE_SUBTESTS;
609 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (PostMessage))610 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
611 MAYBE_PNACL_NONSFI(PostMessage)) {
612 RUN_POSTMESSAGE_SUBTESTS;
613 }
614
615 TEST_PPAPI_NACL(Memory)
616
617 // FileIO tests.
618 #define RUN_FILEIO_SUBTESTS \
619 RunTestViaHTTP( \
620 LIST_TEST(FileIO_Open) \
621 LIST_TEST(FileIO_OpenDirectory) \
622 LIST_TEST(FileIO_AbortCalls) \
623 LIST_TEST(FileIO_ParallelReads) \
624 LIST_TEST(FileIO_ParallelWrites) \
625 LIST_TEST(FileIO_NotAllowMixedReadWrite) \
626 LIST_TEST(FileIO_ReadWriteSetLength) \
627 LIST_TEST(FileIO_ReadToArrayWriteSetLength) \
628 LIST_TEST(FileIO_TouchQuery) \
629 )
630
631 #define RUN_FILEIO_PRIVATE_SUBTESTS \
632 RunTestViaHTTP( \
633 LIST_TEST(FileIO_RequestOSFileHandle) \
634 LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive) \
635 LIST_TEST(FileIO_Mmap) \
636 )
637
638 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
639 // TODO(erg): linux_aura bringup: http://crbug.com/318961
640 #define MAYBE_FileIO DISABLED_FileIO
641 #define MAYBE_FileIO_Private DISABLED_FileIO_Private
642 #else
643 #define MAYBE_FileIO FileIO
644 #define MAYBE_FileIO_Private FileIO_Private
645 #endif
646
IN_PROC_BROWSER_TEST_F(PPAPITest,MAYBE_FileIO)647 IN_PROC_BROWSER_TEST_F(PPAPITest, MAYBE_FileIO) {
648 RUN_FILEIO_SUBTESTS;
649 }
IN_PROC_BROWSER_TEST_F(PPAPIPrivateTest,MAYBE_FileIO_Private)650 IN_PROC_BROWSER_TEST_F(PPAPIPrivateTest, MAYBE_FileIO_Private) {
651 RUN_FILEIO_PRIVATE_SUBTESTS;
652 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,MAYBE_FileIO)653 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_FileIO) {
654 RUN_FILEIO_SUBTESTS;
655 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPIPrivateTest,MAYBE_FileIO_Private)656 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPIPrivateTest, MAYBE_FileIO_Private) {
657 RUN_FILEIO_PRIVATE_SUBTESTS;
658 }
659
660 // Flaky on XP; times out, http://crbug.com/313401
661 #if defined(OS_WIN)
662 #define MAYBE_NaCl_Newlib_FileIO DISABLED_FileIO
663 #define MAYBE_NaCl_Newlib_FileIO_Private DISABLED_FileIO_Private
664 #else
665 #define MAYBE_NaCl_Newlib_FileIO FileIO
666 #define MAYBE_NaCl_Newlib_FileIO_Private FileIO_Private
667 #endif
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,MAYBE_NaCl_Newlib_FileIO)668 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, MAYBE_NaCl_Newlib_FileIO) {
669 RUN_FILEIO_SUBTESTS;
670 }
IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClNewlibTest,MAYBE_NaCl_Newlib_FileIO_Private)671 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClNewlibTest,
672 MAYBE_NaCl_Newlib_FileIO_Private) {
673 RUN_FILEIO_PRIVATE_SUBTESTS;
674 }
675
676 // Flaky on 32-bit linux bot; http://crbug.com/308905
677 // Flaky on Windows too; http://crbug.com/321300
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,DISABLED_FileIO)678 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, DISABLED_FileIO) {
679 RUN_FILEIO_SUBTESTS;
680 }
IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClGLibcTest,DISABLED_FileIO_Private)681 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClGLibcTest, DISABLED_FileIO_Private) {
682 RUN_FILEIO_PRIVATE_SUBTESTS;
683 }
684
685 // Flaky on XP; times out, http://crbug.com/313205
686 #if defined(OS_WIN)
687 #define MAYBE_PNaCl_FileIO DISABLED_FileIO
688 #define MAYBE_PNaCl_FileIO_Private DISABLED_FileIO_Private
689 #else
690 #define MAYBE_PNaCl_FileIO FileIO
691 #define MAYBE_PNaCl_FileIO_Private FileIO_Private
692 #endif
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,MAYBE_PNaCl_FileIO)693 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, MAYBE_PNaCl_FileIO) {
694 RUN_FILEIO_SUBTESTS;
695 }
IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest,MAYBE_PNaCl_FileIO_Private)696 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest, MAYBE_PNaCl_FileIO_Private) {
697 RUN_FILEIO_PRIVATE_SUBTESTS;
698 }
699
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (FileIO))700 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, MAYBE_PNACL_NONSFI(FileIO)) {
701 RUN_FILEIO_SUBTESTS;
702 }
IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest,MAYBE_PNACL_NONSFI (FILEIO_Private))703 IN_PROC_BROWSER_TEST_F(PPAPIPrivateNaClPNaClTest,
704 MAYBE_PNACL_NONSFI(FILEIO_Private)) {
705 RUN_FILEIO_PRIVATE_SUBTESTS;
706 }
707
708 // PPB_FileMapping is only implemented on POSIX currently.
709 // http://crbug.com/83774
710 #if defined(OS_WIN)
711 #define MAYBE_FileMapping DISABLED_FileMapping
712 #else
713 #define MAYBE_FileMapping FileMapping
714 #endif
715 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_FileMapping)
TEST_PPAPI_NACL(MAYBE_FileMapping)716 TEST_PPAPI_NACL(MAYBE_FileMapping)
717
718 // FileRef tests.
719 #define RUN_FILEREF_SUBTESTS_1 \
720 RunTestViaHTTP( \
721 LIST_TEST(FileRef_Create) \
722 LIST_TEST(FileRef_GetFileSystemType) \
723 LIST_TEST(FileRef_GetName) \
724 LIST_TEST(FileRef_GetPath) \
725 LIST_TEST(FileRef_GetParent) \
726 LIST_TEST(FileRef_MakeDirectory) \
727 )
728
729 #define RUN_FILEREF_SUBTESTS_2 \
730 RunTestViaHTTP( \
731 LIST_TEST(FileRef_QueryAndTouchFile) \
732 LIST_TEST(FileRef_DeleteFileAndDirectory) \
733 LIST_TEST(FileRef_RenameFileAndDirectory) \
734 LIST_TEST(FileRef_Query) \
735 LIST_TEST(FileRef_FileNameEscaping) \
736 )
737
738 // Note, the FileRef tests are split into two, because all of them together
739 // sometimes take too long on windows: crbug.com/336999
740 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef1) {
741 RUN_FILEREF_SUBTESTS_1;
742 }
IN_PROC_BROWSER_TEST_F(PPAPITest,FileRef2)743 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef2) {
744 RUN_FILEREF_SUBTESTS_2;
745 }
746 // This test only works as an in-process test. See crbug.com/241646.
IN_PROC_BROWSER_TEST_F(PPAPITest,FileRef_ReadDirectoryEntries)747 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef_ReadDirectoryEntries) {
748 RunTestViaHTTP(LIST_TEST(FileRef_ReadDirectoryEntries));
749 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,FileRef1)750 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef1) {
751 RUN_FILEREF_SUBTESTS_1;
752 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,FileRef2)753 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef2) {
754 RUN_FILEREF_SUBTESTS_2;
755 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,FileRef1)756 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef1) {
757 RUN_FILEREF_SUBTESTS_1;
758 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,FileRef2)759 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef2) {
760 RUN_FILEREF_SUBTESTS_2;
761 }
762 // Flaky on 32-bit linux bot; http://crbug.com/308908
763 // Glibc not available on ARM
764 #if (defined(OS_LINUX) && defined(ARCH_CPU_X86)) \
765 || defined(ARCH_CPU_ARM_FAMILY)
766 #define MAYBE_NaCl_Glibc_FileRef1 DISABLED_FileRef1
767 #define MAYBE_NaCl_Glibc_FileRef2 DISABLED_FileRef2
768 #else
769 #define MAYBE_NaCl_Glibc_FileRef1 FileRef1
770 #define MAYBE_NaCl_Glibc_FileRef2 FileRef2
771 #endif
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_NaCl_Glibc_FileRef1)772 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileRef1) {
773 RUN_FILEREF_SUBTESTS_1;
774 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_NaCl_Glibc_FileRef2)775 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileRef2) {
776 RUN_FILEREF_SUBTESTS_2;
777 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,FileRef1)778 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef1) {
779 RUN_FILEREF_SUBTESTS_1;
780 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,FileRef2)781 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef2) {
782 RUN_FILEREF_SUBTESTS_2;
783 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (FileRef1))784 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
785 MAYBE_PNACL_NONSFI(FileRef1)) {
786 RUN_FILEREF_SUBTESTS_1;
787 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (FileRef2))788 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
789 MAYBE_PNACL_NONSFI(FileRef2)) {
790 RUN_FILEREF_SUBTESTS_2;
791 }
792
793 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem)
TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)794 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)
795
796 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac.
797 // http://crbug.com/130372
798 #if defined(OS_MACOSX) || defined(OS_WIN)
799 #define MAYBE_FileSystem DISABLED_FileSystem
800 #else
801 #define MAYBE_FileSystem FileSystem
802 #endif
803
804 TEST_PPAPI_NACL(MAYBE_FileSystem)
805
806 #if defined(OS_MACOSX)
807 // http://crbug.com/103912
808 #define MAYBE_Fullscreen DISABLED_Fullscreen
809 #elif defined(OS_LINUX)
810 // http://crbug.com/146008
811 #define MAYBE_Fullscreen DISABLED_Fullscreen
812 #elif defined(OS_WIN)
813 // http://crbug.com/342269
814 #define MAYBE_Fullscreen DISABLED_Fullscreen
815 #else
816 #define MAYBE_Fullscreen Fullscreen
817 #endif
818
819 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
820 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
821 TEST_PPAPI_NACL(MAYBE_Fullscreen)
822
823 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate)
824
825 TEST_PPAPI_IN_PROCESS(UMA)
826 TEST_PPAPI_OUT_OF_PROCESS(UMA)
827 TEST_PPAPI_NACL(UMA)
828
829 // NetAddress tests.
830 #define RUN_NETADDRESS_SUBTESTS \
831 RunTestViaHTTP( \
832 LIST_TEST(NetAddress_IPv4Address) \
833 LIST_TEST(NetAddress_IPv6Address) \
834 LIST_TEST(NetAddress_DescribeAsString) \
835 )
836
837 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddress) {
838 RUN_NETADDRESS_SUBTESTS;
839 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,NetAddress)840 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddress) {
841 RUN_NETADDRESS_SUBTESTS;
842 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (NetAddress))843 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddress)) {
844 RUN_NETADDRESS_SUBTESTS;
845 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,NetAddress)846 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddress) {
847 RUN_NETADDRESS_SUBTESTS;
848 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (NetAddress))849 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
850 MAYBE_PNACL_NONSFI(NetAddress)) {
851 RUN_NETADDRESS_SUBTESTS;
852 }
853
854 // NetAddressPrivate tests.
855 #define RUN_NETADDRESS_PRIVATE_SUBTESTS \
856 RunTestViaHTTP( \
857 LIST_TEST(NetAddressPrivate_AreEqual) \
858 LIST_TEST(NetAddressPrivate_AreHostsEqual) \
859 LIST_TEST(NetAddressPrivate_Describe) \
860 LIST_TEST(NetAddressPrivate_ReplacePort) \
861 LIST_TEST(NetAddressPrivate_GetAnyAddress) \
862 LIST_TEST(NetAddressPrivate_DescribeIPv6) \
863 LIST_TEST(NetAddressPrivate_GetFamily) \
864 LIST_TEST(NetAddressPrivate_GetPort) \
865 LIST_TEST(NetAddressPrivate_GetAddress) \
866 LIST_TEST(NetAddressPrivate_GetScopeID) \
867 )
868
IN_PROC_BROWSER_TEST_F(PPAPITest,NetAddressPrivate)869 IN_PROC_BROWSER_TEST_F(PPAPITest, NetAddressPrivate) {
870 RUN_NETADDRESS_PRIVATE_SUBTESTS;
871 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,NetAddressPrivate)872 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddressPrivate) {
873 RUN_NETADDRESS_PRIVATE_SUBTESTS;
874 }
875
876 #define RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS \
877 RunTestViaHTTP( \
878 LIST_TEST(NetAddressPrivateUntrusted_AreEqual) \
879 LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual) \
880 LIST_TEST(NetAddressPrivateUntrusted_Describe) \
881 LIST_TEST(NetAddressPrivateUntrusted_ReplacePort) \
882 LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress) \
883 LIST_TEST(NetAddressPrivateUntrusted_GetFamily) \
884 LIST_TEST(NetAddressPrivateUntrusted_GetPort) \
885 LIST_TEST(NetAddressPrivateUntrusted_GetAddress) \
886 )
887
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,NetAddressPrivate)888 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddressPrivate) {
889 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
890 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (NetAddressPrivate))891 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddressPrivate)) {
892 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
893 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,NetAddressPrivate)894 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddressPrivate) {
895 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
896 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (NetAddressPrivate))897 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
898 MAYBE_PNACL_NONSFI(NetAddressPrivate)) {
899 RUN_NETADDRESS_PRIVATE_UNTRUSTED_SUBTESTS;
900 }
901
902 // NetworkMonitor tests.
903 #define RUN_NETWORK_MONITOR_SUBTESTS \
904 RunTestViaHTTP( \
905 LIST_TEST(NetworkMonitor_Basic) \
906 LIST_TEST(NetworkMonitor_2Monitors) \
907 LIST_TEST(NetworkMonitor_DeleteInCallback) \
908 )
909
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,NetworkMonitor)910 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetworkMonitor) {
911 RUN_NETWORK_MONITOR_SUBTESTS;
912 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,NetworkMonitor)913 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetworkMonitor) {
914 RUN_NETWORK_MONITOR_SUBTESTS;
915 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (NetworkMonitor))916 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetworkMonitor)) {
917 RUN_NETWORK_MONITOR_SUBTESTS;
918 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,NetworkMonitor)919 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetworkMonitor) {
920 RUN_NETWORK_MONITOR_SUBTESTS;
921 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (NetworkMonitor))922 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
923 MAYBE_PNACL_NONSFI(NetworkMonitor)) {
924 RUN_NETWORK_MONITOR_SUBTESTS;
925 }
926
927 // Flash tests.
928 #define RUN_FLASH_SUBTESTS \
929 RunTestViaHTTP( \
930 LIST_TEST(Flash_SetInstanceAlwaysOnTop) \
931 LIST_TEST(Flash_GetCommandLineArgs) \
932 )
933
IN_PROC_BROWSER_TEST_F(PPAPITest,Flash)934 IN_PROC_BROWSER_TEST_F(PPAPITest, Flash) {
935 RUN_FLASH_SUBTESTS;
936 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,Flash)937 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Flash) {
938 RUN_FLASH_SUBTESTS;
939 }
940
941 // In-process WebSocket tests. Note, the WebSocket tests are split into two,
942 // because all of them together sometimes take too long on windows:
943 // crbug.com/336999
944 #define RUN_WEBSOCKET_SUBTESTS_1 \
945 RunTestWithWebSocketServer( \
946 LIST_TEST(WebSocket_IsWebSocket) \
947 LIST_TEST(WebSocket_UninitializedPropertiesAccess) \
948 LIST_TEST(WebSocket_InvalidConnect) \
949 LIST_TEST(WebSocket_Protocols) \
950 LIST_TEST(WebSocket_GetURL) \
951 LIST_TEST(WebSocket_ValidConnect) \
952 LIST_TEST(WebSocket_InvalidClose) \
953 LIST_TEST(WebSocket_ValidClose) \
954 LIST_TEST(WebSocket_GetProtocol) \
955 LIST_TEST(WebSocket_TextSendReceive) \
956 LIST_TEST(WebSocket_BinarySendReceive) \
957 LIST_TEST(WebSocket_StressedSendReceive) \
958 LIST_TEST(WebSocket_BufferedAmount) \
959 )
960
961 #define RUN_WEBSOCKET_SUBTESTS_2 \
962 RunTestWithWebSocketServer( \
963 LIST_TEST(WebSocket_AbortCallsWithCallback) \
964 LIST_TEST(WebSocket_AbortSendMessageCall) \
965 LIST_TEST(WebSocket_AbortCloseCall) \
966 LIST_TEST(WebSocket_AbortReceiveMessageCall) \
967 LIST_TEST(WebSocket_CcInterfaces) \
968 LIST_TEST(WebSocket_UtilityInvalidConnect) \
969 LIST_TEST(WebSocket_UtilityProtocols) \
970 LIST_TEST(WebSocket_UtilityGetURL) \
971 LIST_TEST(WebSocket_UtilityValidConnect) \
972 LIST_TEST(WebSocket_UtilityInvalidClose) \
973 LIST_TEST(WebSocket_UtilityValidClose) \
974 LIST_TEST(WebSocket_UtilityGetProtocol) \
975 LIST_TEST(WebSocket_UtilityTextSendReceive) \
976 LIST_TEST(WebSocket_UtilityBinarySendReceive) \
977 )
978 // TODO(yhirano): List this test in SUBTESTS_2 once the close ordering
979 // is implemented correctly.
980 // LIST_TEST(WebSocket_UtilityBufferedAmount)
981
IN_PROC_BROWSER_TEST_F(PPAPITest,WebSocket1)982 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket1) {
983 RUN_WEBSOCKET_SUBTESTS_1;
984 }
IN_PROC_BROWSER_TEST_F(PPAPITest,WebSocket2)985 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket2) {
986 RUN_WEBSOCKET_SUBTESTS_2;
987 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,WebSocket1)988 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket1) {
989 RUN_WEBSOCKET_SUBTESTS_1;
990 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,WebSocket2)991 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket2) {
992 RUN_WEBSOCKET_SUBTESTS_2;
993 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,WebSocket1)994 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket1) {
995 RUN_WEBSOCKET_SUBTESTS_1;
996 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,WebSocket2)997 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket2) {
998 RUN_WEBSOCKET_SUBTESTS_2;
999 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (WebSocket1))1000 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket1)) {
1001 RUN_WEBSOCKET_SUBTESTS_1;
1002 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (WebSocket2))1003 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket2)) {
1004 RUN_WEBSOCKET_SUBTESTS_2;
1005 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,WebSocket1)1006 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket1) {
1007 RUN_WEBSOCKET_SUBTESTS_1;
1008 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,WebSocket2)1009 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket2) {
1010 RUN_WEBSOCKET_SUBTESTS_2;
1011 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (WebSocket1))1012 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1013 MAYBE_PNACL_NONSFI(WebSocket1)) {
1014 RUN_WEBSOCKET_SUBTESTS_1;
1015 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (WebSocket2))1016 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1017 MAYBE_PNACL_NONSFI(WebSocket2)) {
1018 RUN_WEBSOCKET_SUBTESTS_2;
1019 }
1020
1021 // AudioConfig tests
1022 #define RUN_AUDIO_CONFIG_SUBTESTS \
1023 RunTestViaHTTP( \
1024 LIST_TEST(AudioConfig_RecommendSampleRate) \
1025 LIST_TEST(AudioConfig_ValidConfigs) \
1026 LIST_TEST(AudioConfig_InvalidConfigs) \
1027 )
1028
IN_PROC_BROWSER_TEST_F(PPAPITest,AudioConfig)1029 IN_PROC_BROWSER_TEST_F(PPAPITest, AudioConfig) {
1030 RUN_AUDIO_CONFIG_SUBTESTS;
1031 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,AudioConfig)1032 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, AudioConfig) {
1033 RUN_AUDIO_CONFIG_SUBTESTS;
1034 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,AudioConfig)1035 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioConfig) {
1036 RUN_AUDIO_CONFIG_SUBTESTS;
1037 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (AudioConfig))1038 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioConfig)) {
1039 RUN_AUDIO_CONFIG_SUBTESTS;
1040 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,AudioConfig)1041 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioConfig) {
1042 RUN_AUDIO_CONFIG_SUBTESTS;
1043 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (AudioConfig))1044 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1045 MAYBE_PNACL_NONSFI(AudioConfig)) {
1046 RUN_AUDIO_CONFIG_SUBTESTS;
1047 }
1048
1049 // PPB_Audio tests.
1050 #define RUN_AUDIO_SUBTESTS \
1051 RunTestViaHTTP( \
1052 LIST_TEST(Audio_Creation) \
1053 LIST_TEST(Audio_DestroyNoStop) \
1054 LIST_TEST(Audio_Failures) \
1055 LIST_TEST(Audio_AudioCallback1) \
1056 LIST_TEST(Audio_AudioCallback2) \
1057 LIST_TEST(Audio_AudioCallback3) \
1058 LIST_TEST(Audio_AudioCallback4) \
1059 )
1060
1061 // PPB_Audio is not supported in-process.
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,Audio)1062 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Audio) {
1063 RUN_AUDIO_SUBTESTS;
1064 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,Audio)1065 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, Audio) {
1066 RUN_AUDIO_SUBTESTS;
1067 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (Audio))1068 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(Audio)) {
1069 RUN_AUDIO_SUBTESTS;
1070 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,Audio)1071 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, Audio) {
1072 RUN_AUDIO_SUBTESTS;
1073 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (Audio))1074 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1075 MAYBE_PNACL_NONSFI(Audio)) {
1076 RUN_AUDIO_SUBTESTS;
1077 }
1078
1079 #define RUN_AUDIO_THREAD_CREATOR_SUBTESTS \
1080 RunTestViaHTTP( \
1081 LIST_TEST(Audio_AudioThreadCreatorIsRequired) \
1082 LIST_TEST(Audio_AudioThreadCreatorIsCalled) \
1083 )
1084
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,AudioThreadCreator)1085 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioThreadCreator) {
1086 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1087 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (AudioThreadCreator))1088 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioThreadCreator)) {
1089 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1090 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,AudioThreadCreator)1091 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioThreadCreator) {
1092 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1093 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (AudioThreadCreator))1094 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,
1095 MAYBE_PNACL_NONSFI(AudioThreadCreator)) {
1096 RUN_AUDIO_THREAD_CREATOR_SUBTESTS;
1097 }
1098
1099 TEST_PPAPI_IN_PROCESS(View_CreatedVisible);
1100 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible);
1101 TEST_PPAPI_NACL(View_CreatedVisible);
1102 // This test ensures that plugins created in a background tab have their
1103 // initial visibility set to false. We don't bother testing in-process for this
1104 // custom test since the out of process code also exercises in-process.
1105
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,View_CreateInvisible)1106 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) {
1107 // Make a second tab in the foreground.
1108 GURL url = GetTestFileUrl("View_CreatedInvisible");
1109 chrome::NavigateParams params(browser(), url, content::PAGE_TRANSITION_LINK);
1110 params.disposition = NEW_BACKGROUND_TAB;
1111 ui_test_utils::NavigateToURL(¶ms);
1112 }
1113
1114 // This test messes with tab visibility so is custom.
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,View_PageHideShow)1115 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_PageHideShow) {
1116 // The plugin will be loaded in the foreground tab and will send us a message.
1117 PPAPITestMessageHandler handler;
1118 content::JavascriptTestObserver observer(
1119 browser()->tab_strip_model()->GetActiveWebContents(),
1120 &handler);
1121
1122 GURL url = GetTestFileUrl("View_PageHideShow");
1123 ui_test_utils::NavigateToURL(browser(), url);
1124
1125 ASSERT_TRUE(observer.Run()) << handler.error_message();
1126 EXPECT_STREQ("TestPageHideShow:Created", handler.message().c_str());
1127 observer.Reset();
1128
1129 // Make a new tab to cause the original one to hide, this should trigger the
1130 // next phase of the test.
1131 chrome::NavigateParams params(
1132 browser(), GURL(url::kAboutBlankURL), content::PAGE_TRANSITION_LINK);
1133 params.disposition = NEW_FOREGROUND_TAB;
1134 ui_test_utils::NavigateToURL(¶ms);
1135
1136 // Wait until the test acks that it got hidden.
1137 ASSERT_TRUE(observer.Run()) << handler.error_message();
1138 EXPECT_STREQ("TestPageHideShow:Hidden", handler.message().c_str());
1139 observer.Reset();
1140
1141 // Switch back to the test tab.
1142 browser()->tab_strip_model()->ActivateTabAt(0, true);
1143
1144 ASSERT_TRUE(observer.Run()) << handler.error_message();
1145 EXPECT_STREQ("PASS", handler.message().c_str());
1146 }
1147
1148 // Tests that if a plugin accepts touch events, the browser knows to send touch
1149 // events to the renderer.
IN_PROC_BROWSER_TEST_F(PPAPITest,InputEvent_AcceptTouchEvent)1150 IN_PROC_BROWSER_TEST_F(PPAPITest, InputEvent_AcceptTouchEvent) {
1151 std::string positive_tests[] = { "InputEvent_AcceptTouchEvent_1",
1152 "InputEvent_AcceptTouchEvent_2",
1153 "InputEvent_AcceptTouchEvent_3",
1154 "InputEvent_AcceptTouchEvent_4"
1155 };
1156
1157 for (size_t i = 0; i < arraysize(positive_tests); ++i) {
1158 RenderViewHost* host = browser()->tab_strip_model()->
1159 GetActiveWebContents()->GetRenderViewHost();
1160 RunTest(positive_tests[i]);
1161 EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host));
1162 }
1163 }
1164
1165 // View tests.
1166 #define RUN_VIEW_SUBTESTS \
1167 RunTestViaHTTP( \
1168 LIST_TEST(View_SizeChange) \
1169 LIST_TEST(View_ClipChange) \
1170 LIST_TEST(View_ScrollOffsetChange) \
1171 )
1172
IN_PROC_BROWSER_TEST_F(PPAPITest,View)1173 IN_PROC_BROWSER_TEST_F(PPAPITest, View) {
1174 RUN_VIEW_SUBTESTS;
1175 }
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,View)1176 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View) {
1177 RUN_VIEW_SUBTESTS;
1178 }
IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest,View)1179 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, View) {
1180 RUN_VIEW_SUBTESTS;
1181 }
IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest,MAYBE_GLIBC (View))1182 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(View)) {
1183 RUN_VIEW_SUBTESTS;
1184 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest,View)1185 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, View) {
1186 RUN_VIEW_SUBTESTS;
1187 }
IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest,MAYBE_PNACL_NONSFI (View))1188 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClNonSfiTest, MAYBE_PNACL_NONSFI(View)) {
1189 RUN_VIEW_SUBTESTS;
1190 }
1191
1192 // FlashMessageLoop tests.
1193 #define RUN_FLASH_MESSAGE_LOOP_SUBTESTS \
1194 RunTest( \
1195 LIST_TEST(FlashMessageLoop_Basics) \
1196 LIST_TEST(FlashMessageLoop_RunWithoutQuit) \
1197 )
1198
IN_PROC_BROWSER_TEST_F(PPAPITest,FlashMessageLoop)1199 IN_PROC_BROWSER_TEST_F(PPAPITest, FlashMessageLoop) {
1200 RUN_FLASH_MESSAGE_LOOP_SUBTESTS;
1201 }
1202 #if defined(OS_LINUX) // Disabled due to flakiness http://crbug.com/316925
1203 #define MAYBE_FlashMessageLoop DISABLED_FlashMessageLoop
1204 #else
1205 #define MAYBE_FlashMessageLoop FlashMessageLoop
1206 #endif
IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,MAYBE_FlashMessageLoop)1207 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_FlashMessageLoop) {
1208 RUN_FLASH_MESSAGE_LOOP_SUBTESTS;
1209 }
1210
1211 #if defined(OS_WIN)
1212 // This test fails with the test compositor which is what's used by default for
1213 // browser tests on Windows. Renable when the software compositor is available.
1214 #define MAYBE_Compositor DISABLED_Compositor
1215 #elif defined(OS_MACOSX)
1216 // This test fails when using the legacy software mode. Reenable when the
1217 // software compositor is enabled crbug.com/286038
1218 #define MAYBE_Compositor DISABLED_Compositor
1219 #else
1220 #define MAYBE_Compositor Compositor
1221 #endif
1222 TEST_PPAPI_NACL(MAYBE_Compositor)
1223
TEST_PPAPI_NACL(MediaStreamAudioTrack)1224 TEST_PPAPI_NACL(MediaStreamAudioTrack)
1225
1226 TEST_PPAPI_NACL(MediaStreamVideoTrack)
1227
1228 TEST_PPAPI_NACL(MouseCursor)
1229
1230 TEST_PPAPI_NACL(NetworkProxy)
1231
1232 TEST_PPAPI_NACL(TrueTypeFont)
1233
1234 TEST_PPAPI_NACL(VideoDecoder)
1235
1236 // VideoDestination doesn't work in content_browsertests.
1237 TEST_PPAPI_OUT_OF_PROCESS(VideoDestination)
1238 TEST_PPAPI_NACL(VideoDestination)
1239
1240 // VideoSource doesn't work in content_browsertests.
1241 TEST_PPAPI_OUT_OF_PROCESS(VideoSource)
1242 TEST_PPAPI_NACL(VideoSource)
1243
1244 // Printing doesn't work in content_browsertests.
1245 TEST_PPAPI_OUT_OF_PROCESS(Printing)
1246
1247 // TODO(dmichael): Make this work on PNaCl and remove the macro.
1248 // crbug.com/384539
1249 TEST_PPAPI_NACL_NO_PNACL(MessageHandler)
1250
1251 TEST_PPAPI_NACL(MessageLoop_Basics)
1252 TEST_PPAPI_NACL(MessageLoop_Post)
1253
1254 // Going forward, Flash APIs will only work out-of-process.
1255 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset)
1256 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL)
1257 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting)
1258 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetCrashData)
1259 // http://crbug.com/176822
1260 #if !defined(OS_WIN)
1261 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard)
1262 #endif
1263 TEST_PPAPI_OUT_OF_PROCESS(FlashFile)
1264 // Mac/Aura reach NOTIMPLEMENTED/time out.
1265 // mac: http://crbug.com/96767
1266 // aura: http://crbug.com/104384
1267 #if defined(OS_MACOSX)
1268 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
1269 #else
1270 #define MAYBE_FlashFullscreen FlashFullscreen
1271 #endif
1272 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_FlashFullscreen)
1273
1274 TEST_PPAPI_OUT_OF_PROCESS(PDF)
1275
1276 // TODO(dalecurtis): Renable once the platform verification infobar has been
1277 // implemented; see http://crbug.com/270908
1278 // #if defined(OS_CHROMEOS)
1279 // TEST_PPAPI_OUT_OF_PROCESS(PlatformVerificationPrivate)
1280 // #endif
1281
1282 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashDRM) {
1283 RunTest(
1284 #if (defined(OS_WIN) && defined(ENABLE_RLZ)) || defined(OS_CHROMEOS)
1285 // Only implemented on Windows and ChromeOS currently.
1286 LIST_TEST(FlashDRM_GetDeviceID)
1287 #endif
1288 LIST_TEST(FlashDRM_GetHmonitor)
1289 LIST_TEST(FlashDRM_GetVoucherFile));
1290 }
1291
1292 TEST_PPAPI_IN_PROCESS(TalkPrivate)
1293 TEST_PPAPI_OUT_OF_PROCESS(TalkPrivate)
1294
1295 #if defined(OS_CHROMEOS)
1296 TEST_PPAPI_OUT_OF_PROCESS(OutputProtectionPrivate)
1297 #endif
1298