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

Side by Side Diff: chrome/browser/chromeos/status/language_menu_button_unittest.cc

Issue 3185020: Remove redundant "keyboard layout" suffix and fix redundant language display. (Closed)
Patch Set: Merge trunk. Created 10 years, 3 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
« no previous file with comments | « chrome/browser/chromeos/status/language_menu_button.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/status/language_menu_button.h" 5 #include "chrome/browser/chromeos/status/language_menu_button.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace chromeos { 10 namespace chromeos {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 EXPECT_EQ(UTF8ToWide("\xe5\x80\x89"), 58 EXPECT_EQ(UTF8ToWide("\xe5\x80\x89"),
59 LanguageMenuButton::GetTextForIndicator(desc)); 59 LanguageMenuButton::GetTextForIndicator(desc));
60 } 60 }
61 { 61 {
62 InputMethodDescriptor desc("m17n:zh:quick", "Quick", "us", "zh-TW"); 62 InputMethodDescriptor desc("m17n:zh:quick", "Quick", "us", "zh-TW");
63 EXPECT_EQ(UTF8ToWide("TW"), 63 EXPECT_EQ(UTF8ToWide("TW"),
64 LanguageMenuButton::GetTextForIndicator(desc)); 64 LanguageMenuButton::GetTextForIndicator(desc));
65 } 65 }
66 } 66 }
67 67
68 TEST(LanguageMenuButtonTest, GetTextForTooltipTest) { 68
69 const bool kAddMethodName = true; 69 // Test whether the function returns language name for non-ambiguous languages.
70 TEST(LanguageMenuButtonTest, GetTextForMenuTest) {
71 // For most languages input method or keyboard layout name is returned.
72 // See below for exceptions.
70 { 73 {
71 InputMethodDescriptor desc("m17n:fa:isiri", "isiri (m17n)", "us", "fa"); 74 InputMethodDescriptor desc("m17n:fa:isiri", "isiri (m17n)", "us", "fa");
72 EXPECT_EQ(L"Persian - Persian input method (ISIRI 2901 layout)", 75 EXPECT_EQ(L"Persian input method (ISIRI 2901 layout)",
73 LanguageMenuButton::GetTextForMenu(desc, kAddMethodName)); 76 LanguageMenuButton::GetTextForMenu(desc));
74 } 77 }
75 { 78 {
76 InputMethodDescriptor desc("hangul", "Korean", "us", "ko"); 79 InputMethodDescriptor desc("hangul", "Korean", "us", "ko");
77 EXPECT_EQ(L"Korean - Korean input method", 80 EXPECT_EQ(L"Korean input method",
78 LanguageMenuButton::GetTextForMenu(desc, kAddMethodName)); 81 LanguageMenuButton::GetTextForMenu(desc));
79 } 82 }
80 { 83 {
84 InputMethodDescriptor desc("m17n:vi:tcvn", "tcvn (m17n)", "us", "vi");
85 EXPECT_EQ(L"Vietnamese input method (TCVN6064)",
86 LanguageMenuButton::GetTextForMenu(desc));
87 }
88 {
89 InputMethodDescriptor desc("mozc", "Mozc (US keyboard layout)", "us", "ja");
90 EXPECT_EQ(L"Japanese input method (for US keyboard)",
91 LanguageMenuButton::GetTextForMenu(desc));
92 }
93 {
94 InputMethodDescriptor desc("xkb:jp::jpn", "Japan", "jp", "jpn");
95 EXPECT_EQ(L"Japanese keyboard layout",
96 LanguageMenuButton::GetTextForMenu(desc));
97 }
98 {
99 InputMethodDescriptor desc("xkb:us:dvorak:eng", "USA - Dvorak",
100 "us(dvorak)", "eng");
101 EXPECT_EQ(L"English (Dvorak)",
102 LanguageMenuButton::GetTextForMenu(desc));
103 }
104
105 // For Arabic, Dutch, French, German, Hebrew and Hindi,
106 // "language - keyboard layout" pair is returned.
107 {
108 InputMethodDescriptor desc("m17n:ar:kbd", "kbd (m17n)", "us", "ar");
109 EXPECT_EQ(L"Arabic - Standard input method",
110 LanguageMenuButton::GetTextForMenu(desc));
111 }
112 {
113 InputMethodDescriptor desc("xkb:nl::nld", "Netherlands", "nl", "nld");
114 EXPECT_EQ(L"Dutch - Dutch keyboard layout",
115 LanguageMenuButton::GetTextForMenu(desc));
116 }
117 {
118 InputMethodDescriptor desc("xkb:be::nld", "Belgium", "be", "nld");
119 EXPECT_EQ(L"Dutch - Belgian keyboard layout",
120 LanguageMenuButton::GetTextForMenu(desc));
121 }
122 {
123 InputMethodDescriptor desc("xkb:fr::fra", "France", "fr", "fra");
124 EXPECT_EQ(L"French - French keyboard layout",
125 LanguageMenuButton::GetTextForMenu(desc));
126 }
127 {
128 InputMethodDescriptor desc("xkb:be::fra", "Belgium", "be", "fra");
129 EXPECT_EQ(L"French - Belgian keyboard layout",
130 LanguageMenuButton::GetTextForMenu(desc));
131 }
132 {
133 InputMethodDescriptor desc("xkb:de::ger", "Germany", "de", "ger");
134 EXPECT_EQ(L"German - German keyboard layout",
135 LanguageMenuButton::GetTextForMenu(desc));
136 }
137 {
138 InputMethodDescriptor desc("xkb:be::ger", "Belgium", "be", "ger");
139 EXPECT_EQ(L"German - Belgian keyboard layout",
140 LanguageMenuButton::GetTextForMenu(desc));
141 }
142 {
143 InputMethodDescriptor desc("m17n:he:kbd", "kbd (m17n)", "us", "he");
144 EXPECT_EQ(L"Hebrew - Standard input method",
145 LanguageMenuButton::GetTextForMenu(desc));
146 }
147 {
148 InputMethodDescriptor desc("m17n:hi:itrans", "itrans (m17n)", "us", "hi");
149 EXPECT_EQ(L"Hindi - Standard input method",
150 LanguageMenuButton::GetTextForMenu(desc));
151 }
152
153 {
81 InputMethodDescriptor desc("invalid-id", "unregistered string", "us", "xx"); 154 InputMethodDescriptor desc("invalid-id", "unregistered string", "us", "xx");
82 // You can safely ignore the "Resouce ID is not found for: unregistered 155 // You can safely ignore the "Resouce ID is not found for: unregistered
83 // string" error. 156 // string" error.
84 EXPECT_EQ(L"xx - unregistered string", 157 EXPECT_EQ(L"unregistered string",
85 LanguageMenuButton::GetTextForMenu(desc, kAddMethodName)); 158 LanguageMenuButton::GetTextForMenu(desc));
86 } 159 }
87 } 160 }
88 161
89 TEST(LanguageMenuButtonTest, GetAmbiguousLanguageCodeSet) {
90 {
91 std::set<std::string> ambiguous_language_code_set;
92 InputMethodDescriptors descriptors;
93 descriptors.push_back(InputMethodDescriptor(
94 "xkb:us::eng", "USA", "us", "eng"));
95 LanguageMenuButton::GetAmbiguousLanguageCodeSet(
96 descriptors, &ambiguous_language_code_set);
97 // There is no ambituity.
98 EXPECT_TRUE(ambiguous_language_code_set.empty());
99 }
100 {
101 std::set<std::string> ambiguous_language_code_set;
102 InputMethodDescriptors descriptors;
103 descriptors.push_back(InputMethodDescriptor(
104 "xkb:us::eng", "USA", "us", "eng"));
105 descriptors.push_back(InputMethodDescriptor(
106 "xkb:us:dvorak:eng", "Dvorak", "us", "eng"));
107 LanguageMenuButton::GetAmbiguousLanguageCodeSet(
108 descriptors, &ambiguous_language_code_set);
109 // This is ambiguous, as two input methods are present for "en-US".
110 EXPECT_EQ(1U, ambiguous_language_code_set.size());
111 EXPECT_EQ(1U, ambiguous_language_code_set.count("en-US"));
112 }
113 {
114 std::set<std::string> ambiguous_language_code_set;
115 InputMethodDescriptors descriptors;
116 descriptors.push_back(InputMethodDescriptor(
117 "xkb:jp::jpn", "Japan", "jp", "jpn"));
118 LanguageMenuButton::GetAmbiguousLanguageCodeSet(
119 descriptors, &ambiguous_language_code_set);
120 // Japanese is special. Showing the language name alone for the
121 // Japanese keyboard layout is confusing, hence we consider it
122 // ambiguous.
123 EXPECT_EQ(1U, ambiguous_language_code_set.size());
124 EXPECT_EQ(1U, ambiguous_language_code_set.count("ja"));
125 }
126 }
127
128 } // namespace chromeos 162 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/language_menu_button.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698