|  | // Copyright (c) 2006-2008 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. | 
|  |  | 
|  | #ifndef TESTING_PLATFORM_TEST_H_ | 
|  | #define TESTING_PLATFORM_TEST_H_ | 
|  |  | 
|  | #include <gtest/gtest.h> | 
|  |  | 
|  | #if defined(GTEST_OS_MAC) | 
|  | #include <objc/objc.h> | 
|  |  | 
|  | // The purpose of this class us to provide a hook for platform-specific | 
|  | // operations across unit tests.  For example, on the Mac, it creates and | 
|  | // releases an outer NSAutoreleasePool for each test case.  For now, it's only | 
|  | // implemented on the Mac.  To enable this for another platform, just adjust | 
|  | // the #ifdefs and add a platform_test_<platform>.cc implementation file. | 
|  | class PlatformTest : public testing::Test { | 
|  | public: | 
|  | virtual ~PlatformTest(); | 
|  |  | 
|  | protected: | 
|  | PlatformTest(); | 
|  |  | 
|  | private: | 
|  | // |pool_| is a NSAutoreleasePool, but since this header may be imported from | 
|  | // files built with Objective-C ARC that forbids explicit usage of | 
|  | // NSAutoreleasePools, it is declared as id here. | 
|  | id pool_; | 
|  | }; | 
|  | #else | 
|  | typedef testing::Test PlatformTest; | 
|  | #endif // GTEST_OS_MAC | 
|  |  | 
|  | #endif // TESTING_PLATFORM_TEST_H_ |