• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 UI_BASE_IME_WIN_MOCK_TSF_BRIDGE_H_
6 #define UI_BASE_IME_WIN_MOCK_TSF_BRIDGE_H_
7 
8 #include <msctf.h>
9 
10 #include "base/compiler_specific.h"
11 #include "base/win/scoped_comptr.h"
12 #include "ui/base/ime/text_input_type.h"
13 #include "ui/base/ime/win/tsf_bridge.h"
14 
15 namespace ui {
16 
17 class MockTSFBridge : public TSFBridge {
18  public:
19   MockTSFBridge();
20   virtual ~MockTSFBridge();
21 
22   // TSFBridge:
23   virtual bool CancelComposition() OVERRIDE;
24   virtual bool ConfirmComposition() OVERRIDE;
25   virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE;
26   virtual void OnTextLayoutChanged() OVERRIDE;
27   virtual void SetFocusedClient(HWND focused_window,
28                                 TextInputClient* client) OVERRIDE;
29   virtual void RemoveFocusedClient(TextInputClient* client) OVERRIDE;
30   virtual base::win::ScopedComPtr<ITfThreadMgr> GetThreadManager() OVERRIDE;
31   virtual TextInputClient* GetFocusedTextInputClient() const OVERRIDE;
32 
33   // Resets MockTSFBridge state including function call counter.
34   void Reset();
35 
36   // Call count of EnableIME().
enable_ime_call_count()37   int enable_ime_call_count() const { return enable_ime_call_count_; }
38 
39   // Call count of DisableIME().
disalbe_ime_call_count()40   int disalbe_ime_call_count() const { return disalbe_ime_call_count_; }
41 
42   // Call count of CancelComposition().
cancel_composition_call_count()43   int cancel_composition_call_count() const {
44     return cancel_composition_call_count_;
45   }
46 
47   // Call count of ConfirmComposition().
confirm_composition_call_count()48   int confirm_composition_call_count() const {
49     return confirm_composition_call_count_;
50   }
51 
52   // Call count of OnTextLayoutChanged().
on_text_layout_changed()53   int on_text_layout_changed() const {
54     return on_text_layout_changed_;
55   }
56 
57   // Call count of AssociateFocus().
associate_focus_call_count()58   int associate_focus_call_count() const { return associate_focus_call_count_; }
59 
60   // Call count of SetFocusClient().
set_focused_client_call_count()61   int set_focused_client_call_count() const {
62     return set_focused_client_call_count_;
63   }
64 
65   // Call count of RemoveFocusedClient().
remove_focused_client_call_count()66   int remove_focused_client_call_count() const {
67     return remove_focused_client_call_count_;
68   }
69 
70   // Returns current TextInputClient.
text_input_clinet()71   TextInputClient* text_input_clinet() const { return text_input_client_; }
72 
73   // Returns currently focused window handle.
focused_window()74   HWND focused_window() const { return focused_window_; }
75 
76   // Returns latest text input type.
latest_text_iput_type()77   TextInputType latest_text_iput_type() const {
78     return latest_text_input_type_;
79   }
80 
81  private:
82   int enable_ime_call_count_;
83   int disalbe_ime_call_count_;
84   int cancel_composition_call_count_;
85   int confirm_composition_call_count_;
86   int on_text_layout_changed_;
87   int associate_focus_call_count_;
88   int set_focused_client_call_count_;
89   int remove_focused_client_call_count_;
90   TextInputClient* text_input_client_;
91   HWND focused_window_;
92   TextInputType latest_text_input_type_;
93   base::win::ScopedComPtr<ITfThreadMgr> thread_manager_;
94 
95   DISALLOW_COPY_AND_ASSIGN(MockTSFBridge);
96 };
97 
98 }  // namespace ui
99 
100 #endif  // UI_BASE_IME_WIN_MOCK_TSF_BRIDGE_H_
101