mock_candidate_window_controller.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 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_INPUT_METHOD_MOCK_CANDIDATE_WINDOW_CONTROLLER_H_
6#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_CANDIDATE_WINDOW_CONTROLLER_H_
7
8#include "base/basictypes.h"
9#include "base/observer_list.h"
10#include "chrome/browser/chromeos/input_method/candidate_window_controller.h"
11
12namespace chromeos {
13namespace input_method {
14
15// The mock CandidateWindowController implementation for testing.
16class MockCandidateWindowController : public CandidateWindowController {
17 public:
18  MockCandidateWindowController();
19  virtual ~MockCandidateWindowController();
20
21  // CandidateWindowController overrides:
22  virtual bool Init(IBusController* controller) OVERRIDE;
23  virtual void Shutdown(IBusController* controller) OVERRIDE;
24  virtual void AddObserver(Observer* observer) OVERRIDE;
25  virtual void RemoveObserver(Observer* observer) OVERRIDE;
26
27  // Notifies observers.
28  void NotifyCandidateWindowOpened();
29  void NotifyCandidateWindowClosed();
30
31  int init_count_;
32  int add_observer_count_;
33  int remove_observer_count_;
34
35 private:
36  ObserverList<CandidateWindowController::Observer> observers_;
37
38  DISALLOW_COPY_AND_ASSIGN(MockCandidateWindowController);
39};
40
41}  // namespace input_method
42}  // namespace chromeos
43
44#endif  // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_CANDIDATE_WINDOW_CONTROLLER_H_
45