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

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

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

Powered by Google App Engine
This is Rietveld 408576698