| OLD | NEW | 
|    1 // Copyright 2008-2009, Google Inc. |    1 // Copyright 2008-2009, Google Inc. | 
|    2 // All rights reserved. |    2 // All rights reserved. | 
|    3 // |    3 // | 
|    4 // Redistribution and use in source and binary forms, with or without |    4 // Redistribution and use in source and binary forms, with or without | 
|    5 // modification, are permitted provided that the following conditions are |    5 // modification, are permitted provided that the following conditions are | 
|    6 // met: |    6 // met: | 
|    7 // |    7 // | 
|    8 //    * Redistributions of source code must retain the above copyright |    8 //    * Redistributions of source code must retain the above copyright | 
|    9 // notice, this list of conditions and the following disclaimer. |    9 // notice, this list of conditions and the following disclaimer. | 
|   10 //    * Redistributions in binary form must reproduce the above |   10 //    * Redistributions in binary form must reproduce the above | 
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   73         testing::UnitTest::GetInstance()->current_test_info(); |   73         testing::UnitTest::GetInstance()->current_test_info(); | 
|   74     if (strcmp(test_info->name(), "MediaPlayerNew") == 0) { |   74     if (strcmp(test_info->name(), "MediaPlayerNew") == 0) { | 
|   75       // The installer adds our process names to the registry key below.  Since |   75       // The installer adds our process names to the registry key below.  Since | 
|   76       // the installer might not have run on this machine, add it manually. |   76       // the installer might not have run on this machine, add it manually. | 
|   77       RegKey regkey; |   77       RegKey regkey; | 
|   78       if (regkey.Open(HKEY_LOCAL_MACHINE, |   78       if (regkey.Open(HKEY_LOCAL_MACHINE, | 
|   79                       L"Software\\Microsoft\\MediaPlayer\\ShimInclusionList", |   79                       L"Software\\Microsoft\\MediaPlayer\\ShimInclusionList", | 
|   80                       KEY_WRITE)) { |   80                       KEY_WRITE)) { | 
|   81         regkey.CreateKey(L"CHROME.EXE", KEY_READ); |   81         regkey.CreateKey(L"CHROME.EXE", KEY_READ); | 
|   82       } |   82       } | 
|   83       launch_arguments_.AppendSwitch(kNoNativeActiveXShimSwitch); |  | 
|   84  |  | 
|   85     } else if (strcmp(test_info->name(), "MediaPlayerOld") == 0) { |   83     } else if (strcmp(test_info->name(), "MediaPlayerOld") == 0) { | 
|   86       // When testing the old WMP plugin, we need to force Chrome to not load |   84       // When testing the old WMP plugin, we need to force Chrome to not load | 
|   87       // the new plugin. |   85       // the new plugin. | 
|   88       launch_arguments_.AppendSwitch(kUseOldWMPPluginSwitch); |   86       launch_arguments_.AppendSwitch(kUseOldWMPPluginSwitch); | 
|   89       launch_arguments_.AppendSwitch(kNoNativeActiveXShimSwitch); |  | 
|   90     } else if (strcmp(test_info->name(), "FlashSecurity") == 0) { |   87     } else if (strcmp(test_info->name(), "FlashSecurity") == 0) { | 
|   91       launch_arguments_.AppendSwitchWithValue(switches::kTestSandbox, |   88       launch_arguments_.AppendSwitchWithValue(switches::kTestSandbox, | 
|   92                                               L"security_tests.dll"); |   89                                               L"security_tests.dll"); | 
|   93     } |   90     } | 
|   94  |   91  | 
|   95     UITest::SetUp(); |   92     UITest::SetUp(); | 
|   96   } |   93   } | 
|   97  |   94  | 
|   98   void TestPlugin(const std::wstring& test_case, |   95   void TestPlugin(const std::wstring& test_case, | 
|   99                   int timeout, |   96                   int timeout, | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  176 } |  173 } | 
|  177  |  174  | 
|  178 // http://crbug.com/8690 |  175 // http://crbug.com/8690 | 
|  179 TEST_F(PluginTest, DISABLED_Java) { |  176 TEST_F(PluginTest, DISABLED_Java) { | 
|  180   TestPlugin(L"Java.html", kShortWaitTimeout, false); |  177   TestPlugin(L"Java.html", kShortWaitTimeout, false); | 
|  181 } |  178 } | 
|  182  |  179  | 
|  183 TEST_F(PluginTest, Silverlight) { |  180 TEST_F(PluginTest, Silverlight) { | 
|  184   TestPlugin(L"silverlight.html", kShortWaitTimeout, false); |  181   TestPlugin(L"silverlight.html", kShortWaitTimeout, false); | 
|  185 } |  182 } | 
|  186  |  | 
|  187 typedef HRESULT (__stdcall* DllRegUnregServerFunc)(); |  | 
|  188  |  | 
|  189 class ActiveXTest : public PluginTest { |  | 
|  190  public: |  | 
|  191   ActiveXTest() { |  | 
|  192     dll_registered = false; |  | 
|  193   } |  | 
|  194  protected: |  | 
|  195   void TestActiveX(const std::wstring& test_case, int timeout, bool reg_dll) { |  | 
|  196     if (reg_dll) { |  | 
|  197       RegisterTestControl(true); |  | 
|  198       dll_registered = true; |  | 
|  199     } |  | 
|  200     TestPlugin(test_case, timeout, false); |  | 
|  201   } |  | 
|  202   virtual void TearDown() { |  | 
|  203     PluginTest::TearDown(); |  | 
|  204     if (dll_registered) |  | 
|  205       RegisterTestControl(false); |  | 
|  206   } |  | 
|  207   void RegisterTestControl(bool register_server) { |  | 
|  208     std::wstring test_control_path = browser_directory_.ToWStringHack() + |  | 
|  209         L"\\activex_test_control.dll"; |  | 
|  210     HMODULE h = LoadLibrary(test_control_path.c_str()); |  | 
|  211     ASSERT_TRUE(h != NULL) << "Failed to load activex_test_control.dll"; |  | 
|  212     const char* func_name = register_server ? |  | 
|  213                                 "DllRegisterServer" : "DllUnregisterServer"; |  | 
|  214     DllRegUnregServerFunc func = reinterpret_cast<DllRegUnregServerFunc>( |  | 
|  215         GetProcAddress(h, func_name)); |  | 
|  216     // This should never happen actually. |  | 
|  217     ASSERT_TRUE(func != NULL) << "Failed to find reg/unreg function."; |  | 
|  218     HRESULT hr = func(); |  | 
|  219     const char* error_message = register_server ? "Failed to register dll." |  | 
|  220                                                 : "Failed to unregister dll"; |  | 
|  221     ASSERT_TRUE(SUCCEEDED(hr)) << error_message; |  | 
|  222     FreeLibrary(h); |  | 
|  223   } |  | 
|  224  private: |  | 
|  225   bool dll_registered; |  | 
|  226 }; |  | 
|  227  |  | 
|  228 TEST_F(ActiveXTest, EmbeddedWMP) { |  | 
|  229   TestActiveX(L"activex_embedded_wmp.html", kLongWaitTimeout, false); |  | 
|  230 } |  | 
|  231  |  | 
|  232 TEST_F(ActiveXTest, WMP) { |  | 
|  233   TestActiveX(L"activex_wmp.html", kLongWaitTimeout, false); |  | 
|  234 } |  | 
|  235  |  | 
|  236 TEST_F(ActiveXTest, WMPNoEmbedMimeType) { |  | 
|  237   TestActiveX(L"activex_wmp_no_embed_mime_type.html", kLongWaitTimeout, false); |  | 
|  238 } |  | 
|  239  |  | 
|  240 TEST_F(ActiveXTest, DISABLED_CustomScripting) { |  | 
|  241   TestActiveX(L"activex_custom_scripting.html", kShortWaitTimeout, true); |  | 
|  242 } |  | 
|  243  |  | 
|  244 TEST_F(ActiveXTest, DISABLED_EmbeddedMP3) { |  | 
|  245   TestActiveX(L"mp3_test.html", kLongWaitTimeout, false); |  | 
|  246 } |  | 
|  247  |  | 
|  248 TEST_F(ActiveXTest, DISABLED_EmbeddedMPE) { |  | 
|  249   TestActiveX(L"mpe_test.html", kLongWaitTimeout, false); |  | 
|  250 } |  | 
|  251  |  | 
|  252  |  | 
|  253 // The default plugin tests defined below rely on the following webkit |  | 
|  254 // functions and the IsPluginProcess function which is defined in the global |  | 
|  255 // namespace. Stubbed these out for now. |  | 
|  256 namespace webkit_glue { |  | 
|  257  |  | 
|  258 bool DownloadUrl(const std::string& url, HWND caller_window) { |  | 
|  259   return false; |  | 
|  260 } |  | 
|  261  |  | 
|  262 bool GetPluginFinderURL(std::string* plugin_finder_url) { |  | 
|  263   return true; |  | 
|  264 } |  | 
|  265  |  | 
|  266 } // namespace webkit_glue |  | 
|  267  |  | 
|  268 bool IsPluginProcess() { |  | 
|  269   return false; |  | 
|  270 } |  | 
|  271  |  | 
|  272 TEST_F(PluginTest, DefaultPluginParsingTest) { |  | 
|  273   PluginInstallerImpl plugin_installer(NP_EMBED); |  | 
|  274   NPP_t plugin_instance = {0}; |  | 
|  275  |  | 
|  276   char *arg_names[] = { |  | 
|  277     "classid", |  | 
|  278     "codebase" |  | 
|  279   }; |  | 
|  280  |  | 
|  281   char *arg_values[] = { |  | 
|  282     "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", |  | 
|  283     "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab", |  | 
|  284   }; |  | 
|  285  |  | 
|  286   bool is_activex = false; |  | 
|  287   std::string raw_activex_clsid; |  | 
|  288   std::string activex_clsid; |  | 
|  289   std::string activex_codebase; |  | 
|  290   std::string plugin_download_url; |  | 
|  291   std::string plugin_finder_url; |  | 
|  292  |  | 
|  293   ASSERT_TRUE(PluginInstallerImpl::ParseInstantiationArguments( |  | 
|  294       "application/x-shockwave-flash", |  | 
|  295       &plugin_instance, |  | 
|  296       arraysize(arg_names), |  | 
|  297       arg_names, |  | 
|  298       arg_values, |  | 
|  299       &raw_activex_clsid, |  | 
|  300       &is_activex, |  | 
|  301       &activex_clsid, |  | 
|  302       &activex_codebase, |  | 
|  303       &plugin_download_url, |  | 
|  304       &plugin_finder_url)); |  | 
|  305  |  | 
|  306   EXPECT_EQ(is_activex, false); |  | 
|  307  |  | 
|  308  |  | 
|  309   ASSERT_TRUE(PluginInstallerImpl::ParseInstantiationArguments( |  | 
|  310       "", |  | 
|  311       &plugin_instance, |  | 
|  312       arraysize(arg_names), |  | 
|  313       arg_names, |  | 
|  314       arg_values, |  | 
|  315       &raw_activex_clsid, |  | 
|  316       &is_activex, |  | 
|  317       &activex_clsid, |  | 
|  318       &activex_codebase, |  | 
|  319       &plugin_download_url, |  | 
|  320       &plugin_finder_url)); |  | 
|  321  |  | 
|  322   EXPECT_EQ(is_activex, true); |  | 
|  323   EXPECT_EQ( |  | 
|  324       activex_codebase, |  | 
|  325       "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"); |  | 
|  326  |  | 
|  327   EXPECT_EQ(activex_clsid, "{D27CDB6E-AE6D-11cf-96B8-444553540000}"); |  | 
|  328   EXPECT_EQ(raw_activex_clsid, "D27CDB6E-AE6D-11cf-96B8-444553540000"); |  | 
|  329  |  | 
|  330   EXPECT_EQ( |  | 
|  331       activex_codebase, |  | 
|  332       "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"); |  | 
|  333 } |  | 
| OLD | NEW |