• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "content/test/plugin/plugin_test_factory.h"
6 
7 #include "content/test/plugin/plugin_arguments_test.h"
8 #include "content/test/plugin/plugin_delete_plugin_in_stream_test.h"
9 #include "content/test/plugin/plugin_delete_plugin_in_deallocate_test.h"
10 #include "content/test/plugin/plugin_get_javascript_url_test.h"
11 #include "content/test/plugin/plugin_get_javascript_url2_test.h"
12 #include "content/test/plugin/plugin_geturl_test.h"
13 #include "content/test/plugin/plugin_javascript_open_popup.h"
14 #include "content/test/plugin/plugin_new_fails_test.h"
15 #include "content/test/plugin/plugin_npobject_identity_test.h"
16 #include "content/test/plugin/plugin_npobject_lifetime_test.h"
17 #include "content/test/plugin/plugin_npobject_proxy_test.h"
18 #include "content/test/plugin/plugin_private_test.h"
19 #include "content/test/plugin/plugin_request_read_test.h"
20 #include "content/test/plugin/plugin_schedule_timer_test.h"
21 #include "content/test/plugin/plugin_setup_test.h"
22 #include "content/test/plugin/plugin_thread_async_call_test.h"
23 #include "content/test/plugin/plugin_window_size_test.h"
24 #if defined(OS_WIN)
25 #include "content/test/plugin/plugin_windowed_test.h"
26 #endif
27 #include "content/test/plugin/plugin_windowless_test.h"
28 
29 namespace NPAPIClient {
30 
CreatePluginTest(const std::string & test_name,NPP instance,NPNetscapeFuncs * host_functions)31 PluginTest* CreatePluginTest(const std::string& test_name,
32                              NPP instance,
33                              NPNetscapeFuncs* host_functions) {
34   PluginTest* new_test = NULL;
35 
36   if (test_name == "arguments") {
37     new_test = new PluginArgumentsTest(instance, host_functions);
38   } else if (test_name == "geturl" || test_name == "geturl_404_response" ||
39              test_name == "geturl_fail_write" ||
40              test_name == "plugin_referrer_test" ||
41              test_name == "geturlredirectnotify" ||
42              test_name == "cookies") {
43     new_test = new PluginGetURLTest(instance, host_functions);
44   } else if (test_name == "npobject_identity") {
45     new_test = new NPObjectIdentityTest(instance, host_functions);
46   } else if (test_name == "npobject_proxy") {
47     new_test = new NPObjectProxyTest(instance, host_functions);
48   } else if (test_name == "invoke_js_function_on_create" ||
49              test_name == "resize_during_paint"
50 #if defined(OS_WIN) || defined(OS_MACOSX)
51           // TODO(port): plugin_windowless_test.*.
52           || test_name == "execute_script_delete_in_paint" ||
53              test_name == "execute_script_delete_in_mouse_up" ||
54              test_name == "delete_frame_test" ||
55              test_name == "multiple_instances_sync_calls" ||
56              test_name == "no_hang_if_init_crashes" ||
57              test_name == "convert_point"
58 #endif
59              ) {
60     new_test = new WindowlessPluginTest(instance, host_functions);
61   } else if (test_name == "getjavascripturl") {
62     new_test = new ExecuteGetJavascriptUrlTest(instance, host_functions);
63   } else if (test_name == "getjavascripturl2") {
64     new_test = new ExecuteGetJavascriptUrl2Test(instance, host_functions);
65 #if defined(OS_WIN)
66   // TODO(port): plugin_window_size_test.*.
67   } else if (test_name == "checkwindowrect") {
68     new_test = new PluginWindowSizeTest(instance, host_functions);
69 #endif
70   } else if (test_name == "self_delete_plugin_stream") {
71     new_test = new DeletePluginInStreamTest(instance, host_functions);
72 #if defined(OS_WIN)
73   // TODO(port): plugin_npobject_lifetime_test.*.
74   } else if (test_name == "npobject_lifetime_test") {
75     new_test = new NPObjectLifetimeTest(instance, host_functions);
76   } else if (test_name == "npobject_lifetime_test_second_instance") {
77     new_test = new NPObjectLifetimeTestInstance2(instance, host_functions);
78   } else if (test_name == "new_fails") {
79     new_test = new NewFailsTest(instance, host_functions);
80   } else if (test_name == "npobject_delete_plugin_in_evaluate" ||
81              test_name == "npobject_delete_create_plugin_in_evaluate") {
82     new_test = new NPObjectDeletePluginInNPN_Evaluate(instance, host_functions);
83 #endif
84   } else if (test_name == "plugin_javascript_open_popup_with_plugin") {
85     new_test = new ExecuteJavascriptOpenPopupWithPluginTest(
86         instance, host_functions);
87   } else if (test_name == "plugin_popup_with_plugin_target") {
88     new_test = new ExecuteJavascriptPopupWindowTargetPluginTest(
89         instance, host_functions);
90   } else if (test_name == "plugin_thread_async_call") {
91     new_test = new PluginThreadAsyncCallTest(instance, host_functions);
92   } else if (test_name == "private") {
93     new_test = new PrivateTest(instance, host_functions);
94   } else if (test_name == "schedule_timer") {
95     new_test = new ScheduleTimerTest(instance, host_functions);
96 #if defined(OS_WIN)
97   // TODO(port): plugin_windowed_test.*.
98   } else if (test_name == "hidden_plugin" ||
99              test_name == "create_instance_in_paint" ||
100              test_name == "alert_in_window_message" ||
101              test_name == "ensure_scripting_works_in_destroy" ||
102              test_name == "set_title_in_paint" ||
103              test_name == "set_title_in_set_window_and_paint") {
104     new_test = new WindowedPluginTest(instance, host_functions);
105 #endif
106   } else if (test_name == "setup") {
107     // "plugin" is the name for plugin documents.
108     new_test = new PluginSetupTest(instance, host_functions);
109   } else if (test_name == "delete_plugin_in_deallocate_test") {
110     new_test = new DeletePluginInDeallocateTest(instance, host_functions);
111   } else if (test_name == "plugin_request_read_single_range") {
112     new_test = new PluginRequestReadTest(instance, host_functions);
113   }
114 
115   return new_test;
116 }
117 
118 } // namespace NPAPIClient
119