1 // Copyright (c) 2012 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 "content/public/test/unittest_test_suite.h" 6 7 #include "base/logging.h" 8 #include "base/rand_util.h" 9 #include "base/test/test_suite.h" 10 #include "third_party/WebKit/public/platform/Platform.h" 11 #include "third_party/WebKit/public/web/WebKit.h" 12 13 namespace content { 14 15 #if !defined(OS_IOS) 16 // A stubbed out WebKit platform support impl. 17 class UnitTestTestSuite::UnitTestWebKitPlatformSupport 18 : public WebKit::Platform { 19 public: 20 UnitTestWebKitPlatformSupport() {} 21 virtual ~UnitTestWebKitPlatformSupport() {} 22 virtual void cryptographicallyRandomValues(unsigned char* buffer, 23 size_t length) OVERRIDE { 24 base::RandBytes(buffer, length); 25 } 26 virtual const unsigned char* getTraceCategoryEnabledFlag( 27 const char* categoryName) { 28 // Causes tracing macros to be disabled. 29 static const unsigned char kEnabled = 0; 30 return &kEnabled; 31 } 32 }; 33 #endif // !OS_IOS 34 35 UnitTestTestSuite::UnitTestTestSuite(base::TestSuite* test_suite) 36 : test_suite_(test_suite) { 37 DCHECK(test_suite); 38 #if !defined(OS_IOS) 39 webkit_platform_support_.reset(new UnitTestWebKitPlatformSupport); 40 WebKit::initialize(webkit_platform_support_.get()); 41 #endif 42 } 43 44 UnitTestTestSuite::~UnitTestTestSuite() { 45 #if !defined(OS_IOS) 46 WebKit::shutdown(); 47 #endif 48 } 49 50 int UnitTestTestSuite::Run() { 51 return test_suite_->Run(); 52 } 53 54 } // namespace content 55