summaryrefslogtreecommitdiffstats
path: root/chrome_frame/test_utils.cc
diff options
context:
space:
mode:
authorslightlyoff@chromium.org <slightlyoff@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-01 01:38:59 +0000
committerslightlyoff@chromium.org <slightlyoff@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-01 01:38:59 +0000
commit43c698f773c0bbcf87b5486fbc4d2fbcb7a24dae (patch)
treefe9fa68354573cf9c6a00dd220a6096e81e58c45 /chrome_frame/test_utils.cc
parentc664beb3d7ae2676c35db44d14eadd4b75c21164 (diff)
downloadchromium_src-43c698f773c0bbcf87b5486fbc4d2fbcb7a24dae.zip
chromium_src-43c698f773c0bbcf87b5486fbc4d2fbcb7a24dae.tar.gz
chromium_src-43c698f773c0bbcf87b5486fbc4d2fbcb7a24dae.tar.bz2
Test for GCF install flow auto-patching.
BUG=42790 TEST=run chrome_frame_tests.exe --gtest_filter=*InstallFlow* Review URL: http://codereview.chromium.org/1727018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46172 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test_utils.cc')
-rw-r--r--chrome_frame/test_utils.cc36
1 files changed, 31 insertions, 5 deletions
diff --git a/chrome_frame/test_utils.cc b/chrome_frame/test_utils.cc
index e1377c7..7f8161a 100644
--- a/chrome_frame/test_utils.cc
+++ b/chrome_frame/test_utils.cc
@@ -20,6 +20,7 @@
#include "testing/gtest/include/gtest/gtest.h"
const wchar_t kChromeFrameDllName[] = L"npchrome_frame.dll";
+const wchar_t kChromeLauncherExeName[] = L"chrome_launcher.exe";
const wchar_t kReferenceChromeFrameDllName[] = L"npchrome_tab.dll";
// Statics
@@ -52,25 +53,50 @@ void ScopedChromeFrameRegistrar::RegisterAtPath(
const std::wstring& path) {
ASSERT_FALSE(path.empty());
- HMODULE chrome_frame_dll_handle = LoadLibrary(path.c_str());
- ASSERT_TRUE(chrome_frame_dll_handle != NULL);
+ HMODULE dll_handle = LoadLibrary(path.c_str());
+ ASSERT_TRUE(dll_handle != NULL);
typedef HRESULT (STDAPICALLTYPE* DllRegisterServerFn)();
DllRegisterServerFn register_server =
reinterpret_cast<DllRegisterServerFn>(GetProcAddress(
- chrome_frame_dll_handle, "DllRegisterServer"));
+ dll_handle, "DllRegisterServer"));
ASSERT_TRUE(register_server != NULL);
EXPECT_HRESULT_SUCCEEDED((*register_server)());
DllRegisterServerFn register_npapi_server =
reinterpret_cast<DllRegisterServerFn>(GetProcAddress(
- chrome_frame_dll_handle, "RegisterNPAPIPlugin"));
+ dll_handle, "RegisterNPAPIPlugin"));
if (register_npapi_server != NULL)
EXPECT_HRESULT_SUCCEEDED((*register_npapi_server)());
- ASSERT_TRUE(FreeLibrary(chrome_frame_dll_handle));
+ ASSERT_TRUE(FreeLibrary(dll_handle));
+}
+
+void ScopedChromeFrameRegistrar::UnregisterAtPath(
+ const std::wstring& path) {
+
+ ASSERT_FALSE(path.empty());
+ HMODULE dll_handle = LoadLibrary(path.c_str());
+ ASSERT_TRUE(dll_handle != NULL);
+
+ typedef HRESULT (STDAPICALLTYPE* DllUnregisterServerFn)();
+ DllUnregisterServerFn unregister_server =
+ reinterpret_cast<DllUnregisterServerFn>(GetProcAddress(
+ dll_handle, "DllUnregisterServer"));
+
+ ASSERT_TRUE(unregister_server != NULL);
+ EXPECT_HRESULT_SUCCEEDED((*unregister_server)());
+
+ DllUnregisterServerFn unregister_npapi_server =
+ reinterpret_cast<DllUnregisterServerFn>(GetProcAddress(
+ dll_handle, "UnregisterNPAPIPlugin"));
+
+ if (unregister_npapi_server != NULL)
+ EXPECT_HRESULT_SUCCEEDED((*unregister_npapi_server)());
+
+ ASSERT_TRUE(FreeLibrary(dll_handle));
}
std::wstring ScopedChromeFrameRegistrar::GetReferenceChromeFrameDllPath() {