Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: chrome/test/plugin/plugin_test.cpp

Issue 200031: Take out the activex control. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/activex_test_control/resource.h ('k') | webkit/activex_shim/README » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/test/activex_test_control/resource.h ('k') | webkit/activex_shim/README » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698