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 UI_BASE_IME_CHROMEOS_MOCK_IME_INPUT_CONTEXT_HANDLER_H_ 6 #define UI_BASE_IME_CHROMEOS_MOCK_IME_INPUT_CONTEXT_HANDLER_H_ 7 8 #include "chromeos/ime/composition_text.h" 9 #include "ui/base/ime/chromeos/ime_bridge.h" 10 #include "ui/base/ui_base_export.h" 11 12 namespace chromeos { 13 14 class UI_BASE_EXPORT MockIMEInputContextHandler 15 : public IMEInputContextHandlerInterface { 16 public: 17 struct UpdateCompositionTextArg { 18 CompositionText composition_text; 19 uint32 cursor_pos; 20 bool is_visible; 21 }; 22 23 struct DeleteSurroundingTextArg { 24 int32 offset; 25 uint32 length; 26 }; 27 28 MockIMEInputContextHandler(); 29 virtual ~MockIMEInputContextHandler(); 30 31 virtual void CommitText(const std::string& text) OVERRIDE; 32 virtual void UpdateCompositionText(const CompositionText& text, 33 uint32 cursor_pos, 34 bool visible) OVERRIDE; 35 virtual void DeleteSurroundingText(int32 offset, uint32 length) OVERRIDE; 36 37 int commit_text_call_count() const { return commit_text_call_count_; } 38 39 int update_preedit_text_call_count() const { 40 return update_preedit_text_call_count_; 41 } 42 43 int delete_surrounding_text_call_count() const { 44 return delete_surrounding_text_call_count_; 45 } 46 47 const std::string& last_commit_text() const { 48 return last_commit_text_; 49 }; 50 51 const UpdateCompositionTextArg& last_update_composition_arg() const { 52 return last_update_composition_arg_; 53 } 54 55 const DeleteSurroundingTextArg& last_delete_surrounding_text_arg() const { 56 return last_delete_surrounding_text_arg_; 57 } 58 59 // Resets all call count. 60 void Reset(); 61 62 private: 63 int commit_text_call_count_; 64 int update_preedit_text_call_count_; 65 int delete_surrounding_text_call_count_; 66 std::string last_commit_text_; 67 UpdateCompositionTextArg last_update_composition_arg_; 68 DeleteSurroundingTextArg last_delete_surrounding_text_arg_; 69 }; 70 71 } // namespace chromeos 72 73 #endif // UI_BASE_IME_CHROMEOS_MOCK_IME_INPUT_CONTEXT_HANDLER_H_ 74