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_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_ 6#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_ 7 8#include <string> 9#include <vector> 10 11#include "chrome/browser/chromeos/input_method/input_method_engine_interface.h" 12#include "chromeos/ime/input_method_descriptor.h" 13 14namespace ui { 15class KeyEvent; 16} // namespace ui 17 18namespace ash { 19namespace ime { 20struct InputMethodMenuItem; 21} // namespace ime 22} // namespace ash 23 24namespace chromeos { 25 26class CompositionText; 27 28namespace input_method { 29class CandidateWindow; 30struct KeyEventHandle; 31} // namespace input_method 32 33class MockInputMethodEngine : public InputMethodEngineInterface { 34 public: 35 explicit MockInputMethodEngine(); 36 virtual ~MockInputMethodEngine(); 37 38 // InputMethodEngineInterface overrides. 39 virtual const std::string& GetActiveComponentId() const OVERRIDE; 40 virtual bool SetComposition(int context_id, 41 const char* text, 42 int selection_start, 43 int selection_end, 44 int cursor, 45 const std::vector<SegmentInfo>& segments, 46 std::string* error) OVERRIDE; 47 virtual bool ClearComposition(int context_id, std::string* error) OVERRIDE; 48 virtual bool CommitText(int context_id, const char* text, 49 std::string* error) OVERRIDE; 50 virtual bool SendKeyEvents(int context_id, 51 const std::vector<KeyboardEvent>& events) OVERRIDE; 52 virtual const CandidateWindowProperty& 53 GetCandidateWindowProperty() const OVERRIDE; 54 virtual void SetCandidateWindowProperty( 55 const CandidateWindowProperty& property) OVERRIDE; 56 virtual bool SetCandidateWindowVisible(bool visible, 57 std::string* error) OVERRIDE; 58 virtual bool SetCandidates(int context_id, 59 const std::vector<Candidate>& candidates, 60 std::string* error) OVERRIDE; 61 virtual bool SetCursorPosition(int context_id, int candidate_id, 62 std::string* error) OVERRIDE; 63 virtual bool SetMenuItems(const std::vector<MenuItem>& items) OVERRIDE; 64 virtual bool UpdateMenuItems(const std::vector<MenuItem>& items) OVERRIDE; 65 virtual bool IsActive() const OVERRIDE; 66 virtual bool DeleteSurroundingText(int context_id, 67 int offset, 68 size_t number_of_chars, 69 std::string* error) OVERRIDE; 70 71 // IMEEngineHandlerInterface overrides. 72 virtual void FocusIn( 73 const IMEEngineHandlerInterface::InputContext& input_context) OVERRIDE; 74 virtual void FocusOut() OVERRIDE; 75 virtual void Enable(const std::string& component_id) OVERRIDE; 76 virtual void Disable() OVERRIDE; 77 virtual void PropertyActivate(const std::string& property_name) OVERRIDE; 78 virtual void Reset() OVERRIDE; 79 virtual void ProcessKeyEvent(const ui::KeyEvent& key_event, 80 const KeyEventDoneCallback& callback) OVERRIDE; 81 virtual void CandidateClicked(uint32 index) OVERRIDE; 82 virtual void SetSurroundingText(const std::string& text, uint32 cursor_pos, 83 uint32 anchor_pos) OVERRIDE; 84 virtual void HideInputView() OVERRIDE; 85 86 std::string last_activated_property() const { 87 return last_activated_property_; 88 } 89 90 private: 91 std::string active_component_id_; 92 93 // The current candidate window property. 94 CandidateWindowProperty candidate_window_property_; 95 96 std::string last_activated_property_; 97}; 98 99} // namespace chromeos 100 101#endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_ENGINE_H_ 102