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