chromecast_browser_test_runner.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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
14namespace chromecast {
15namespace shell {
16
17namespace {
18
19const char kTestTypeBrowser[] = "browser";
20
21class 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
33class 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
64int 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}
69