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

Unified Diff: chrome_frame/test/chrome_frame_test_utils.h

Issue 126143005: Remove Chrome Frame code and resources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r244038 Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome_frame/test/chrome_frame_automation_mock.cc ('k') | chrome_frame/test/chrome_frame_test_utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome_frame/test/chrome_frame_test_utils.h
diff --git a/chrome_frame/test/chrome_frame_test_utils.h b/chrome_frame/test/chrome_frame_test_utils.h
deleted file mode 100644
index 316d57c238173f061a5573a456e5e08635f52355..0000000000000000000000000000000000000000
--- a/chrome_frame/test/chrome_frame_test_utils.h
+++ /dev/null
@@ -1,374 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_FRAME_TEST_CHROME_FRAME_TEST_UTILS_H_
-#define CHROME_FRAME_TEST_CHROME_FRAME_TEST_UTILS_H_
-
-#include <windows.h>
-
-#include <atlbase.h>
-#include <atlwin.h>
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/cancelable_callback.h"
-#include "base/compiler_specific.h"
-#include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "base/process/process_handle.h"
-#include "base/run_loop.h"
-#include "base/test/test_reg_util_win.h"
-#include "base/time/time.h"
-#include "base/time/time.h"
-#include "base/win/registry.h"
-#include "base/win/scoped_comptr.h"
-#include "chrome_frame/chrome_tab.h"
-#include "chrome_frame/test/simulate_input.h"
-#include "chrome_frame/test_utils.h"
-#include "chrome_frame/utils.h"
-
-#include "gtest/gtest.h"
-
-// Needed for CreateFunctor.
-#define GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING
-#include "testing/gmock_mutant.h"
-
-interface IWebBrowser2;
-
-namespace base {
-class FilePath;
-}
-
-namespace chrome_frame_test {
-
-int CloseVisibleWindowsOnAllThreads(HANDLE process);
-
-base::ProcessHandle LaunchIE(const std::wstring& url);
-base::ProcessHandle LaunchChrome(const std::wstring& url,
- const base::FilePath& user_data_dir);
-
-// Attempts to close all open IE windows.
-// The return value is the number of windows closed.
-// @note: this function requires COM to be initialized on the calling thread.
-// Since the caller might be running in either MTA or STA, the function does
-// not perform this initialization itself.
-int CloseAllIEWindows();
-
-// Saves a screen snapshot to the desktop and logs its location.
-bool TakeSnapshotAndLog();
-
-extern const wchar_t kIEImageName[];
-extern const wchar_t kIEBrokerImageName[];
-extern const char kChromeImageName[];
-extern const wchar_t kChromeLauncher[];
-extern const base::TimeDelta kChromeFrameLongNavigationTimeout;
-extern const base::TimeDelta kChromeFrameVeryLongNavigationTimeout;
-
-// Temporarily impersonate the current thread to low integrity for the lifetime
-// of the object. Destructor will automatically revert integrity level.
-class LowIntegrityToken {
- public:
- LowIntegrityToken();
- ~LowIntegrityToken();
- BOOL Impersonate();
- BOOL RevertToSelf();
- protected:
- static bool IsImpersonated();
- bool impersonated_;
-};
-
-// This class implements the COM IMessageFilter interface and is used to detect
-// hung outgoing COM calls which are typically to IE. If IE is hung for any
-// reason the chrome frame tests should not hang indefinitely. This class
-// basically cancels the outgoing call if the WM_TIMER which is set by the
-// TimedMsgLoop object is posted to the message queue.
-class HungCOMCallDetector
- : public CComObjectRootEx<CComMultiThreadModel>,
- public IMessageFilter,
- public CWindowImpl<HungCOMCallDetector> {
- public:
- HungCOMCallDetector()
- : is_hung_(false) {
- }
-
- ~HungCOMCallDetector() {
- TearDown();
- }
-
- BEGIN_MSG_MAP(HungCOMCallDetector)
- MESSAGE_HANDLER(WM_TIMER, OnTimer)
- END_MSG_MAP()
-
- BEGIN_COM_MAP(HungCOMCallDetector)
- COM_INTERFACE_ENTRY(IMessageFilter)
- END_COM_MAP()
-
- static CComObject<HungCOMCallDetector>* Setup(int timeout_seconds) {
- CComObject<HungCOMCallDetector>* this_instance = NULL;
- CComObject<HungCOMCallDetector>::CreateInstance(&this_instance);
- EXPECT_TRUE(this_instance != NULL);
- scoped_refptr<HungCOMCallDetector> ref_instance = this_instance;
-
- HRESULT hr = ref_instance->Initialize(timeout_seconds);
- if (FAILED(hr)) {
- LOG(ERROR) << "Failed to Initialize Hung COM call detector. Error:"
- << hr;
- return NULL;
- }
- return this_instance;
- }
-
- void TearDown() {
- if (prev_filter_) {
- base::win::ScopedComPtr<IMessageFilter> prev_filter;
- CoRegisterMessageFilter(prev_filter_.get(), prev_filter.Receive());
- DCHECK(prev_filter.IsSameObject(this));
- prev_filter_.Release();
- }
- if (IsWindow()) {
- DestroyWindow();
- m_hWnd = NULL;
- }
- }
-
- STDMETHOD_(DWORD, HandleInComingCall)(DWORD call_type,
- HTASK caller,
- DWORD tick_count,
- LPINTERFACEINFO interface_info) {
- return SERVERCALL_ISHANDLED;
- }
-
- STDMETHOD_(DWORD, RetryRejectedCall)(HTASK callee,
- DWORD tick_count,
- DWORD reject_type) {
- return -1;
- }
-
- STDMETHOD_(DWORD, MessagePending)(HTASK callee,
- DWORD tick_count,
- DWORD pending_type) {
- MSG msg = {0};
- if (is_hung_) {
- return PENDINGMSG_CANCELCALL;
- }
- return PENDINGMSG_WAITDEFPROCESS;
- }
-
- bool is_hung() const {
- return is_hung_;
- }
-
- LRESULT OnTimer(UINT msg, WPARAM wp, LPARAM lp, BOOL& handled) { // NOLINT
- is_hung_ = true;
- return 1;
- }
-
- private:
- HRESULT Initialize(int timeout_seconds) {
- // Create a window for the purpose of setting a windows timer for
- // detecting whether any outgoing COM call issued in this context
- // hangs.
- // We then register a COM message filter which basically looks for the
- // timer posted to this window and cancels the outgoing call.
- Create(HWND_MESSAGE);
- if (!IsWindow()) {
- LOG(ERROR) << "Failed to create window. Error:" << GetLastError();
- return E_FAIL;
- }
-
- HRESULT hr = CoRegisterMessageFilter(this, prev_filter_.Receive());
- if (FAILED(hr)) {
- LOG(ERROR) << "Failed to register message filter. Error:" << hr;
- return hr;
- }
-
- static const int kHungDetectTimerId = 0x0000baba;
- SetTimer(kHungDetectTimerId, 1000 * (timeout_seconds + 40), NULL);
- return S_OK;
- }
-
- // used to detect if outgoing COM calls hung.
- bool is_hung_;
- base::win::ScopedComPtr<IMessageFilter> prev_filter_;
-};
-
-// MessageLoopForUI wrapper that runs only for a limited time.
-// We need a UI message loop in the main thread.
-class TimedMsgLoop {
- public:
- TimedMsgLoop() : snapshot_on_timeout_(false), quit_loop_invoked_(false) {
- }
-
- void set_snapshot_on_timeout(bool value) {
- snapshot_on_timeout_ = value;
- }
-
- void RunFor(base::TimeDelta duration) {
- quit_loop_invoked_ = false;
- if (snapshot_on_timeout_)
- timeout_closure_.Reset(base::Bind(&TimedMsgLoop::SnapshotAndQuit));
- else
- timeout_closure_.Reset(base::MessageLoop::QuitClosure());
- loop_.PostDelayedTask(FROM_HERE, timeout_closure_.callback(), duration);
- loop_.base::MessageLoop::Run();
- timeout_closure_.Cancel();
- }
-
- void PostTask(const tracked_objects::Location& from_here,
- const base::Closure& task) {
- loop_.PostTask(from_here, task);
- }
-
- void PostDelayedTask(const tracked_objects::Location& from_here,
- const base::Closure& task, base::TimeDelta delay) {
- loop_.PostDelayedTask(from_here, task, delay);
- }
-
- void Quit() {
- // Quit after no delay.
- QuitAfter(base::TimeDelta());
- }
-
- void QuitAfter(base::TimeDelta delay) {
- timeout_closure_.Cancel();
- quit_loop_invoked_ = true;
- loop_.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitClosure(), delay);
- }
-
- bool WasTimedOut() const {
- return !quit_loop_invoked_;
- }
-
- void RunUntilIdle() {
- loop_.RunUntilIdle();
- }
-
- private:
- static void SnapshotAndQuit() {
- TakeSnapshotAndLog();
- base::MessageLoop::current()->Quit();
- }
-
- base::MessageLoopForUI loop_;
- base::CancelableClosure timeout_closure_;
- bool snapshot_on_timeout_;
- bool quit_loop_invoked_;
-};
-
-// Saves typing. It's somewhat hard to create a wrapper around
-// testing::InvokeWithoutArgs since it returns a
-// non-public (testing::internal) type.
-#define QUIT_LOOP(loop) testing::InvokeWithoutArgs(\
- testing::CreateFunctor(&loop, &chrome_frame_test::TimedMsgLoop::Quit))
-
-#define QUIT_LOOP_SOON(loop, delay) testing::InvokeWithoutArgs(\
- testing::CreateFunctor(&loop, &chrome_frame_test::TimedMsgLoop::QuitAfter, \
- delay))
-
-// Launches IE as a COM server and returns the corresponding IWebBrowser2
-// interface pointer.
-// Returns S_OK on success.
-HRESULT LaunchIEAsComServer(IWebBrowser2** web_browser);
-
-// Returns the path of the exe passed in.
-std::wstring GetExecutableAppPath(const std::wstring& file);
-
-// Returns the profile path to be used for IE. This varies as per version.
-base::FilePath GetProfilePathForIE();
-
-// Returns the version of the exe passed in.
-std::wstring GetExeVersion(const std::wstring& exe_path);
-
-// Returns the version of Internet Explorer on the machine.
-IEVersion GetInstalledIEVersion();
-
-// Returns the folder for CF test data.
-base::FilePath GetTestDataFolder();
-
-// Returns the folder for Selenium core.
-base::FilePath GetSeleniumTestFolder();
-
-// Returns the path portion of the url.
-std::wstring GetPathFromUrl(const std::wstring& url);
-
-// Returns the path and query portion of the url.
-std::wstring GetPathAndQueryFromUrl(const std::wstring& url);
-
-// Adds the CF meta tag to the html page. Returns true if successful.
-bool AddCFMetaTag(std::string* html_data);
-
-// Get text data from the clipboard.
-std::wstring GetClipboardText();
-
-// Destroys the clipboard for the current thread. This function must be called
-// if GetClipboardText() or SetClipboardText() have been invoked.
-void DestroyClipboard();
-
-// Puts the given text data on the clipboard. All previous items on the
-// clipboard are removed.
-void SetClipboardText(const std::wstring& text);
-
-// A convenience class to close all open IE windows at the end
-// of a scope. It's more convenient to do it this way than to
-// explicitly call chrome_frame_test::CloseAllIEWindows at the
-// end of a test since part of the test's cleanup code may be
-// in object destructors that would run after CloseAllIEWindows
-// would get called.
-// Ideally all IE windows should be closed when this happens so
-// if the test ran normally, we should not have any windows to
-// close at this point.
-class CloseIeAtEndOfScope {
- public:
- CloseIeAtEndOfScope() {}
- ~CloseIeAtEndOfScope();
-};
-
-// Starts the Chrome crash service which enables us to gather crash dumps
-// during test runs.
-base::ProcessHandle StartCrashService();
-
-// Used in tests where we reference the registry and don't want to run into
-// problems where existing registry settings might conflict with the
-// expectations of the test.
-class ScopedVirtualizeHklmAndHkcu {
- public:
- ScopedVirtualizeHklmAndHkcu();
- ~ScopedVirtualizeHklmAndHkcu();
-
- protected:
- registry_util::RegistryOverrideManager override_manager_;
-};
-
-// Attempts to kill all the processes on the current machine that were launched
-// from the given executable name, ending them with the given exit code. If
-// filter is non-null, then only processes selected by the filter are killed.
-// Returns true if all processes were able to be killed off, false if at least
-// one couldn't be killed.
-// NOTE: This function is based on the base\process_util.h helper function
-// KillProcesses. Takes in the wait flag as a parameter.
-bool KillProcesses(const std::wstring& executable_name, int exit_code,
- bool wait);
-
-// Returns the type of test bed, PER_USER or SYSTEM_LEVEL.
-ScopedChromeFrameRegistrar::RegistrationType GetTestBedType();
-
-// Clears IE8 session restore history.
-void ClearIESessionHistory();
-
-// Returns a local IPv4 address for the current machine. The address
-// corresponding to a NIC is preferred over the loopback address.
-std::string GetLocalIPv4Address();
-
-} // namespace chrome_frame_test
-
-// TODO(tommi): This is a temporary workaround while we're getting our
-// Singleton story straight. Ideally each test should clear up any singletons
-// it might have created, but test cases do not implicitly have their own
-// AtExitManager, so we have this workaround method for tests that depend on
-// "fresh" singletons. The implementation is in chrome_frame_unittest_main.cc.
-void DeleteAllSingletons();
-
-#endif // CHROME_FRAME_TEST_CHROME_FRAME_TEST_UTILS_H_
« no previous file with comments | « chrome_frame/test/chrome_frame_automation_mock.cc ('k') | chrome_frame/test/chrome_frame_test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698