OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/chromeos/input_method/input_method_manager.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |
6 | 6 |
7 #include "chrome/test/base/in_process_browser_test.h" | 7 #include "chrome/test/base/in_process_browser_test.h" |
8 #include "ui/base/accelerators/accelerator.h" | 8 #include "ui/base/accelerators/accelerator.h" |
9 #include "ui/base/keycodes/keyboard_codes.h" | 9 #include "ui/base/keycodes/keyboard_codes.h" |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, ""); | 35 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, ""); |
36 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 36 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
37 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. | 37 // The hardware keyboard layout "xkb:us::eng" is always active, hence 2U. |
38 manager_->EnableInputMethods("ja", kKeyboardLayoutsOnly, ""); | 38 manager_->EnableInputMethods("ja", kKeyboardLayoutsOnly, ""); |
39 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 39 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
40 } | 40 } |
41 | 41 |
42 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestNextInputMethod) { | 42 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestNextInputMethod) { |
43 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); | 43 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); |
44 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 44 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
45 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 45 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
46 manager_->SwitchToNextInputMethod(); | 46 manager_->SwitchToNextInputMethod(); |
47 EXPECT_EQ("xkb:us:intl:eng", manager_->current_input_method().id()); | 47 EXPECT_EQ("xkb:us:intl:eng", manager_->GetCurrentInputMethod().id()); |
48 manager_->SwitchToNextInputMethod(); | 48 manager_->SwitchToNextInputMethod(); |
49 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->current_input_method().id()); | 49 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->GetCurrentInputMethod().id()); |
50 manager_->SwitchToNextInputMethod(); | 50 manager_->SwitchToNextInputMethod(); |
51 EXPECT_EQ("xkb:us:dvorak:eng", manager_->current_input_method().id()); | 51 EXPECT_EQ("xkb:us:dvorak:eng", manager_->GetCurrentInputMethod().id()); |
52 manager_->SwitchToNextInputMethod(); | 52 manager_->SwitchToNextInputMethod(); |
53 EXPECT_EQ("xkb:us:colemak:eng", manager_->current_input_method().id()); | 53 EXPECT_EQ("xkb:us:colemak:eng", manager_->GetCurrentInputMethod().id()); |
54 manager_->SwitchToNextInputMethod(); | 54 manager_->SwitchToNextInputMethod(); |
55 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 55 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
56 } | 56 } |
57 | 57 |
58 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestPreviousInputMethod) { | 58 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestPreviousInputMethod) { |
59 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); | 59 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); |
60 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 60 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
61 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 61 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
62 manager_->SwitchToNextInputMethod(); | 62 manager_->SwitchToNextInputMethod(); |
63 EXPECT_EQ("xkb:us:intl:eng", manager_->current_input_method().id()); | 63 EXPECT_EQ("xkb:us:intl:eng", manager_->GetCurrentInputMethod().id()); |
64 manager_->SwitchToPreviousInputMethod(); | 64 manager_->SwitchToPreviousInputMethod(); |
65 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 65 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
66 manager_->SwitchToPreviousInputMethod(); | 66 manager_->SwitchToPreviousInputMethod(); |
67 EXPECT_EQ("xkb:us:intl:eng", manager_->current_input_method().id()); | 67 EXPECT_EQ("xkb:us:intl:eng", manager_->GetCurrentInputMethod().id()); |
68 manager_->SwitchToPreviousInputMethod(); | 68 manager_->SwitchToPreviousInputMethod(); |
69 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 69 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
70 manager_->SwitchToNextInputMethod(); | 70 manager_->SwitchToNextInputMethod(); |
71 EXPECT_EQ("xkb:us:intl:eng", manager_->current_input_method().id()); | 71 EXPECT_EQ("xkb:us:intl:eng", manager_->GetCurrentInputMethod().id()); |
72 manager_->SwitchToNextInputMethod(); | 72 manager_->SwitchToNextInputMethod(); |
73 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->current_input_method().id()); | 73 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->GetCurrentInputMethod().id()); |
74 manager_->SwitchToPreviousInputMethod(); | 74 manager_->SwitchToPreviousInputMethod(); |
75 EXPECT_EQ("xkb:us:intl:eng", manager_->current_input_method().id()); | 75 EXPECT_EQ("xkb:us:intl:eng", manager_->GetCurrentInputMethod().id()); |
76 manager_->SwitchToPreviousInputMethod(); | 76 manager_->SwitchToPreviousInputMethod(); |
77 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->current_input_method().id()); | 77 EXPECT_EQ("xkb:us:altgr-intl:eng", manager_->GetCurrentInputMethod().id()); |
78 } | 78 } |
79 | 79 |
80 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestSwitchInputMethod) { | 80 IN_PROC_BROWSER_TEST_F(InputMethodManagerTest, TestSwitchInputMethod) { |
81 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); | 81 manager_->EnableInputMethods("en-US", kKeyboardLayoutsOnly, "xkb:us::eng"); |
82 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); | 82 EXPECT_EQ(5U, manager_->GetNumActiveInputMethods()); |
83 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 83 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
84 | 84 |
85 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs | 85 // Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs |
86 // and keyboards are enabled. | 86 // and keyboards are enabled. |
87 EXPECT_FALSE(manager_->SwitchInputMethod( | 87 EXPECT_FALSE(manager_->SwitchInputMethod( |
88 ui::Accelerator(ui::VKEY_CONVERT, false, false, false))); | 88 ui::Accelerator(ui::VKEY_CONVERT, false, false, false))); |
89 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 89 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
90 EXPECT_FALSE(manager_->SwitchInputMethod( | 90 EXPECT_FALSE(manager_->SwitchInputMethod( |
91 ui::Accelerator(ui::VKEY_NONCONVERT, false, false, false))); | 91 ui::Accelerator(ui::VKEY_NONCONVERT, false, false, false))); |
92 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 92 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
93 EXPECT_FALSE(manager_->SwitchInputMethod( | 93 EXPECT_FALSE(manager_->SwitchInputMethod( |
94 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, false, false, false))); | 94 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, false, false, false))); |
95 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 95 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
96 EXPECT_FALSE(manager_->SwitchInputMethod( | 96 EXPECT_FALSE(manager_->SwitchInputMethod( |
97 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, false, false, false))); | 97 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, false, false, false))); |
98 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 98 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
99 | 99 |
100 // Do the same tests for Korean. | 100 // Do the same tests for Korean. |
101 EXPECT_FALSE(manager_->SwitchInputMethod( | 101 EXPECT_FALSE(manager_->SwitchInputMethod( |
102 ui::Accelerator(ui::VKEY_HANGUL, false, false, false))); | 102 ui::Accelerator(ui::VKEY_HANGUL, false, false, false))); |
103 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 103 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
104 EXPECT_FALSE(manager_->SwitchInputMethod( | 104 EXPECT_FALSE(manager_->SwitchInputMethod( |
105 ui::Accelerator(ui::VKEY_SPACE, true, false, false))); | 105 ui::Accelerator(ui::VKEY_SPACE, true, false, false))); |
106 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 106 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
107 | 107 |
108 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. | 108 // Enable "xkb:jp::jpn" and press Muhenkan/ZenkakuHankaku. |
109 manager_->EnableInputMethods("ja", kKeyboardLayoutsOnly, "xkb:us::eng"); | 109 manager_->EnableInputMethods("ja", kKeyboardLayoutsOnly, "xkb:us::eng"); |
110 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 110 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
111 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 111 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
112 EXPECT_TRUE(manager_->SwitchInputMethod( | 112 EXPECT_TRUE(manager_->SwitchInputMethod( |
113 ui::Accelerator(ui::VKEY_NONCONVERT, false, false, false))); | 113 ui::Accelerator(ui::VKEY_NONCONVERT, false, false, false))); |
114 EXPECT_EQ("xkb:jp::jpn", manager_->current_input_method().id()); | 114 EXPECT_EQ("xkb:jp::jpn", manager_->GetCurrentInputMethod().id()); |
115 manager_->SwitchToPreviousInputMethod(); | 115 manager_->SwitchToPreviousInputMethod(); |
116 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 116 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
117 EXPECT_TRUE(manager_->SwitchInputMethod( | 117 EXPECT_TRUE(manager_->SwitchInputMethod( |
118 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, false, false, false))); | 118 ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, false, false, false))); |
119 EXPECT_EQ("xkb:jp::jpn", manager_->current_input_method().id()); | 119 EXPECT_EQ("xkb:jp::jpn", manager_->GetCurrentInputMethod().id()); |
120 manager_->SwitchToPreviousInputMethod(); | 120 manager_->SwitchToPreviousInputMethod(); |
121 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 121 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
122 EXPECT_TRUE(manager_->SwitchInputMethod( | 122 EXPECT_TRUE(manager_->SwitchInputMethod( |
123 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, false, false, false))); | 123 ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, false, false, false))); |
124 EXPECT_EQ("xkb:jp::jpn", manager_->current_input_method().id()); | 124 EXPECT_EQ("xkb:jp::jpn", manager_->GetCurrentInputMethod().id()); |
125 | 125 |
126 // Do the same tests for Korean. | 126 // Do the same tests for Korean. |
127 manager_->EnableInputMethods("ko", kKeyboardLayoutsOnly, "xkb:us::eng"); | 127 manager_->EnableInputMethods("ko", kKeyboardLayoutsOnly, "xkb:us::eng"); |
128 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); | 128 EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); |
129 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 129 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
130 EXPECT_TRUE(manager_->SwitchInputMethod( | 130 EXPECT_TRUE(manager_->SwitchInputMethod( |
131 ui::Accelerator(ui::VKEY_HANGUL, false, false, false))); | 131 ui::Accelerator(ui::VKEY_HANGUL, false, false, false))); |
132 EXPECT_EQ("xkb:kr:kr104:kor", manager_->current_input_method().id()); | 132 EXPECT_EQ("xkb:kr:kr104:kor", manager_->GetCurrentInputMethod().id()); |
133 manager_->SwitchToPreviousInputMethod(); | 133 manager_->SwitchToPreviousInputMethod(); |
134 EXPECT_EQ("xkb:us::eng", manager_->current_input_method().id()); | 134 EXPECT_EQ("xkb:us::eng", manager_->GetCurrentInputMethod().id()); |
135 EXPECT_TRUE(manager_->SwitchInputMethod( | 135 EXPECT_TRUE(manager_->SwitchInputMethod( |
136 ui::Accelerator(ui::VKEY_SPACE, true, false, false))); | 136 ui::Accelerator(ui::VKEY_SPACE, true, false, false))); |
137 EXPECT_EQ("xkb:kr:kr104:kor", manager_->current_input_method().id()); | 137 EXPECT_EQ("xkb:kr:kr104:kor", manager_->GetCurrentInputMethod().id()); |
138 } | 138 } |
139 | 139 |
140 } // namespace input_method | 140 } // namespace input_method |
141 } // namespace chromeos | 141 } // namespace chromeos |
OLD | NEW |