OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/logging.h" | 5 #include "base/logging.h" |
6 #include "base/metrics/histogram.h" | 6 #include "base/metrics/histogram.h" |
7 #include "base/metrics/histogram_samples.h" | 7 #include "base/metrics/histogram_samples.h" |
8 #include "base/metrics/statistics_recorder.h" | 8 #include "base/metrics/statistics_recorder.h" |
9 #include "base/test/histogram_tester.h" | 9 #include "base/test/histogram_tester.h" |
10 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" | 10 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |
11 #include "chrome/browser/chromeos/input_method/input_method_engine.h" | 11 #include "chrome/browser/chromeos/input_method/input_method_engine.h" |
12 #include "chrome/browser/chromeos/input_method/input_method_engine_interface.h" | 12 #include "chrome/browser/chromeos/input_method/input_method_engine_interface.h" |
13 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" | 13 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" |
14 #include "chromeos/ime/extension_ime_util.h" | 14 #include "chromeos/ime/extension_ime_util.h" |
15 #include "chromeos/ime/mock_component_extension_ime_manager_delegate.h" | 15 #include "chromeos/ime/mock_component_extension_ime_manager_delegate.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
17 #include "ui/base/ime/chromeos/mock_ime_input_context_handler.h" | 17 #include "ui/base/ime/chromeos/mock_ime_input_context_handler.h" |
18 #include "ui/base/ime/text_input_flags.h" | 18 #include "ui/base/ime/text_input_flags.h" |
| 19 #include "ui/gfx/geometry/rect.h" |
19 | 20 |
20 namespace chromeos { | 21 namespace chromeos { |
21 | 22 |
22 namespace input_method { | 23 namespace input_method { |
23 namespace { | 24 namespace { |
24 | 25 |
25 const char kTestExtensionId[] = "mppnpdlheglhdfmldimlhpnegondlapf"; | 26 const char kTestExtensionId[] = "mppnpdlheglhdfmldimlhpnegondlapf"; |
26 const char kTestExtensionId2[] = "dmpipdbjkoajgdeppkffbjhngfckdloi"; | 27 const char kTestExtensionId2[] = "dmpipdbjkoajgdeppkffbjhngfckdloi"; |
27 const char kTestImeComponentId[] = "test_engine_id"; | 28 const char kTestImeComponentId[] = "test_engine_id"; |
28 | 29 |
29 enum CallsBitmap { | 30 enum CallsBitmap { |
30 NONE = 0U, | 31 NONE = 0U, |
31 ACTIVATE = 1U, | 32 ACTIVATE = 1U, |
32 DEACTIVATED = 2U, | 33 DEACTIVATED = 2U, |
33 ONFOCUS = 4U, | 34 ONFOCUS = 4U, |
34 ONBLUR = 8U | 35 ONBLUR = 8U, |
| 36 ONCOMPOSITIONBOUNDSCHANGED = 16U |
35 }; | 37 }; |
36 | 38 |
37 void InitInputMethod() { | 39 void InitInputMethod() { |
38 ComponentExtensionIMEManager* comp_ime_manager = | 40 ComponentExtensionIMEManager* comp_ime_manager = |
39 new ComponentExtensionIMEManager; | 41 new ComponentExtensionIMEManager; |
40 MockComponentExtIMEManagerDelegate* delegate = | 42 MockComponentExtIMEManagerDelegate* delegate = |
41 new MockComponentExtIMEManagerDelegate; | 43 new MockComponentExtIMEManagerDelegate; |
42 | 44 |
43 ComponentExtensionIME ext1; | 45 ComponentExtensionIME ext1; |
44 ext1.id = kTestExtensionId; | 46 ext1.id = kTestExtensionId; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 int candidate_id, | 92 int candidate_id, |
91 InputMethodEngineInterface::MouseButtonEvent button) override {} | 93 InputMethodEngineInterface::MouseButtonEvent button) override {} |
92 virtual void OnMenuItemActivated( | 94 virtual void OnMenuItemActivated( |
93 const std::string& engine_id, | 95 const std::string& engine_id, |
94 const std::string& menu_id) override {} | 96 const std::string& menu_id) override {} |
95 virtual void OnSurroundingTextChanged( | 97 virtual void OnSurroundingTextChanged( |
96 const std::string& engine_id, | 98 const std::string& engine_id, |
97 const std::string& text, | 99 const std::string& text, |
98 int cursor_pos, | 100 int cursor_pos, |
99 int anchor_pos) override {} | 101 int anchor_pos) override {} |
| 102 virtual void OnCompositionBoundsChanged(const gfx::Rect& bounds) override { |
| 103 calls_bitmap_ |= ONCOMPOSITIONBOUNDSCHANGED; |
| 104 } |
100 virtual void OnReset(const std::string& engine_id) override {} | 105 virtual void OnReset(const std::string& engine_id) override {} |
101 | 106 |
102 unsigned char GetCallsBitmapAndReset() { | 107 unsigned char GetCallsBitmapAndReset() { |
103 unsigned char ret = calls_bitmap_; | 108 unsigned char ret = calls_bitmap_; |
104 calls_bitmap_ = NONE; | 109 calls_bitmap_ = NONE; |
105 return ret; | 110 return ret; |
106 } | 111 } |
107 | 112 |
108 private: | 113 private: |
109 unsigned char calls_bitmap_; | 114 unsigned char calls_bitmap_; |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 engine_->CommitText(1, | 248 engine_->CommitText(1, |
244 "\xE5\x85\xA5\xE5\x8A\x9B", // 2 UTF-8 characters | 249 "\xE5\x85\xA5\xE5\x8A\x9B", // 2 UTF-8 characters |
245 &error); | 250 &error); |
246 engine_->CommitText(1, "input\xE5\x85\xA5\xE5\x8A\x9B", &error); | 251 engine_->CommitText(1, "input\xE5\x85\xA5\xE5\x8A\x9B", &error); |
247 histograms.ExpectTotalCount("InputMethod.CommitLength", 3); | 252 histograms.ExpectTotalCount("InputMethod.CommitLength", 3); |
248 histograms.ExpectBucketCount("InputMethod.CommitLength", 5, 1); | 253 histograms.ExpectBucketCount("InputMethod.CommitLength", 5, 1); |
249 histograms.ExpectBucketCount("InputMethod.CommitLength", 2, 1); | 254 histograms.ExpectBucketCount("InputMethod.CommitLength", 2, 1); |
250 histograms.ExpectBucketCount("InputMethod.CommitLength", 7, 1); | 255 histograms.ExpectBucketCount("InputMethod.CommitLength", 7, 1); |
251 } | 256 } |
252 | 257 |
| 258 TEST_F(InputMethodEngineTest, TestCompositionBoundsChanged) { |
| 259 CreateEngine(true); |
| 260 // Enable/disable with focus. |
| 261 engine_->SetCompositionBounds(gfx::Rect()); |
| 262 EXPECT_EQ(ONCOMPOSITIONBOUNDSCHANGED, |
| 263 observer_->GetCallsBitmapAndReset()); |
| 264 } |
| 265 |
253 } // namespace input_method | 266 } // namespace input_method |
254 } // namespace chromeos | 267 } // namespace chromeos |
OLD | NEW |