Index: media/blink/run_all_unittests.cc |
diff --git a/media/blink/run_all_unittests.cc b/media/blink/run_all_unittests.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..081a121418e55c764232311e35bc16df27045e17 |
--- /dev/null |
+++ b/media/blink/run_all_unittests.cc |
@@ -0,0 +1,85 @@ |
+// Copyright 2014 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 "base/bind.h" |
+#include "base/test/launcher/unit_test_launcher.h" |
+#include "base/test/test_suite.h" |
+#include "build/build_config.h" |
+#include "media/base/media.h" |
+#include "third_party/WebKit/public/web/WebKit.h" |
+ |
+#if defined(OS_ANDROID) |
+#include "base/android/jni_android.h" |
+#include "media/base/android/media_jni_registrar.h" |
+#include "ui/gl/android/gl_jni_registrar.h" |
+#endif |
+ |
+class TestBlinkPlatformSupport : NON_EXPORTED_BASE(public blink::Platform) { |
+ public: |
+ virtual ~TestBlinkPlatformSupport(); |
+ |
+ virtual void cryptographicallyRandomValues(unsigned char* buffer, |
+ size_t length) OVERRIDE; |
+ virtual const unsigned char* getTraceCategoryEnabledFlag( |
+ const char* categoryName) OVERRIDE; |
+}; |
+ |
+TestBlinkPlatformSupport::~TestBlinkPlatformSupport() {} |
+ |
+void TestBlinkPlatformSupport::cryptographicallyRandomValues( |
+ unsigned char* buffer, |
+ size_t length) { |
+} |
+ |
+const unsigned char* TestBlinkPlatformSupport::getTraceCategoryEnabledFlag( |
+ const char* categoryName) { |
+ static const unsigned char tracingIsDisabled = 0; |
+ return &tracingIsDisabled; |
+} |
+ |
+class BlinkMediaTestSuite : public base::TestSuite { |
+ public: |
+ BlinkMediaTestSuite(int argc, char** argv); |
+ virtual ~BlinkMediaTestSuite(); |
+ |
+ protected: |
+ virtual void Initialize() OVERRIDE; |
+ |
+ private: |
+ scoped_ptr<TestBlinkPlatformSupport> blink_platform_support_; |
+}; |
+ |
+BlinkMediaTestSuite::BlinkMediaTestSuite(int argc, char** argv) |
+ : TestSuite(argc, argv), |
+ blink_platform_support_(new TestBlinkPlatformSupport()) { |
+} |
+ |
+BlinkMediaTestSuite::~BlinkMediaTestSuite() {} |
+ |
+void BlinkMediaTestSuite::Initialize() { |
+ // Run TestSuite::Initialize first so that logging is initialized. |
+ base::TestSuite::Initialize(); |
+ |
+#if defined(OS_ANDROID) |
+ // Register JNI bindings for android. |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ // Needed for surface texture support. |
+ ui::gl::android::RegisterJni(env); |
+ media::RegisterJni(env); |
+#endif |
+ |
+ // Run this here instead of main() to ensure an AtExitManager is already |
+ // present. |
+ media::InitializeMediaLibraryForTesting(); |
+ |
+ blink::initialize(blink_platform_support_.get()); |
+} |
+ |
+int main(int argc, char** argv) { |
+ BlinkMediaTestSuite test_suite(argc, argv); |
+ |
+ return base::LaunchUnitTests( |
+ argc, argv, base::Bind(&BlinkMediaTestSuite::Run, |
+ base::Unretained(&test_suite))); |
+} |