Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / chromecast / shell / browser / test / chromecast_browser_test_runner.cc
1 // Copyright 2014 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 "base/command_line.h"
6 #include "base/macros.h"
7 #include "base/sys_info.h"
8 #include "chromecast/shell/app/cast_main_delegate.h"
9 #include "content/public/common/content_switches.h"
10 #include "content/public/test/content_test_suite_base.h"
11 #include "content/public/test/test_launcher.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace chromecast {
15 namespace shell {
16
17 namespace {
18
19 const char kTestTypeBrowser[] = "browser";
20
21 class BrowserTestSuite : public content::ContentTestSuiteBase {
22  public:
23   BrowserTestSuite(int argc, char** argv)
24       : content::ContentTestSuiteBase(argc, argv) {
25   }
26   virtual ~BrowserTestSuite() {
27   }
28
29  private:
30   DISALLOW_COPY_AND_ASSIGN(BrowserTestSuite);
31 };
32
33 class ChromecastTestLauncherDelegate : public content::TestLauncherDelegate {
34  public:
35   ChromecastTestLauncherDelegate() {}
36   virtual ~ChromecastTestLauncherDelegate() {}
37
38   virtual int RunTestSuite(int argc, char** argv) OVERRIDE {
39     return BrowserTestSuite(argc, argv).Run();
40   }
41
42   virtual bool AdjustChildProcessCommandLine(
43       base::CommandLine* command_line,
44       const base::FilePath& temp_data_dir) OVERRIDE {
45     // TODO(gunsch): handle temp_data_dir
46     command_line->AppendSwitchASCII(switches::kTestType, kTestTypeBrowser);
47     return true;
48   }
49
50  protected:
51   virtual content::ContentMainDelegate* CreateContentMainDelegate() OVERRIDE {
52     return new CastMainDelegate();
53   }
54
55  private:
56   DISALLOW_COPY_AND_ASSIGN(ChromecastTestLauncherDelegate);
57 };
58
59 }  // namespace
60
61 }  // namespace shell
62 }  // namespace chromecast
63
64 int main(int argc, char** argv) {
65   int default_jobs = std::max(1, base::SysInfo::NumberOfProcessors() / 2);
66   chromecast::shell::ChromecastTestLauncherDelegate launcher_delegate;
67   return LaunchTests(&launcher_delegate, default_jobs, argc, argv);
68 }