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

Side by Side Diff: chrome/browser/ui/webui/options2/language_options_handler_unittest.cc

Issue 10837331: Options: s/options2/options/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wut Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/webui/options2/language_options_handler.h"
6
7 #include <string>
8
9 #include "base/values.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 #if defined(OS_CHROMEOS)
13 #include "chrome/browser/chromeos/input_method/input_method_descriptor.h"
14 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
15 #include "chrome/browser/ui/webui/options2/chromeos/cros_language_options_handle r.h"
16
17 using chromeos::input_method::InputMethodDescriptor;
18 using chromeos::input_method::InputMethodDescriptors;
19 using chromeos::input_method::InputMethodManager;
20 using chromeos::input_method::MockInputMethodManager;
21
22 namespace {
23
24 class LanguageOptionsHandlerTest : public testing::Test {
25 public:
26 LanguageOptionsHandlerTest() {
27 InputMethodManager::InitializeForTesting(new MockInputMethodManager);
28 }
29 virtual ~LanguageOptionsHandlerTest() {
30 InputMethodManager::Shutdown();
31 }
32
33 protected:
34 InputMethodDescriptors CreateInputMethodDescriptors() {
35 InputMethodDescriptors descriptors;
36 descriptors.push_back(GetDesc("xkb:us::eng", "us", "en-US"));
37 descriptors.push_back(GetDesc("xkb:fr::fra", "fr", "fr"));
38 descriptors.push_back(GetDesc("xkb:be::fra", "be", "fr"));
39 descriptors.push_back(GetDesc("mozc", "us", "ja"));
40 return descriptors;
41 }
42
43 private:
44 InputMethodDescriptor GetDesc(const std::string& id,
45 const std::string& raw_layout,
46 const std::string& language_code) {
47 return InputMethodDescriptor(id,
48 "", // name
49 raw_layout,
50 language_code,
51 false);
52 }
53 };
54
55 } // namespace
56 #else
57 typedef testing::Test LanguageOptionsHandlerTest;
58 #endif
59
60 #if defined(OS_CHROMEOS)
61 TEST_F(LanguageOptionsHandlerTest, GetInputMethodList) {
62 InputMethodDescriptors descriptors = CreateInputMethodDescriptors();
63 scoped_ptr<ListValue> list(
64 chromeos::options::CrosLanguageOptionsHandler::GetInputMethodList(
65 descriptors));
66 ASSERT_EQ(4U, list->GetSize());
67
68 DictionaryValue* entry = NULL;
69 DictionaryValue *language_code_set = NULL;
70 std::string input_method_id;
71 std::string display_name;
72 std::string language_code;
73
74 // As shown below, the list should be input method ids should appear in
75 // the same order of the descriptors.
76 ASSERT_TRUE(list->GetDictionary(0, &entry));
77 ASSERT_TRUE(entry->GetString("id", &input_method_id));
78 ASSERT_TRUE(entry->GetString("displayName", &display_name));
79 ASSERT_TRUE(entry->GetDictionary("languageCodeSet", &language_code_set));
80 EXPECT_EQ("xkb:us::eng", input_method_id);
81 // Commented out as it depends on translation in generated_resources.grd
82 // (i.e. makes the test fragile).
83 // EXPECT_EQ("English (USA) keyboard layout", display_name);
84 ASSERT_TRUE(language_code_set->HasKey("en-US"));
85 ASSERT_TRUE(language_code_set->HasKey("id")); // From kExtraLanguages.
86 ASSERT_TRUE(language_code_set->HasKey("fil")); // From kExtraLanguages.
87
88 ASSERT_TRUE(list->GetDictionary(1, &entry));
89 ASSERT_TRUE(entry->GetString("id", &input_method_id));
90 ASSERT_TRUE(entry->GetString("displayName", &display_name));
91 ASSERT_TRUE(entry->GetDictionary("languageCodeSet", &language_code_set));
92 EXPECT_EQ("xkb:fr::fra", input_method_id);
93 // Commented out. See above.
94 // EXPECT_EQ("French keyboard layout", display_name);
95 ASSERT_TRUE(language_code_set->HasKey("fr"));
96
97 ASSERT_TRUE(list->GetDictionary(2, &entry));
98 ASSERT_TRUE(entry->GetString("id", &input_method_id));
99 ASSERT_TRUE(entry->GetString("displayName", &display_name));
100 ASSERT_TRUE(entry->GetDictionary("languageCodeSet", &language_code_set));
101 EXPECT_EQ("xkb:be::fra", input_method_id);
102 // Commented out. See above.
103 // EXPECT_EQ("Belgian keyboard layout", display_name);
104 ASSERT_TRUE(language_code_set->HasKey("fr"));
105
106 ASSERT_TRUE(list->GetDictionary(3, &entry));
107 ASSERT_TRUE(entry->GetString("id", &input_method_id));
108 ASSERT_TRUE(entry->GetString("displayName", &display_name));
109 ASSERT_TRUE(entry->GetDictionary("languageCodeSet", &language_code_set));
110 EXPECT_EQ("mozc", input_method_id);
111 // Commented out. See above.
112 // EXPECT_EQ("Japanese input method (for US keyboard)", display_name);
113 ASSERT_TRUE(language_code_set->HasKey("ja"));
114 }
115
116 TEST_F(LanguageOptionsHandlerTest, GetLanguageList) {
117 InputMethodDescriptors descriptors = CreateInputMethodDescriptors();
118 scoped_ptr<ListValue> list(
119 chromeos::options::CrosLanguageOptionsHandler::GetLanguageList(
120 descriptors));
121 ASSERT_EQ(9U, list->GetSize());
122
123 DictionaryValue* entry = NULL;
124 std::string language_code;
125 std::string display_name;
126 std::string native_display_name;
127
128 // As shown below, the list should be sorted by the display names,
129 // and these names should not have duplicates.
130
131 // This comes from kExtraLanguages.
132 ASSERT_TRUE(list->GetDictionary(0, &entry));
133 ASSERT_TRUE(entry->GetString("code", &language_code));
134 ASSERT_TRUE(entry->GetString("displayName", &display_name));
135 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
136 EXPECT_EQ("nl", language_code);
137 EXPECT_EQ("Dutch", display_name);
138 EXPECT_EQ("Nederlands", native_display_name);
139
140 // This comes from kExtraLanguages.
141 ASSERT_TRUE(list->GetDictionary(1, &entry));
142 ASSERT_TRUE(entry->GetString("code", &language_code));
143 ASSERT_TRUE(entry->GetString("displayName", &display_name));
144 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
145 EXPECT_EQ("en-AU", language_code);
146 EXPECT_EQ("English (Australia)", display_name);
147 EXPECT_EQ("English (Australia)", native_display_name);
148
149 ASSERT_TRUE(list->GetDictionary(2, &entry));
150 ASSERT_TRUE(entry->GetString("code", &language_code));
151 ASSERT_TRUE(entry->GetString("displayName", &display_name));
152 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
153 EXPECT_EQ("en-US", language_code);
154 EXPECT_EQ("English (United States)", display_name);
155 EXPECT_EQ("English (United States)", native_display_name);
156
157 // This comes from kExtraLanguages.
158 ASSERT_TRUE(list->GetDictionary(3, &entry));
159 ASSERT_TRUE(entry->GetString("code", &language_code));
160 ASSERT_TRUE(entry->GetString("displayName", &display_name));
161 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
162 EXPECT_EQ("fil", language_code);
163 EXPECT_EQ("Filipino", display_name);
164 EXPECT_EQ("Filipino", native_display_name);
165
166 ASSERT_TRUE(list->GetDictionary(4, &entry));
167 ASSERT_TRUE(entry->GetString("code", &language_code));
168 ASSERT_TRUE(entry->GetString("displayName", &display_name));
169 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
170 EXPECT_EQ("fr", language_code);
171 EXPECT_EQ("French", display_name);
172 EXPECT_EQ("fran\u00E7ais", native_display_name);
173
174 // This comes from kExtraLanguages.
175 ASSERT_TRUE(list->GetDictionary(5, &entry));
176 ASSERT_TRUE(entry->GetString("code", &language_code));
177 ASSERT_TRUE(entry->GetString("displayName", &display_name));
178 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
179 EXPECT_EQ("id", language_code);
180 EXPECT_EQ("Indonesian", display_name);
181 EXPECT_EQ("Bahasa Indonesia", native_display_name);
182
183 ASSERT_TRUE(list->GetDictionary(6, &entry));
184 ASSERT_TRUE(entry->GetString("code", &language_code));
185 ASSERT_TRUE(entry->GetString("displayName", &display_name));
186 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
187 EXPECT_EQ("ja", language_code);
188 EXPECT_EQ("Japanese", display_name);
189 EXPECT_EQ("\u65E5\u672C\u8A9E", native_display_name);
190
191 // This comes from kExtraLanguages.
192 ASSERT_TRUE(list->GetDictionary(7, &entry));
193 ASSERT_TRUE(entry->GetString("code", &language_code));
194 ASSERT_TRUE(entry->GetString("displayName", &display_name));
195 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
196 EXPECT_EQ("ms", language_code);
197 EXPECT_EQ("Malay", display_name);
198 EXPECT_EQ("Bahasa Melayu", native_display_name);
199
200 // This comes from kExtraLanguages.
201 ASSERT_TRUE(list->GetDictionary(8, &entry));
202 ASSERT_TRUE(entry->GetString("code", &language_code));
203 ASSERT_TRUE(entry->GetString("displayName", &display_name));
204 ASSERT_TRUE(entry->GetString("nativeDisplayName", &native_display_name));
205 EXPECT_EQ("es-419", language_code);
206 EXPECT_EQ("Spanish (Latin America)", display_name);
207 EXPECT_EQ("espa\u00F1ol (Latinoam\u00E9rica)", native_display_name);
208 }
209 #endif // defined(OS_CHROMEOS)
210
211 #if !defined(OS_MACOSX)
212 TEST_F(LanguageOptionsHandlerTest, GetUILanguageCodeSet) {
213 scoped_ptr<DictionaryValue> dictionary(
214 options::LanguageOptionsHandler::GetUILanguageCodeSet());
215 EXPECT_TRUE(dictionary->HasKey("en-US"));
216 // Note that we don't test a false case, as such an expectation will
217 // fail when we add support for the language.
218 // EXPECT_FALSE(dictionary->HasKey("no"));
219 }
220 #endif // !defined(OS_MACOSX)
221
222 TEST_F(LanguageOptionsHandlerTest, GetSpellCheckLanguageCodeSet) {
223 scoped_ptr<DictionaryValue> dictionary(
224 options::LanguageOptionsHandler::GetSpellCheckLanguageCodeSet());
225 EXPECT_TRUE(dictionary->HasKey("en-US"));
226 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698