// Copyright (c) 2012 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. #include "content/public/test/unittest_test_suite.h" #include "base/logging.h" #include "base/rand_util.h" #include "base/test/test_suite.h" #include "third_party/WebKit/public/platform/Platform.h" #include "third_party/WebKit/public/web/WebKit.h" namespace content { #if !defined(OS_IOS) // A stubbed out WebKit platform support impl. class UnitTestTestSuite::UnitTestWebKitPlatformSupport : public WebKit::Platform { public: UnitTestWebKitPlatformSupport() {} virtual ~UnitTestWebKitPlatformSupport() {} virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) OVERRIDE { base::RandBytes(buffer, length); } virtual const unsigned char* getTraceCategoryEnabledFlag( const char* categoryName) { // Causes tracing macros to be disabled. static const unsigned char kEnabled = 0; return &kEnabled; } }; #endif // !OS_IOS UnitTestTestSuite::UnitTestTestSuite(base::TestSuite* test_suite) : test_suite_(test_suite) { DCHECK(test_suite); #if !defined(OS_IOS) webkit_platform_support_.reset(new UnitTestWebKitPlatformSupport); WebKit::initialize(webkit_platform_support_.get()); #endif } UnitTestTestSuite::~UnitTestTestSuite() { #if !defined(OS_IOS) WebKit::shutdown(); #endif } int UnitTestTestSuite::Run() { return test_suite_->Run(); } } // namespace content