summaryrefslogtreecommitdiffstats
path: root/chrome_frame/test
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_frame/test')
-rw-r--r--chrome_frame/test/chrome_frame_unittests.cc31
1 files changed, 30 insertions, 1 deletions
diff --git a/chrome_frame/test/chrome_frame_unittests.cc b/chrome_frame/test/chrome_frame_unittests.cc
index 875695e..c9d081a 100644
--- a/chrome_frame/test/chrome_frame_unittests.cc
+++ b/chrome_frame/test/chrome_frame_unittests.cc
@@ -101,7 +101,10 @@ void ChromeFrameTestWithWebServer::TearDown() {
bool ChromeFrameTestWithWebServer::LaunchBrowser(BrowserKind browser,
const wchar_t* page) {
- std::wstring url = UTF8ToWide(server_.Resolve(page).spec());
+ std::wstring url = page;
+ if (url.find(L"files/") != std::wstring::npos)
+ url = UTF8ToWide(server_.Resolve(page).spec());
+
browser_ = browser;
if (browser == IE) {
browser_handle_.Set(chrome_frame_test::LaunchIE(url));
@@ -1741,3 +1744,29 @@ TEST_F(ChromeFrameTestWithWebServer, FullTabModeIE_BackForward) {
chrome_frame_test::CloseAllIEWindows();
}
+const wchar_t kChromeFrameAboutBlankUrl[] = L"cf:about:blank";
+
+TEST_F(ChromeFrameTestWithWebServer, FullTabModeIE_ChromeFrameFocusTest) {
+ TimedMsgLoop loop;
+
+ ASSERT_TRUE(LaunchBrowser(IE, kChromeFrameAboutBlankUrl));
+
+ // Allow some time for chrome to be launched.
+ loop.RunFor(kChromeFrameLaunchDelay);
+
+ HWND renderer_window = chrome_frame_test::GetChromeRendererWindow();
+ EXPECT_TRUE(IsWindow(renderer_window));
+
+ DWORD renderer_thread_id = 0;
+ DWORD renderer_process_id = 0;
+ renderer_thread_id = GetWindowThreadProcessId(renderer_window,
+ &renderer_process_id);
+
+ AttachThreadInput(GetCurrentThreadId(), renderer_thread_id, TRUE);
+ HWND focus_window = GetFocus();
+ EXPECT_TRUE(focus_window == renderer_window);
+ AttachThreadInput(GetCurrentThreadId(), renderer_thread_id, FALSE);
+
+ chrome_frame_test::CloseAllIEWindows();
+}
+