diff options
author | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 23:34:38 +0000 |
---|---|---|
committer | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 23:34:38 +0000 |
commit | ba443b7a9aa9d0a3c44a3176384f7c7582a9604b (patch) | |
tree | 7cfbef2cd1212272acb3312dbce4b98b473e02a7 /chrome_frame/test/chrome_frame_test_utils.cc | |
parent | 05982e124709e5a7ea5e04d2c0d0ef2d3597c8ea (diff) | |
download | chromium_src-ba443b7a9aa9d0a3c44a3176384f7c7582a9604b.zip chromium_src-ba443b7a9aa9d0a3c44a3176384f7c7582a9604b.tar.gz chromium_src-ba443b7a9aa9d0a3c44a3176384f7c7582a9604b.tar.bz2 |
Create first tests for verifying that Chrome Frame does not interfere with normal IE operation.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/1992018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47336 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test/chrome_frame_test_utils.cc')
-rw-r--r-- | chrome_frame/test/chrome_frame_test_utils.cc | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/chrome_frame/test/chrome_frame_test_utils.cc b/chrome_frame/test/chrome_frame_test_utils.cc index 1cc1f47..5b60922 100644 --- a/chrome_frame/test/chrome_frame_test_utils.cc +++ b/chrome_frame/test/chrome_frame_test_utils.cc @@ -14,6 +14,7 @@ #include "base/message_loop.h" #include "base/path_service.h" #include "base/registry.h" // to find IE and firefox +#include "base/scoped_bstr_win.h" #include "base/scoped_handle.h" #include "base/scoped_comptr_win.h" #include "base/utf_string_conversions.h" @@ -37,6 +38,7 @@ const wchar_t kSafariImageName[] = L"safari.exe"; const wchar_t kChromeImageName[] = L"chrome.exe"; const wchar_t kIEProfileName[] = L"iexplore"; const wchar_t kChromeLauncher[] = L"chrome_launcher.exe"; +const int kChromeFrameLongNavigationTimeoutInSeconds = 10; // Callback function for EnumThreadWindows. BOOL CALLBACK CloseWindowsThreadCallback(HWND hwnd, LPARAM param) { @@ -667,6 +669,11 @@ void WebBrowserEventSink::SendMouseClick(int x, int y, simulate_input::SendMouseClick(GetRendererWindow(), x, y, button); } +void WebBrowserEventSink::SendMouseClickToIE(int x, int y, + simulate_input::MouseButton button) { + simulate_input::SendMouseClick(GetIERendererWindow(), x, y, button); +} + void WebBrowserEventSink::ConnectToChromeFrame() { DCHECK(web_browser2_); if (chrome_frame_.get()) @@ -730,6 +737,24 @@ HWND WebBrowserEventSink::GetRendererWindow() { return renderer_window; } +HWND WebBrowserEventSink::GetIERendererWindow() { + DCHECK(web_browser2_); + HWND renderer_window = NULL; + ScopedComPtr<IDispatch> doc; + HRESULT hr = web_browser2_->get_Document(doc.Receive()); + EXPECT_HRESULT_SUCCEEDED(hr); + EXPECT_TRUE(doc); + if (doc) { + ScopedComPtr<IOleWindow> ole_window; + ole_window.QueryFrom(doc); + EXPECT_TRUE(ole_window); + if (ole_window) { + ole_window->GetWindow(&renderer_window); + } + } + return renderer_window; +} + HRESULT WebBrowserEventSink::SetWebBrowser(IWebBrowser2* web_browser2) { DCHECK(web_browser2_.get() == NULL); DCHECK(!is_main_browser_object_); @@ -749,7 +774,7 @@ HRESULT WebBrowserEventSink::CloseWebBrowser() { return S_OK; } -void WebBrowserEventSink::ExpectRendererWindowHasfocus() { +void WebBrowserEventSink::ExpectRendererWindowHasFocus() { HWND renderer_window = GetRendererWindow(); EXPECT_TRUE(IsWindow(renderer_window)); @@ -773,6 +798,31 @@ void WebBrowserEventSink::ExpectRendererWindowHasfocus() { EXPECT_TRUE(AttachThreadInput(GetCurrentThreadId(), renderer_thread, FALSE)); } +void WebBrowserEventSink::ExpectIERendererWindowHasFocus() { + HWND renderer_window = GetIERendererWindow(); + EXPECT_TRUE(IsWindow(renderer_window)); + + DWORD renderer_thread = 0; + DWORD renderer_process = 0; + renderer_thread = GetWindowThreadProcessId(renderer_window, + &renderer_process); + + ASSERT_TRUE(AttachThreadInput(GetCurrentThreadId(), renderer_thread, TRUE)); + HWND focus_window = GetFocus(); + EXPECT_TRUE(focus_window == renderer_window); + EXPECT_TRUE(AttachThreadInput(GetCurrentThreadId(), renderer_thread, FALSE)); +} + +void WebBrowserEventSink::ExpectAddressBarUrl( + const std::wstring& expected_url) { + DCHECK(web_browser2_); + if (web_browser2_) { + ScopedBstr address_bar_url; + EXPECT_EQ(S_OK, web_browser2_->get_LocationURL(address_bar_url.Receive())); + EXPECT_EQ(expected_url, std::wstring(address_bar_url)); + } +} + void WebBrowserEventSink::Exec(const GUID* cmd_group_guid, DWORD command_id, DWORD cmd_exec_opt, VARIANT* in_args, VARIANT* out_args) { |