1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/test/base/chrome_unit_test_suite.h" 6 7 #include "chrome/test/base/testing_browser_process.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 namespace { 11 12 // Creates a TestingBrowserProcess for each test. 13 class ChromeUnitTestSuiteInitializer : public testing::EmptyTestEventListener { 14 public: ChromeUnitTestSuiteInitializer()15 ChromeUnitTestSuiteInitializer() {} ~ChromeUnitTestSuiteInitializer()16 virtual ~ChromeUnitTestSuiteInitializer() {} 17 OnTestStart(const testing::TestInfo & test_info)18 virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE { 19 TestingBrowserProcess::CreateInstance(); 20 } 21 OnTestEnd(const testing::TestInfo & test_info)22 virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { 23 TestingBrowserProcess::DeleteInstance(); 24 } 25 26 private: 27 DISALLOW_COPY_AND_ASSIGN(ChromeUnitTestSuiteInitializer); 28 }; 29 30 } // namespace 31 ChromeUnitTestSuite(int argc,char ** argv)32ChromeUnitTestSuite::ChromeUnitTestSuite(int argc, char** argv) 33 : ChromeTestSuite(argc, argv) {} 34 ~ChromeUnitTestSuite()35ChromeUnitTestSuite::~ChromeUnitTestSuite() {} 36 Initialize()37void ChromeUnitTestSuite::Initialize() { 38 // Add an additional listener to do the extra initialization for unit tests. 39 // It will be started before the base class listeners and ended after the 40 // base class listeners. 41 testing::TestEventListeners& listeners = 42 testing::UnitTest::GetInstance()->listeners(); 43 listeners.Append(new ChromeUnitTestSuiteInitializer); 44 45 ChromeTestSuite::Initialize(); 46 } 47