Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine_unittest.cc

Issue 641243005: Support a private event - inputMethodPrivate.onCompositionBoundsChanged so that component IME exten… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits + unit test Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698