| OLD | NEW |
| (Empty) |
| 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 #include "ui/base/ime/win/imm32_manager.h" | |
| 6 | |
| 7 #include "testing/gtest/include/gtest/gtest.h" | |
| 8 | |
| 9 namespace ui { | |
| 10 namespace { | |
| 11 | |
| 12 struct InputModeTestCase { | |
| 13 TextInputMode input_mode; | |
| 14 DWORD conversion_mode; | |
| 15 BOOL expected_open; | |
| 16 DWORD expected_conversion_mode; | |
| 17 }; | |
| 18 | |
| 19 // Google Test pretty-printer. | |
| 20 void PrintTo(const InputModeTestCase& data, std::ostream* os) { | |
| 21 *os << " input_mode: " << testing::PrintToString(data.input_mode) | |
| 22 << "; conversion_mode: " << testing::PrintToString(data.conversion_mode); | |
| 23 } | |
| 24 | |
| 25 class IMM32ManagerTest | |
| 26 : public ::testing::TestWithParam<InputModeTestCase> { | |
| 27 }; | |
| 28 | |
| 29 const InputModeTestCase | |
| 30 kInputModeTestCases[] = { | |
| 31 {TEXT_INPUT_MODE_DEFAULT, 0, FALSE, 0}, | |
| 32 {TEXT_INPUT_MODE_DEFAULT, IME_CMODE_NATIVE, FALSE, IME_CMODE_NATIVE}, | |
| 33 {TEXT_INPUT_MODE_VERBATIM, 0, FALSE, 0}, | |
| 34 {TEXT_INPUT_MODE_VERBATIM, IME_CMODE_KATAKANA, FALSE, IME_CMODE_KATAKANA}, | |
| 35 {TEXT_INPUT_MODE_LATIN, 0, FALSE, 0}, | |
| 36 {TEXT_INPUT_MODE_LATIN, IME_CMODE_NATIVE, FALSE, IME_CMODE_NATIVE}, | |
| 37 {TEXT_INPUT_MODE_LATIN_NAME, 0, FALSE, 0}, | |
| 38 {TEXT_INPUT_MODE_LATIN_NAME, IME_CMODE_NATIVE, FALSE, IME_CMODE_NATIVE}, | |
| 39 {TEXT_INPUT_MODE_LATIN_PROSE, 0, FALSE, 0}, | |
| 40 {TEXT_INPUT_MODE_LATIN_PROSE, IME_CMODE_NATIVE, FALSE, IME_CMODE_NATIVE}, | |
| 41 {TEXT_INPUT_MODE_FULL_WIDTH_LATIN, | |
| 42 IME_CMODE_NATIVE | IME_CMODE_KATAKANA | IME_CMODE_FULLSHAPE, | |
| 43 TRUE, | |
| 44 IME_CMODE_FULLSHAPE}, | |
| 45 {TEXT_INPUT_MODE_KANA, | |
| 46 0, | |
| 47 TRUE, | |
| 48 IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE}, | |
| 49 {TEXT_INPUT_MODE_KANA, | |
| 50 IME_CMODE_ROMAN, | |
| 51 TRUE, | |
| 52 IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE | IME_CMODE_ROMAN}, | |
| 53 {TEXT_INPUT_MODE_KATAKANA, | |
| 54 IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE, | |
| 55 TRUE, | |
| 56 IME_CMODE_NATIVE | IME_CMODE_KATAKANA | IME_CMODE_FULLSHAPE}, | |
| 57 {TEXT_INPUT_MODE_KATAKANA, | |
| 58 IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE | IME_CMODE_ROMAN, | |
| 59 TRUE, | |
| 60 IME_CMODE_NATIVE | IME_CMODE_KATAKANA | IME_CMODE_FULLSHAPE | |
| 61 | IME_CMODE_ROMAN}, | |
| 62 {TEXT_INPUT_MODE_NUMERIC, 0, FALSE, 0}, | |
| 63 {TEXT_INPUT_MODE_NUMERIC, IME_CMODE_FULLSHAPE, FALSE, IME_CMODE_FULLSHAPE}, | |
| 64 {TEXT_INPUT_MODE_TEL, 0, FALSE, 0}, | |
| 65 {TEXT_INPUT_MODE_TEL, IME_CMODE_ROMAN, FALSE, IME_CMODE_ROMAN}, | |
| 66 {TEXT_INPUT_MODE_EMAIL, 0, FALSE, 0}, | |
| 67 {TEXT_INPUT_MODE_EMAIL, IME_CMODE_CHARCODE, FALSE, IME_CMODE_CHARCODE}, | |
| 68 {TEXT_INPUT_MODE_URL, 0, FALSE, 0}, | |
| 69 {TEXT_INPUT_MODE_URL, IME_CMODE_HANJACONVERT, FALSE, IME_CMODE_HANJACONVERT}, | |
| 70 }; | |
| 71 | |
| 72 TEST_P(IMM32ManagerTest, ConvertInputModeToImmFlags) { | |
| 73 const InputModeTestCase& test_case = GetParam(); | |
| 74 | |
| 75 BOOL open; | |
| 76 DWORD conversion_mode; | |
| 77 // Call testee method. | |
| 78 IMM32Manager::ConvertInputModeToImmFlags(test_case.input_mode, | |
| 79 test_case.conversion_mode, | |
| 80 &open, | |
| 81 &conversion_mode); | |
| 82 | |
| 83 EXPECT_EQ(test_case.expected_open, open); | |
| 84 EXPECT_EQ(test_case.expected_conversion_mode, conversion_mode); | |
| 85 } | |
| 86 | |
| 87 INSTANTIATE_TEST_CASE_P(, | |
| 88 IMM32ManagerTest, | |
| 89 ::testing::ValuesIn(kInputModeTestCases)); | |
| 90 | |
| 91 } // namespace | |
| 92 } // namespace ui | |
| OLD | NEW |