1 // Copyright (c) 2006-2008 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 #ifndef TESTING_PLATFORM_TEST_H_
6 #define TESTING_PLATFORM_TEST_H_
7 
8 #include <gtest/gtest.h>
9 
10 #if defined(GTEST_OS_MAC)
11 #ifdef __OBJC__
12 @class NSAutoreleasePool;
13 #else
14 class NSAutoreleasePool;
15 #endif
16 
17 // The purpose of this class us to provide a hook for platform-specific
18 // operations across unit tests.  For example, on the Mac, it creates and
19 // releases an outer NSAutoreleasePool for each test case.  For now, it's only
20 // implemented on the Mac.  To enable this for another platform, just adjust
21 // the #ifdefs and add a platform_test_<platform>.cc implementation file.
22 class PlatformTest : public testing::Test {
23  public:
24   virtual ~PlatformTest();
25 
26  protected:
27   PlatformTest();
28 
29  private:
30   NSAutoreleasePool* pool_;
31 };
32 #else
33 typedef testing::Test PlatformTest;
34 #endif // GTEST_OS_MAC
35 
36 #endif // TESTING_PLATFORM_TEST_H_
37