Index: content/test/content_test_launcher.cc |
=================================================================== |
--- content/test/content_test_launcher.cc (revision 147044) |
+++ content/test/content_test_launcher.cc (working copy) |
@@ -12,13 +12,79 @@ |
#include "base/test/test_suite.h" |
#include "content/public/app/content_main.h" |
#include "content/public/common/content_switches.h" |
+#include "content/public/test/content_test_suite_base.h" |
+#include "content/shell/shell_content_browser_client.h" |
+#include "content/shell/shell_content_client.h" |
#include "content/shell/shell_main_delegate.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
#if defined(OS_WIN) |
#include "content/public/app/startup_helper_win.h" |
#include "sandbox/src/sandbox_types.h" |
+#include "ui/base/win/scoped_ole_initializer.h" |
#endif // defined(OS_WIN) |
+namespace content { |
+ |
+class ContentShellTestSuiteInitializer |
+ : public testing::EmptyTestEventListener { |
+ public: |
+ ContentShellTestSuiteInitializer() { |
+ } |
+ |
+ virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE { |
+ DCHECK(!GetContentClient()); |
+ content_client_.reset(new ShellContentClient); |
+ browser_content_client_.reset(new ShellContentBrowserClient()); |
+ content_client_->set_browser_for_testing(browser_content_client_.get()); |
+ SetContentClient(content_client_.get()); |
+ } |
+ |
+ virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { |
+ DCHECK_EQ(content_client_.get(), GetContentClient()); |
+ browser_content_client_.reset(); |
+ content_client_.reset(); |
+ SetContentClient(NULL); |
+ } |
+ |
+ private: |
+ scoped_ptr<ShellContentClient> content_client_; |
+ scoped_ptr<ShellContentBrowserClient> browser_content_client_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ContentShellTestSuiteInitializer); |
+}; |
+ |
+class ContentBrowserTestSuite : public ContentTestSuiteBase { |
+ public: |
+ ContentBrowserTestSuite(int argc, char** argv) |
+ : ContentTestSuiteBase(argc, argv) { |
+ } |
+ virtual ~ContentBrowserTestSuite() { |
+ } |
+ |
+ protected: |
+ virtual void Initialize() OVERRIDE { |
+ ContentTestSuiteBase::Initialize(); |
+ |
+ testing::TestEventListeners& listeners = |
+ testing::UnitTest::GetInstance()->listeners(); |
+ listeners.Append(new ContentShellTestSuiteInitializer); |
+ } |
+ virtual void Shutdown() OVERRIDE { |
+ base::TestSuite::Shutdown(); |
+ } |
+ |
+ virtual ContentClient* CreateClientForInitialization() OVERRIDE { |
+ return new ShellContentClient(); |
+ } |
+ |
+#if defined(OS_WIN) |
+ ui::ScopedOleInitializer ole_initializer_; |
+#endif |
+}; |
sky
2012/07/18 23:23:35
DISALLOW_...
jam
2012/07/18 23:44:06
Done.
|
+ |
+} // namespace content |
+ |
class ContentTestLauncherDelegate : public test_launcher::TestLauncherDelegate { |
public: |
ContentTestLauncherDelegate() { |
@@ -47,7 +113,7 @@ |
} |
virtual int RunTestSuite(int argc, char** argv) OVERRIDE { |
- return base::TestSuite(argc, argv).Run(); |
+ return content::ContentBrowserTestSuite(argc, argv).Run(); |
} |
virtual bool AdjustChildProcessCommandLine( |