1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef GIN_TEST_FILE_RUNNER_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define GIN_TEST_FILE_RUNNER_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/compiler_specific.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/files/file_path.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "gin/modules/module_runner_delegate.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "gin/runner.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace gin { 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// FileRunnerDelegate is a simple RunnerDelegate that's useful for running 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// tests. The FileRunnerDelegate provides built-in modules for "console" and 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// "gtest" that are useful when writing unit tests. 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// TODO(abarth): Rename FileRunnerDelegate to TestRunnerDelegate. 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class FileRunnerDelegate : public ModuleRunnerDelegate { 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FileRunnerDelegate(); 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~FileRunnerDelegate(); 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // From ModuleRunnerDelegate: 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void UnhandledException(ShellRunner* runner, 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) TryCatch& try_catch) OVERRIDE; 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(FileRunnerDelegate); 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void RunTestFromFile(const base::FilePath& path, FileRunnerDelegate* delegate, 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool run_until_idle = true); 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace gin 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // GIN_TEST_FILE_RUNNER_H_ 39