• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 blink::Platform {
19  public:
UnitTestWebKitPlatformSupport()20   UnitTestWebKitPlatformSupport() {}
~UnitTestWebKitPlatformSupport()21   virtual ~UnitTestWebKitPlatformSupport() {}
cryptographicallyRandomValues(unsigned char * buffer,size_t length)22   virtual void cryptographicallyRandomValues(unsigned char* buffer,
23                                              size_t length) OVERRIDE {
24     base::RandBytes(buffer, length);
25   }
getTraceCategoryEnabledFlag(const char * categoryName)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 
UnitTestTestSuite(base::TestSuite * test_suite)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   blink::initialize(webkit_platform_support_.get());
41 #endif
42 }
43 
~UnitTestTestSuite()44 UnitTestTestSuite::~UnitTestTestSuite() {
45 #if !defined(OS_IOS)
46   blink::shutdown();
47 #endif
48 }
49 
Run()50 int UnitTestTestSuite::Run() {
51   return test_suite_->Run();
52 }
53 
54 }  // namespace content
55