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 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