Index: base/win/wrapped_window_proc_unittest.cc |
diff --git a/base/win/wrapped_window_proc_unittest.cc b/base/win/wrapped_window_proc_unittest.cc |
deleted file mode 100644 |
index 161c913481e073688df94e21b2ef61a626195982..0000000000000000000000000000000000000000 |
--- a/base/win/wrapped_window_proc_unittest.cc |
+++ /dev/null |
@@ -1,79 +0,0 @@ |
-// Copyright (c) 2011 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. |
- |
-#include "base/message_loop/message_loop.h" |
-#include "base/win/wrapped_window_proc.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-DWORD kExceptionCode = 12345; |
-WPARAM kCrashMsg = 98765; |
- |
-// A trivial WindowProc that generates an exception. |
-LRESULT CALLBACK TestWindowProc(HWND hwnd, UINT message, |
- WPARAM wparam, LPARAM lparam) { |
- if (message == kCrashMsg) |
- RaiseException(kExceptionCode, 0, 0, NULL); |
- return DefWindowProc(hwnd, message, wparam, lparam); |
-} |
- |
-// This class implements an exception filter that can be queried about a past |
-// exception. |
-class TestWrappedExceptionFiter { |
- public: |
- TestWrappedExceptionFiter() : called_(false) { |
- EXPECT_FALSE(s_filter_); |
- s_filter_ = this; |
- } |
- |
- ~TestWrappedExceptionFiter() { |
- EXPECT_EQ(s_filter_, this); |
- s_filter_ = NULL; |
- } |
- |
- bool called() { |
- return called_; |
- } |
- |
- // The actual exception filter just records the exception. |
- static int Filter(EXCEPTION_POINTERS* info) { |
- EXPECT_FALSE(s_filter_->called_); |
- if (info->ExceptionRecord->ExceptionCode == kExceptionCode) |
- s_filter_->called_ = true; |
- return EXCEPTION_EXECUTE_HANDLER; |
- } |
- |
- private: |
- bool called_; |
- static TestWrappedExceptionFiter* s_filter_; |
-}; |
-TestWrappedExceptionFiter* TestWrappedExceptionFiter::s_filter_ = NULL; |
- |
-} // namespace. |
- |
-TEST(WrappedWindowProc, CatchesExceptions) { |
- HINSTANCE hinst = GetModuleHandle(NULL); |
- std::wstring class_name(L"TestClass"); |
- |
- WNDCLASS wc = {0}; |
- wc.lpfnWndProc = base::win::WrappedWindowProc<TestWindowProc>; |
- wc.hInstance = hinst; |
- wc.lpszClassName = class_name.c_str(); |
- RegisterClass(&wc); |
- |
- HWND window = CreateWindow(class_name.c_str(), 0, 0, 0, 0, 0, 0, HWND_MESSAGE, |
- 0, hinst, 0); |
- ASSERT_TRUE(window); |
- |
- // Before generating the exception we make sure that the filter will see it. |
- TestWrappedExceptionFiter wrapper; |
- base::win::WinProcExceptionFilter old_filter = |
- base::win::SetWinProcExceptionFilter(TestWrappedExceptionFiter::Filter); |
- |
- SendMessage(window, kCrashMsg, 0, 0); |
- EXPECT_TRUE(wrapper.called()); |
- |
- base::win::SetWinProcExceptionFilter(old_filter); |
-} |