TEST(WebViewDestruction, DestroyHostWindow) { COMPtr<IWebView> webView; HostWindow window; HWND viewWindow; createAndInitializeWebView(webView, window, viewWindow); DestroyWindow(window.window()); finishWebViewDestructionTest(webView, viewWindow); }
TEST(WebViewDestruction, CloseThenDestroyHostWindow) { COMPtr<IWebView> webView; HostWindow window; HWND viewWindow; createAndInitializeWebView(webView, window, viewWindow); TEST_ASSERT(SUCCEEDED(webView->close())); DestroyWindow(window.window()); finishWebViewDestructionTest(webView, viewWindow); }
void WebViewDestructionWithHostWindow::SetUp() { WebViewDestruction::SetUp(); EXPECT_TRUE(m_window.initialize()); EXPECT_HRESULT_SUCCEEDED(m_webView->setHostWindow(reinterpret_cast<OLE_HANDLE>(m_window.window()))); EXPECT_HRESULT_SUCCEEDED(m_webView->initWithFrame(m_window.clientRect(), 0, 0)); COMPtr<IWebViewPrivate> viewPrivate(Query, m_webView); ASSERT_NOT_NULL(viewPrivate); EXPECT_HRESULT_SUCCEEDED(viewPrivate->viewWindow(reinterpret_cast<OLE_HANDLE*>(&m_viewWindow))); EXPECT_TRUE(::IsWindow(m_viewWindow)); }
static void createAndInitializeWebView(COMPtr<IWebView>& outWebView, HostWindow& window, HWND& viewWindow) { COMPtr<IWebView> webView; TEST_ASSERT(SUCCEEDED(WebKitCreateInstance(__uuidof(WebView), &webView))); TEST_ASSERT(window.initialize()); TEST_ASSERT(SUCCEEDED(webView->setHostWindow(reinterpret_cast<OLE_HANDLE>(window.window())))); TEST_ASSERT(SUCCEEDED(webView->initWithFrame(window.clientRect(), 0, 0))); COMPtr<IWebViewPrivate> viewPrivate(Query, webView); TEST_ASSERT(viewPrivate); TEST_ASSERT(SUCCEEDED(viewPrivate->viewWindow(reinterpret_cast<OLE_HANDLE*>(&viewWindow)))); TEST_ASSERT(IsWindow(viewWindow)); outWebView.adoptRef(webView.releaseRef()); }