1// Copyright 2013 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#ifndef GIN_TEST_FILE_RUNNER_H_
6#define GIN_TEST_FILE_RUNNER_H_
7
8#include "base/compiler_specific.h"
9#include "base/files/file_path.h"
10#include "gin/modules/module_runner_delegate.h"
11#include "gin/runner.h"
12
13namespace gin {
14
15// FileRunnerDelegate is a simple RunnerDelegate that's useful for running
16// tests. The FileRunnerDelegate provides built-in modules for "console" and
17// "gtest" that are useful when writing unit tests.
18//
19// TODO(abarth): Rename FileRunnerDelegate to TestRunnerDelegate.
20class FileRunnerDelegate : public ModuleRunnerDelegate {
21 public:
22  FileRunnerDelegate();
23  virtual ~FileRunnerDelegate();
24
25 private:
26  // From ModuleRunnerDelegate:
27  virtual void UnhandledException(ShellRunner* runner,
28                                  TryCatch& try_catch) OVERRIDE;
29
30  DISALLOW_COPY_AND_ASSIGN(FileRunnerDelegate);
31};
32
33void RunTestFromFile(const base::FilePath& path, FileRunnerDelegate* delegate,
34                     bool run_until_idle = true);
35
36}  // namespace gin
37
38#endif  // GIN_TEST_FILE_RUNNER_H_
39