| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <atlbase.h> | 5 #include <atlbase.h> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/process_util.h" | 8 #include "base/process_util.h" |
| 9 #include "base/test/test_suite.h" | 9 #include "base/test/test_suite.h" |
| 10 #include "base/threading/platform_thread.h" | 10 #include "base/threading/platform_thread.h" |
| 11 #include "base/win/scoped_com_initializer.h" | 11 #include "base/win/scoped_com_initializer.h" |
| 12 #include "chrome/common/chrome_paths.h" | 12 #include "chrome/common/chrome_paths.h" |
| 13 #include "chrome_frame/crash_server_init.h" | 13 #include "chrome_frame/crash_server_init.h" |
| 14 #include "chrome_frame/test/chrome_frame_test_utils.h" | 14 #include "chrome_frame/test/chrome_frame_test_utils.h" |
| 15 #include "chrome_frame/test/chrome_frame_ui_test_utils.h" | 15 #include "chrome_frame/test/chrome_frame_ui_test_utils.h" |
| 16 #include "chrome_frame/test/test_scrubber.h" |
| 16 #include "chrome_frame/test_utils.h" | 17 #include "chrome_frame/test_utils.h" |
| 17 #include "chrome_frame/utils.h" | 18 #include "chrome_frame/utils.h" |
| 18 | 19 |
| 19 // To enable ATL-based code to run in this module | 20 // To enable ATL-based code to run in this module |
| 20 class ChromeFrameUnittestsModule | 21 class ChromeFrameUnittestsModule |
| 21 : public CAtlExeModuleT<ChromeFrameUnittestsModule> { | 22 : public CAtlExeModuleT<ChromeFrameUnittestsModule> { |
| 22 public: | 23 public: |
| 23 static HRESULT InitializeCom() { | 24 static HRESULT InitializeCom() { |
| 24 // Note that this only gets called in versions of ATL included in | 25 // Note that this only gets called in versions of ATL included in |
| 25 // VS2008 and earlier. We still need it however since this gets called | 26 // VS2008 and earlier. We still need it however since this gets called |
| (...skipping 28 matching lines...) Expand all Loading... |
| 54 | 55 |
| 55 base::ProcessHandle crash_service = NULL; | 56 base::ProcessHandle crash_service = NULL; |
| 56 google_breakpad::scoped_ptr<google_breakpad::ExceptionHandler> breakpad; | 57 google_breakpad::scoped_ptr<google_breakpad::ExceptionHandler> breakpad; |
| 57 | 58 |
| 58 if (!CommandLine::ForCurrentProcess()->HasSwitch(kNoCrashService)) { | 59 if (!CommandLine::ForCurrentProcess()->HasSwitch(kNoCrashService)) { |
| 59 crash_service = chrome_frame_test::StartCrashService(); | 60 crash_service = chrome_frame_test::StartCrashService(); |
| 60 | 61 |
| 61 breakpad.reset(InitializeCrashReporting(HEADLESS)); | 62 breakpad.reset(InitializeCrashReporting(HEADLESS)); |
| 62 } | 63 } |
| 63 | 64 |
| 65 chrome_frame_test::InstallTestScrubber(testing::UnitTest::GetInstance()); |
| 66 |
| 64 int ret = -1; | 67 int ret = -1; |
| 65 // If mini_installer is used to register CF, we use the switch | 68 // If mini_installer is used to register CF, we use the switch |
| 66 // --no-registration to avoid repetitive registration. | 69 // --no-registration to avoid repetitive registration. |
| 67 if (CommandLine::ForCurrentProcess()->HasSwitch(kNoRegistrationSwitch)) { | 70 if (CommandLine::ForCurrentProcess()->HasSwitch(kNoRegistrationSwitch)) { |
| 68 ret = test_suite.Run(); | 71 ret = test_suite.Run(); |
| 69 } else { | 72 } else { |
| 70 // This will register the chrome frame in the build directory. It currently | 73 // This will register the chrome frame in the build directory. It currently |
| 71 // leaves that chrome frame registered once the tests are done. It must be | 74 // leaves that chrome frame registered once the tests are done. It must be |
| 72 // constructed AFTER the TestSuite is created since TestSuites create THE | 75 // constructed AFTER the TestSuite is created since TestSuites create THE |
| 73 // AtExitManager. | 76 // AtExitManager. |
| 74 // TODO(robertshield): Make these tests restore the original registration | 77 // TODO(robertshield): Make these tests restore the original registration |
| 75 // once done. | 78 // once done. |
| 76 ScopedChromeFrameRegistrar registrar(chrome_frame_test::GetTestBedType()); | 79 ScopedChromeFrameRegistrar registrar(chrome_frame_test::GetTestBedType()); |
| 77 | 80 |
| 78 // Register IAccessible2 proxy stub DLL, needed for some tests. | 81 // Register IAccessible2 proxy stub DLL, needed for some tests. |
| 79 ScopedChromeFrameRegistrar ia2_registrar( | 82 ScopedChromeFrameRegistrar ia2_registrar( |
| 80 chrome_frame_test::GetIAccessible2ProxyStubPath().value(), | 83 chrome_frame_test::GetIAccessible2ProxyStubPath().value(), |
| 81 ScopedChromeFrameRegistrar::SYSTEM_LEVEL); | 84 ScopedChromeFrameRegistrar::SYSTEM_LEVEL); |
| 82 ret = test_suite.Run(); | 85 ret = test_suite.Run(); |
| 83 } | 86 } |
| 84 | 87 |
| 85 DeleteConfigValue(kChromeFrameHeadlessMode); | 88 DeleteConfigValue(kChromeFrameHeadlessMode); |
| 86 DeleteConfigValue(kChromeFrameAccessibleMode); | 89 DeleteConfigValue(kChromeFrameAccessibleMode); |
| 87 | 90 |
| 88 if (crash_service) | 91 if (crash_service) |
| 89 base::KillProcess(crash_service, 0, false); | 92 base::KillProcess(crash_service, 0, false); |
| 90 return ret; | 93 return ret; |
| 91 } | 94 } |
| OLD | NEW |