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 <X11/Xlib.h> | 5 #include <X11/Xlib.h> |
6 #undef Bool | 6 #undef Bool |
7 #undef FocusIn | 7 #undef FocusIn |
8 #undef FocusOut | 8 #undef FocusOut |
9 #undef None | 9 #undef None |
10 | 10 |
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
902 // bounds are changed or not. | 902 // bounds are changed or not. |
903 EXPECT_EQ(3, | 903 EXPECT_EQ(3, |
904 mock_ibus_input_context_client_->set_cursor_location_call_count()); | 904 mock_ibus_input_context_client_->set_cursor_location_call_count()); |
905 } | 905 } |
906 | 906 |
907 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_NoAttribute) { | 907 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_NoAttribute) { |
908 const char kSampleText[] = "Sample Text"; | 908 const char kSampleText[] = "Sample Text"; |
909 const uint32 kCursorPos = 2UL; | 909 const uint32 kCursorPos = 2UL; |
910 | 910 |
911 const string16 utf16_string = UTF8ToUTF16(kSampleText); | 911 const string16 utf16_string = UTF8ToUTF16(kSampleText); |
912 chromeos::ibus::IBusText ibus_text; | 912 chromeos::IBusText ibus_text; |
913 ibus_text.set_text(kSampleText); | 913 ibus_text.set_text(kSampleText); |
914 | 914 |
915 CompositionText composition_text; | 915 CompositionText composition_text; |
916 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 916 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
917 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 917 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
918 // If there is no selection, |selection| represents cursor position. | 918 // If there is no selection, |selection| represents cursor position. |
919 EXPECT_EQ(kCursorPos, composition_text.selection.start()); | 919 EXPECT_EQ(kCursorPos, composition_text.selection.start()); |
920 EXPECT_EQ(kCursorPos, composition_text.selection.end()); | 920 EXPECT_EQ(kCursorPos, composition_text.selection.end()); |
921 // If there is no underline, |underlines| contains one underline and it is | 921 // If there is no underline, |underlines| contains one underline and it is |
922 // whole text underline. | 922 // whole text underline. |
923 ASSERT_EQ(1UL, composition_text.underlines.size()); | 923 ASSERT_EQ(1UL, composition_text.underlines.size()); |
924 EXPECT_EQ(0UL, composition_text.underlines[0].start_offset); | 924 EXPECT_EQ(0UL, composition_text.underlines[0].start_offset); |
925 EXPECT_EQ(utf16_string.size(), composition_text.underlines[0].end_offset); | 925 EXPECT_EQ(utf16_string.size(), composition_text.underlines[0].end_offset); |
926 EXPECT_FALSE(composition_text.underlines[0].thick); | 926 EXPECT_FALSE(composition_text.underlines[0].thick); |
927 } | 927 } |
928 | 928 |
929 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_SingleUnderline) { | 929 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_SingleUnderline) { |
930 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 930 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
931 "\xE3\x81\x88\xE3\x81\x8A"; | 931 "\xE3\x81\x88\xE3\x81\x8A"; |
932 const uint32 kCursorPos = 2UL; | 932 const uint32 kCursorPos = 2UL; |
933 | 933 |
934 // Set up ibus text with one underline attribute. | 934 // Set up ibus text with one underline attribute. |
935 chromeos::ibus::IBusText ibus_text; | 935 chromeos::IBusText ibus_text; |
936 ibus_text.set_text(kSampleText); | 936 ibus_text.set_text(kSampleText); |
937 chromeos::ibus::IBusText::UnderlineAttribute underline; | 937 chromeos::IBusText::UnderlineAttribute underline; |
938 underline.type = chromeos::ibus::IBusText::IBUS_TEXT_UNDERLINE_SINGLE; | 938 underline.type = chromeos::IBusText::IBUS_TEXT_UNDERLINE_SINGLE; |
939 underline.start_index = 1UL; | 939 underline.start_index = 1UL; |
940 underline.end_index = 4UL; | 940 underline.end_index = 4UL; |
941 ibus_text.mutable_underline_attributes()->push_back(underline); | 941 ibus_text.mutable_underline_attributes()->push_back(underline); |
942 | 942 |
943 CompositionText composition_text; | 943 CompositionText composition_text; |
944 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 944 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
945 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 945 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
946 // If there is no selection, |selection| represents cursor position. | 946 // If there is no selection, |selection| represents cursor position. |
947 EXPECT_EQ(kCursorPos, composition_text.selection.start()); | 947 EXPECT_EQ(kCursorPos, composition_text.selection.start()); |
948 EXPECT_EQ(kCursorPos, composition_text.selection.end()); | 948 EXPECT_EQ(kCursorPos, composition_text.selection.end()); |
949 ASSERT_EQ(1UL, composition_text.underlines.size()); | 949 ASSERT_EQ(1UL, composition_text.underlines.size()); |
950 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), | 950 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), |
951 composition_text.underlines[0].start_offset); | 951 composition_text.underlines[0].start_offset); |
952 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), | 952 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), |
953 composition_text.underlines[0].end_offset); | 953 composition_text.underlines[0].end_offset); |
954 // Single underline represents as black thin line. | 954 // Single underline represents as black thin line. |
955 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); | 955 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); |
956 EXPECT_FALSE(composition_text.underlines[0].thick); | 956 EXPECT_FALSE(composition_text.underlines[0].thick); |
957 } | 957 } |
958 | 958 |
959 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_DoubleUnderline) { | 959 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_DoubleUnderline) { |
960 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 960 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
961 "\xE3\x81\x88\xE3\x81\x8A"; | 961 "\xE3\x81\x88\xE3\x81\x8A"; |
962 const uint32 kCursorPos = 2UL; | 962 const uint32 kCursorPos = 2UL; |
963 | 963 |
964 // Set up ibus text with one underline attribute. | 964 // Set up ibus text with one underline attribute. |
965 chromeos::ibus::IBusText ibus_text; | 965 chromeos::IBusText ibus_text; |
966 ibus_text.set_text(kSampleText); | 966 ibus_text.set_text(kSampleText); |
967 chromeos::ibus::IBusText::UnderlineAttribute underline; | 967 chromeos::IBusText::UnderlineAttribute underline; |
968 underline.type = chromeos::ibus::IBusText::IBUS_TEXT_UNDERLINE_DOUBLE; | 968 underline.type = chromeos::IBusText::IBUS_TEXT_UNDERLINE_DOUBLE; |
969 underline.start_index = 1UL; | 969 underline.start_index = 1UL; |
970 underline.end_index = 4UL; | 970 underline.end_index = 4UL; |
971 ibus_text.mutable_underline_attributes()->push_back(underline); | 971 ibus_text.mutable_underline_attributes()->push_back(underline); |
972 | 972 |
973 CompositionText composition_text; | 973 CompositionText composition_text; |
974 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 974 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
975 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 975 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
976 // If there is no selection, |selection| represents cursor position. | 976 // If there is no selection, |selection| represents cursor position. |
977 EXPECT_EQ(kCursorPos, composition_text.selection.start()); | 977 EXPECT_EQ(kCursorPos, composition_text.selection.start()); |
978 EXPECT_EQ(kCursorPos, composition_text.selection.end()); | 978 EXPECT_EQ(kCursorPos, composition_text.selection.end()); |
979 ASSERT_EQ(1UL, composition_text.underlines.size()); | 979 ASSERT_EQ(1UL, composition_text.underlines.size()); |
980 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), | 980 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), |
981 composition_text.underlines[0].start_offset); | 981 composition_text.underlines[0].start_offset); |
982 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), | 982 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), |
983 composition_text.underlines[0].end_offset); | 983 composition_text.underlines[0].end_offset); |
984 // Double underline represents as black thick line. | 984 // Double underline represents as black thick line. |
985 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); | 985 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); |
986 EXPECT_TRUE(composition_text.underlines[0].thick); | 986 EXPECT_TRUE(composition_text.underlines[0].thick); |
987 } | 987 } |
988 | 988 |
989 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_ErrorUnderline) { | 989 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_ErrorUnderline) { |
990 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 990 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
991 "\xE3\x81\x88\xE3\x81\x8A"; | 991 "\xE3\x81\x88\xE3\x81\x8A"; |
992 const uint32 kCursorPos = 2UL; | 992 const uint32 kCursorPos = 2UL; |
993 | 993 |
994 // Set up ibus text with one underline attribute. | 994 // Set up ibus text with one underline attribute. |
995 chromeos::ibus::IBusText ibus_text; | 995 chromeos::IBusText ibus_text; |
996 ibus_text.set_text(kSampleText); | 996 ibus_text.set_text(kSampleText); |
997 chromeos::ibus::IBusText::UnderlineAttribute underline; | 997 chromeos::IBusText::UnderlineAttribute underline; |
998 underline.type = chromeos::ibus::IBusText::IBUS_TEXT_UNDERLINE_ERROR; | 998 underline.type = chromeos::IBusText::IBUS_TEXT_UNDERLINE_ERROR; |
999 underline.start_index = 1UL; | 999 underline.start_index = 1UL; |
1000 underline.end_index = 4UL; | 1000 underline.end_index = 4UL; |
1001 ibus_text.mutable_underline_attributes()->push_back(underline); | 1001 ibus_text.mutable_underline_attributes()->push_back(underline); |
1002 | 1002 |
1003 CompositionText composition_text; | 1003 CompositionText composition_text; |
1004 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 1004 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
1005 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 1005 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
1006 EXPECT_EQ(kCursorPos, composition_text.selection.start()); | 1006 EXPECT_EQ(kCursorPos, composition_text.selection.start()); |
1007 EXPECT_EQ(kCursorPos, composition_text.selection.end()); | 1007 EXPECT_EQ(kCursorPos, composition_text.selection.end()); |
1008 ASSERT_EQ(1UL, composition_text.underlines.size()); | 1008 ASSERT_EQ(1UL, composition_text.underlines.size()); |
1009 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), | 1009 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.start_index), |
1010 composition_text.underlines[0].start_offset); | 1010 composition_text.underlines[0].start_offset); |
1011 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), | 1011 EXPECT_EQ(GetOffsetInUTF16(kSampleText, underline.end_index), |
1012 composition_text.underlines[0].end_offset); | 1012 composition_text.underlines[0].end_offset); |
1013 // Error underline represents as red thin line. | 1013 // Error underline represents as red thin line. |
1014 EXPECT_EQ(SK_ColorRED, composition_text.underlines[0].color); | 1014 EXPECT_EQ(SK_ColorRED, composition_text.underlines[0].color); |
1015 EXPECT_FALSE(composition_text.underlines[0].thick); | 1015 EXPECT_FALSE(composition_text.underlines[0].thick); |
1016 } | 1016 } |
1017 | 1017 |
1018 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_Selection) { | 1018 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_Selection) { |
1019 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 1019 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
1020 "\xE3\x81\x88\xE3\x81\x8A"; | 1020 "\xE3\x81\x88\xE3\x81\x8A"; |
1021 const uint32 kCursorPos = 2UL; | 1021 const uint32 kCursorPos = 2UL; |
1022 | 1022 |
1023 // Set up ibus text with one underline attribute. | 1023 // Set up ibus text with one underline attribute. |
1024 chromeos::ibus::IBusText ibus_text; | 1024 chromeos::IBusText ibus_text; |
1025 ibus_text.set_text(kSampleText); | 1025 ibus_text.set_text(kSampleText); |
1026 chromeos::ibus::IBusText::SelectionAttribute selection; | 1026 chromeos::IBusText::SelectionAttribute selection; |
1027 selection.start_index = 1UL; | 1027 selection.start_index = 1UL; |
1028 selection.end_index = 4UL; | 1028 selection.end_index = 4UL; |
1029 ibus_text.mutable_selection_attributes()->push_back(selection); | 1029 ibus_text.mutable_selection_attributes()->push_back(selection); |
1030 | 1030 |
1031 CompositionText composition_text; | 1031 CompositionText composition_text; |
1032 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 1032 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
1033 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 1033 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
1034 EXPECT_EQ(kCursorPos, composition_text.selection.start()); | 1034 EXPECT_EQ(kCursorPos, composition_text.selection.start()); |
1035 EXPECT_EQ(kCursorPos, composition_text.selection.end()); | 1035 EXPECT_EQ(kCursorPos, composition_text.selection.end()); |
1036 ASSERT_EQ(1UL, composition_text.underlines.size()); | 1036 ASSERT_EQ(1UL, composition_text.underlines.size()); |
1037 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), | 1037 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), |
1038 composition_text.underlines[0].start_offset); | 1038 composition_text.underlines[0].start_offset); |
1039 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), | 1039 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), |
1040 composition_text.underlines[0].end_offset); | 1040 composition_text.underlines[0].end_offset); |
1041 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); | 1041 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); |
1042 EXPECT_TRUE(composition_text.underlines[0].thick); | 1042 EXPECT_TRUE(composition_text.underlines[0].thick); |
1043 } | 1043 } |
1044 | 1044 |
1045 TEST_F(InputMethodIBusTest, | 1045 TEST_F(InputMethodIBusTest, |
1046 ExtractCompositionTextTest_SelectionStartWithCursor) { | 1046 ExtractCompositionTextTest_SelectionStartWithCursor) { |
1047 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 1047 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
1048 "\xE3\x81\x88\xE3\x81\x8A"; | 1048 "\xE3\x81\x88\xE3\x81\x8A"; |
1049 const uint32 kCursorPos = 1UL; | 1049 const uint32 kCursorPos = 1UL; |
1050 | 1050 |
1051 // Set up ibus text with one underline attribute. | 1051 // Set up ibus text with one underline attribute. |
1052 chromeos::ibus::IBusText ibus_text; | 1052 chromeos::IBusText ibus_text; |
1053 ibus_text.set_text(kSampleText); | 1053 ibus_text.set_text(kSampleText); |
1054 chromeos::ibus::IBusText::SelectionAttribute selection; | 1054 chromeos::IBusText::SelectionAttribute selection; |
1055 selection.start_index = kCursorPos; | 1055 selection.start_index = kCursorPos; |
1056 selection.end_index = 4UL; | 1056 selection.end_index = 4UL; |
1057 ibus_text.mutable_selection_attributes()->push_back(selection); | 1057 ibus_text.mutable_selection_attributes()->push_back(selection); |
1058 | 1058 |
1059 CompositionText composition_text; | 1059 CompositionText composition_text; |
1060 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 1060 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
1061 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 1061 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
1062 // If the cursor position is same as selection bounds, selection start | 1062 // If the cursor position is same as selection bounds, selection start |
1063 // position become opposit side of selection from cursor. | 1063 // position become opposit side of selection from cursor. |
1064 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), | 1064 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), |
1065 composition_text.selection.start()); | 1065 composition_text.selection.start()); |
1066 EXPECT_EQ(GetOffsetInUTF16(kSampleText, kCursorPos), | 1066 EXPECT_EQ(GetOffsetInUTF16(kSampleText, kCursorPos), |
1067 composition_text.selection.end()); | 1067 composition_text.selection.end()); |
1068 ASSERT_EQ(1UL, composition_text.underlines.size()); | 1068 ASSERT_EQ(1UL, composition_text.underlines.size()); |
1069 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), | 1069 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), |
1070 composition_text.underlines[0].start_offset); | 1070 composition_text.underlines[0].start_offset); |
1071 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), | 1071 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.end_index), |
1072 composition_text.underlines[0].end_offset); | 1072 composition_text.underlines[0].end_offset); |
1073 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); | 1073 EXPECT_EQ(SK_ColorBLACK, composition_text.underlines[0].color); |
1074 EXPECT_TRUE(composition_text.underlines[0].thick); | 1074 EXPECT_TRUE(composition_text.underlines[0].thick); |
1075 } | 1075 } |
1076 | 1076 |
1077 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_SelectionEndWithCursor) { | 1077 TEST_F(InputMethodIBusTest, ExtractCompositionTextTest_SelectionEndWithCursor) { |
1078 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" | 1078 const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" |
1079 "\xE3\x81\x88\xE3\x81\x8A"; | 1079 "\xE3\x81\x88\xE3\x81\x8A"; |
1080 const uint32 kCursorPos = 4UL; | 1080 const uint32 kCursorPos = 4UL; |
1081 | 1081 |
1082 // Set up ibus text with one underline attribute. | 1082 // Set up ibus text with one underline attribute. |
1083 chromeos::ibus::IBusText ibus_text; | 1083 chromeos::IBusText ibus_text; |
1084 ibus_text.set_text(kSampleText); | 1084 ibus_text.set_text(kSampleText); |
1085 chromeos::ibus::IBusText::SelectionAttribute selection; | 1085 chromeos::IBusText::SelectionAttribute selection; |
1086 selection.start_index = 1UL; | 1086 selection.start_index = 1UL; |
1087 selection.end_index = kCursorPos; | 1087 selection.end_index = kCursorPos; |
1088 ibus_text.mutable_selection_attributes()->push_back(selection); | 1088 ibus_text.mutable_selection_attributes()->push_back(selection); |
1089 | 1089 |
1090 CompositionText composition_text; | 1090 CompositionText composition_text; |
1091 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); | 1091 ime_->ExtractCompositionText(ibus_text, kCursorPos, &composition_text); |
1092 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); | 1092 EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); |
1093 // If the cursor position is same as selection bounds, selection start | 1093 // If the cursor position is same as selection bounds, selection start |
1094 // position become opposit side of selection from cursor. | 1094 // position become opposit side of selection from cursor. |
1095 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), | 1095 EXPECT_EQ(GetOffsetInUTF16(kSampleText, selection.start_index), |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1654 | 1654 |
1655 // Do callback. | 1655 // Do callback. |
1656 success_consume_handler.RunCallback(KEYEVENT_CONSUME); | 1656 success_consume_handler.RunCallback(KEYEVENT_CONSUME); |
1657 | 1657 |
1658 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); | 1658 EXPECT_EQ(0, ime_->process_key_event_post_ime_call_count()); |
1659 } | 1659 } |
1660 | 1660 |
1661 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593). | 1661 // TODO(nona): Introduce ProcessKeyEventPostIME tests(crbug.com/156593). |
1662 | 1662 |
1663 } // namespace ui | 1663 } // namespace ui |
OLD | NEW |