blob: 21b8dbe75b7a017a32783acd914e745f39443291 [file] [log] [blame]
// Copyright 2020 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 MINI_CHROMIUM_TESTING_PLATFORM_TEST_H_
#define MINI_CHROMIUM_TESTING_PLATFORM_TEST_H_
#include "base/macros.h"
#include "build/build_config.h"
#include "gtest/gtest.h"
#if defined(OS_MACOSX)
#import <Foundation/Foundation.h>
// The implementation is in this header because mini_chromium does not directly
// depend on googletest. Consumers are free to use this interface if they do
// depend on googletest.
class PlatformTest : public testing::Test {
public:
~PlatformTest() override { [pool_ release]; }
protected:
PlatformTest() : pool_([[NSAutoreleasePool alloc] init]) {}
private:
#if !defined(__has_feature) || !__has_feature(objc_arc)
using PoolType = NSAutoreleasePool*;
#else
using PoolType = id;
#endif
PoolType pool_;
DISALLOW_COPY_AND_ASSIGN(PlatformTest);
};
#else
using PlatformTest = testing::Test;
#endif // OS_MACOSX
#endif // MINI_CHROMIUM_TESTING_PLATFORM_TEST_H_