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#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_TEST_WIZARD_IN_PROCESS_BROWSER_TEST_H_
6#define CHROME_BROWSER_CHROMEOS_LOGIN_TEST_WIZARD_IN_PROCESS_BROWSER_TEST_H_
7
8#include <string>
9
10#include "base/compiler_specific.h"
11#include "chrome/test/base/in_process_browser_test.h"
12
13class Browser;
14class Profile;
15
16namespace chromeos {
17
18class LoginDisplayHost;
19class WizardController;
20
21// Base class for test related to login wizard and its screens.
22// Instead of creating Chrome browser window it creates login wizard window
23// with specified parameters and allows to customize environment at the
24// right moment in time before wizard is created.
25class WizardInProcessBrowserTest : public InProcessBrowserTest {
26 public:
27  explicit WizardInProcessBrowserTest(const char* screen_name);
28
29  // Overridden from InProcessBrowserTest:
30  virtual void SetUp() OVERRIDE;
31
32 protected:
33  // Can be overriden by derived test fixtures to set up environment after
34  // browser is created but wizard is not shown yet.
35  virtual void SetUpWizard() {}
36
37  // Overriden from InProcessBrowserTest:
38  virtual void SetUpOnMainThread() OVERRIDE;
39  virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE;
40  virtual void TearDownOnMainThread() OVERRIDE;
41
42 private:
43  std::string screen_name_;
44  LoginDisplayHost* host_;
45
46  DISALLOW_COPY_AND_ASSIGN(WizardInProcessBrowserTest);
47};
48
49}  // namespace chromeos
50
51#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_TEST_WIZARD_IN_PROCESS_BROWSER_TEST_H_
52