Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(544)

Side by Side Diff: content/test/content_test_launcher.cc

Issue 10803026: Get content_browsertest working. I've added a simple test for now, and will convert the tests in sr… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/public/test/test_launcher.h" 5 #include "content/public/test/test_launcher.h"
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "base/scoped_temp_dir.h" 11 #include "base/scoped_temp_dir.h"
12 #include "base/test/test_suite.h" 12 #include "base/test/test_suite.h"
13 #include "content/public/app/content_main.h" 13 #include "content/public/app/content_main.h"
14 #include "content/public/common/content_switches.h" 14 #include "content/public/common/content_switches.h"
15 #include "content/public/test/content_test_suite_base.h"
16 #include "content/shell/shell_content_browser_client.h"
17 #include "content/shell/shell_content_client.h"
15 #include "content/shell/shell_main_delegate.h" 18 #include "content/shell/shell_main_delegate.h"
19 #include "testing/gtest/include/gtest/gtest.h"
16 20
17 #if defined(OS_WIN) 21 #if defined(OS_WIN)
18 #include "content/public/app/startup_helper_win.h" 22 #include "content/public/app/startup_helper_win.h"
19 #include "sandbox/src/sandbox_types.h" 23 #include "sandbox/src/sandbox_types.h"
24 #include "ui/base/win/scoped_ole_initializer.h"
20 #endif // defined(OS_WIN) 25 #endif // defined(OS_WIN)
21 26
27 namespace content {
28
29 class ContentShellTestSuiteInitializer
30 : public testing::EmptyTestEventListener {
31 public:
32 ContentShellTestSuiteInitializer() {
33 }
34
35 virtual void OnTestStart(const testing::TestInfo& test_info) OVERRIDE {
36 DCHECK(!GetContentClient());
37 content_client_.reset(new ShellContentClient);
38 browser_content_client_.reset(new ShellContentBrowserClient());
39 content_client_->set_browser_for_testing(browser_content_client_.get());
40 SetContentClient(content_client_.get());
41 }
42
43 virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE {
44 DCHECK_EQ(content_client_.get(), GetContentClient());
45 browser_content_client_.reset();
46 content_client_.reset();
47 SetContentClient(NULL);
48 }
49
50 private:
51 scoped_ptr<ShellContentClient> content_client_;
52 scoped_ptr<ShellContentBrowserClient> browser_content_client_;
53
54 DISALLOW_COPY_AND_ASSIGN(ContentShellTestSuiteInitializer);
55 };
56
57 class ContentBrowserTestSuite : public ContentTestSuiteBase {
58 public:
59 ContentBrowserTestSuite(int argc, char** argv)
60 : ContentTestSuiteBase(argc, argv) {
61 }
62 virtual ~ContentBrowserTestSuite() {
63 }
64
65 protected:
66 virtual void Initialize() OVERRIDE {
67 ContentTestSuiteBase::Initialize();
68
69 testing::TestEventListeners& listeners =
70 testing::UnitTest::GetInstance()->listeners();
71 listeners.Append(new ContentShellTestSuiteInitializer);
72 }
73 virtual void Shutdown() OVERRIDE {
74 base::TestSuite::Shutdown();
75 }
76
77 virtual ContentClient* CreateClientForInitialization() OVERRIDE {
78 return new ShellContentClient();
79 }
80
81 #if defined(OS_WIN)
82 ui::ScopedOleInitializer ole_initializer_;
83 #endif
84 };
sky 2012/07/18 23:23:35 DISALLOW_...
jam 2012/07/18 23:44:06 Done.
85
86 } // namespace content
87
22 class ContentTestLauncherDelegate : public test_launcher::TestLauncherDelegate { 88 class ContentTestLauncherDelegate : public test_launcher::TestLauncherDelegate {
23 public: 89 public:
24 ContentTestLauncherDelegate() { 90 ContentTestLauncherDelegate() {
25 } 91 }
26 92
27 virtual ~ContentTestLauncherDelegate() { 93 virtual ~ContentTestLauncherDelegate() {
28 } 94 }
29 95
30 virtual void EarlyInitialize() OVERRIDE { 96 virtual void EarlyInitialize() OVERRIDE {
31 } 97 }
32 98
33 virtual bool Run(int argc, char** argv, int* return_code) OVERRIDE { 99 virtual bool Run(int argc, char** argv, int* return_code) OVERRIDE {
34 #if defined(OS_WIN) 100 #if defined(OS_WIN)
35 CommandLine* command_line = CommandLine::ForCurrentProcess(); 101 CommandLine* command_line = CommandLine::ForCurrentProcess();
36 if (command_line->HasSwitch(switches::kProcessType)) { 102 if (command_line->HasSwitch(switches::kProcessType)) {
37 sandbox::SandboxInterfaceInfo sandbox_info = {0}; 103 sandbox::SandboxInterfaceInfo sandbox_info = {0};
38 content::InitializeSandboxInfo(&sandbox_info); 104 content::InitializeSandboxInfo(&sandbox_info);
39 ShellMainDelegate delegate; 105 ShellMainDelegate delegate;
40 *return_code = 106 *return_code =
41 content::ContentMain(GetModuleHandle(NULL), &sandbox_info, &delegate); 107 content::ContentMain(GetModuleHandle(NULL), &sandbox_info, &delegate);
42 return true; 108 return true;
43 } 109 }
44 #endif // defined(OS_WIN) 110 #endif // defined(OS_WIN)
45 111
46 return false; 112 return false;
47 } 113 }
48 114
49 virtual int RunTestSuite(int argc, char** argv) OVERRIDE { 115 virtual int RunTestSuite(int argc, char** argv) OVERRIDE {
50 return base::TestSuite(argc, argv).Run(); 116 return content::ContentBrowserTestSuite(argc, argv).Run();
51 } 117 }
52 118
53 virtual bool AdjustChildProcessCommandLine( 119 virtual bool AdjustChildProcessCommandLine(
54 CommandLine* command_line) OVERRIDE { 120 CommandLine* command_line) OVERRIDE {
55 FilePath file_exe; 121 FilePath file_exe;
56 if (!PathService::Get(base::FILE_EXE, &file_exe)) 122 if (!PathService::Get(base::FILE_EXE, &file_exe))
57 return false; 123 return false;
58 command_line->AppendSwitchPath(switches::kBrowserSubprocessPath, file_exe); 124 command_line->AppendSwitchPath(switches::kBrowserSubprocessPath, file_exe);
59 return true; 125 return true;
60 } 126 }
61 127
62 private: 128 private:
63 DISALLOW_COPY_AND_ASSIGN(ContentTestLauncherDelegate); 129 DISALLOW_COPY_AND_ASSIGN(ContentTestLauncherDelegate);
64 }; 130 };
65 131
66 int main(int argc, char** argv) { 132 int main(int argc, char** argv) {
67 ContentTestLauncherDelegate launcher_delegate; 133 ContentTestLauncherDelegate launcher_delegate;
68 return test_launcher::LaunchTests(&launcher_delegate, argc, argv); 134 return test_launcher::LaunchTests(&launcher_delegate, argc, argv);
69 } 135 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698