oobe_screen_waiter.h revision 1e9bf3e0803691d0a228da41fc608347b6db4340
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 CHROME_BROWSER_CHROMEOS_LOGIN_TEST_OOBE_SCREEN_WAITER_H_
6#define CHROME_BROWSER_CHROMEOS_LOGIN_TEST_OOBE_SCREEN_WAITER_H_
7
8#include "base/basictypes.h"
9#include "chrome/browser/chromeos/login/oobe_display.h"
10#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
11
12namespace content {
13class MessageLoopRunner;
14}
15
16namespace chromeos {
17
18// A waiter that blocks until the expected oobe screen is reached.
19class OobeScreenWaiter : public OobeUI::Observer {
20 public:
21  explicit OobeScreenWaiter(OobeDisplay::Screen expected_screen);
22  virtual ~OobeScreenWaiter();
23
24  void Wait();
25
26  // OobeUI::Observer implementation:
27  virtual void OnCurrentScreenChanged(
28        OobeDisplay::Screen current_screen,
29        OobeDisplay::Screen new_screen) OVERRIDE;
30
31 private:
32  OobeUI* GetOobeUI();
33
34  bool waiting_for_screen_;
35  OobeDisplay::Screen expected_screen_;
36  scoped_refptr<content::MessageLoopRunner> runner_;
37
38  DISALLOW_COPY_AND_ASSIGN(OobeScreenWaiter);
39};
40
41
42}  // namespace chromeos
43
44#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_TEST_OOBE_SCREEN_WAITER_H_
45