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 "base/command_line.h" | |
5 #include "base/path_service.h" | 6 #include "base/path_service.h" |
7 #include "base/prefs/pref_member.h" | |
8 #include "base/prefs/pref_service.h" | |
6 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
7 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
8 #include "chrome/browser/spellchecker/spellcheck_factory.h" | 11 #include "chrome/browser/spellchecker/spellcheck_factory.h" |
9 #include "chrome/browser/spellchecker/spellcheck_service.h" | 12 #include "chrome/browser/spellchecker/spellcheck_service.h" |
please use gerrit instead
2015/06/16 00:31:16
Please put this include at the top, followed by a
Julius
2015/06/17 00:59:52
Done.
| |
10 #include "chrome/browser/ui/browser.h" | 13 #include "chrome/browser/ui/browser.h" |
11 #include "chrome/common/chrome_paths.h" | 14 #include "chrome/common/chrome_paths.h" |
15 #include "chrome/common/chrome_switches.h" | |
16 #include "chrome/common/pref_names.h" | |
12 #include "chrome/common/spellcheck_common.h" | 17 #include "chrome/common/spellcheck_common.h" |
13 #include "chrome/test/base/in_process_browser_test.h" | 18 #include "chrome/test/base/in_process_browser_test.h" |
19 #include "components/user_prefs/user_prefs.h" | |
14 #include "content/public/test/test_utils.h" | 20 #include "content/public/test/test_utils.h" |
15 #include "url/gurl.h" | 21 #include "url/gurl.h" |
16 | 22 |
17 using content::BrowserContext; | 23 using content::BrowserContext; |
18 | 24 |
19 namespace { | 25 namespace { |
20 | 26 |
21 // A corrupted BDICT data used in DeleteCorruptedBDICT. Please do not use this | 27 // A corrupted BDICT data used in DeleteCorruptedBDICT. Please do not use this |
22 // BDICT data for other tests. | 28 // BDICT data for other tests. |
23 const uint8 kCorruptedBDICT[] = { | 29 const uint8 kCorruptedBDICT[] = { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
82 // leaking it when this test fails. | 88 // leaking it when this test fails. |
83 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); | 89 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); |
84 content::RunAllPendingInMessageLoop(content::BrowserThread::UI); | 90 content::RunAllPendingInMessageLoop(content::BrowserThread::UI); |
85 EXPECT_EQ(SpellcheckService::BDICT_CORRUPTED, | 91 EXPECT_EQ(SpellcheckService::BDICT_CORRUPTED, |
86 SpellcheckService::GetStatusEvent()); | 92 SpellcheckService::GetStatusEvent()); |
87 if (base::PathExists(bdict_path)) { | 93 if (base::PathExists(bdict_path)) { |
88 ADD_FAILURE(); | 94 ADD_FAILURE(); |
89 EXPECT_TRUE(base::DeleteFile(bdict_path, true)); | 95 EXPECT_TRUE(base::DeleteFile(bdict_path, true)); |
90 } | 96 } |
91 } | 97 } |
98 | |
99 IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages1) { | |
please use gerrit instead
2015/06/16 00:31:16
I know this is a copy from the unit test, but the
Julius
2015/06/17 00:59:52
Done.
| |
100 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
101 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
102 prefs->SetString(prefs::kSpellCheckDictionary, "en-US"); | |
103 prefs->SetString(prefs::kAcceptLanguages, "en,en-US"); | |
104 | |
105 std::vector<std::string> languages; | |
please use gerrit instead
2015/06/16 00:31:16
s/languages/spellcheck_languages/
Julius
2015/06/17 00:59:52
Done.
| |
106 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
please use gerrit instead
2015/06/16 00:31:16
s/ret/enabled_spellcheck_languages/
Julius
2015/06/17 00:59:52
Done.
| |
107 | |
108 EXPECT_EQ(1UL, ret); | |
109 ASSERT_EQ(1UL, languages.size()); | |
110 EXPECT_EQ("en-US", languages[0]); | |
please use gerrit instead
2015/06/16 00:31:16
These two last two lines can be written simpler:
Julius
2015/06/17 00:59:52
Done.
| |
111 } | |
112 | |
113 IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages2) { | |
114 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
115 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
116 prefs->SetString(prefs::kSpellCheckDictionary, "en-US"); | |
117 prefs->SetString(prefs::kAcceptLanguages, "en-US,en"); | |
118 | |
119 std::vector<std::string> languages; | |
120 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
121 | |
122 EXPECT_EQ(1UL, ret); | |
123 ASSERT_EQ(1UL, languages.size()); | |
124 EXPECT_EQ("en-US", languages[0]); | |
125 } | |
126 | |
127 IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages3) { | |
128 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
129 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
130 prefs->SetString(prefs::kSpellCheckDictionary, "en-US"); | |
131 prefs->SetString(prefs::kAcceptLanguages, "en,fr,en-US,en-AU"); | |
132 | |
133 std::vector<std::string> languages; | |
134 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
135 | |
136 EXPECT_EQ(1UL, ret); | |
137 ASSERT_EQ(3UL, languages.size()); | |
138 EXPECT_EQ("en-US", languages[0]); | |
139 EXPECT_EQ("fr", languages[1]); | |
140 EXPECT_EQ("en-AU", languages[2]); | |
141 } | |
142 | |
143 IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages4) { | |
144 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
145 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
146 prefs->SetString(prefs::kSpellCheckDictionary, "fr"); | |
147 prefs->SetString(prefs::kAcceptLanguages, "en,en-JP,fr,zz,en-US"); | |
148 | |
149 std::vector<std::string> languages; | |
150 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
151 | |
152 EXPECT_EQ(1UL, ret); | |
153 ASSERT_EQ(2UL, languages.size()); | |
154 EXPECT_EQ("fr", languages[0]); | |
155 EXPECT_EQ("en-US", languages[1]); | |
156 } | |
157 | |
158 class MultilingualSpellcheckServiceBrowserTest : public InProcessBrowserTest { | |
159 public: | |
160 Profile* GetProfile() { return browser()->profile(); } | |
161 void SetUpCommandLine(base::CommandLine* command_line) override { | |
162 command_line->AppendSwitch(switches::kEnableMultilingualSpellChecker); | |
163 } | |
164 }; | |
165 | |
166 IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest, | |
167 GetSpellCheckLanguages1) { | |
168 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
169 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
170 prefs->SetString(prefs::kSpellCheckDictionaries, "en-US"); | |
171 prefs->SetString(prefs::kAcceptLanguages, "en,en-US"); | |
172 | |
173 std::vector<std::string> languages; | |
174 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
175 | |
176 EXPECT_EQ(1UL, ret); | |
177 ASSERT_EQ(1UL, languages.size()); | |
178 EXPECT_EQ("en-US", languages[0]); | |
179 } | |
180 | |
181 IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest, | |
182 GetSpellCheckLanguages2) { | |
183 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
184 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
185 prefs->SetString(prefs::kSpellCheckDictionaries, "en-US"); | |
186 prefs->SetString(prefs::kAcceptLanguages, "en-US,en"); | |
187 | |
188 std::vector<std::string> languages; | |
189 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
190 | |
191 EXPECT_EQ(1UL, ret); | |
192 ASSERT_EQ(1UL, languages.size()); | |
193 EXPECT_EQ("en-US", languages[0]); | |
194 } | |
195 | |
196 IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest, | |
197 GetSpellCheckLanguages3) { | |
198 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
199 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
200 prefs->SetString(prefs::kSpellCheckDictionaries, "en-US,fr"); | |
201 prefs->SetString(prefs::kAcceptLanguages, "en,fr,en-US,en-AU"); | |
202 | |
203 std::vector<std::string> languages; | |
204 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
205 | |
206 EXPECT_EQ(2UL, ret); | |
207 ASSERT_EQ(3UL, languages.size()); | |
208 EXPECT_EQ("en-US", languages[0]); | |
209 EXPECT_EQ("fr", languages[1]); | |
210 EXPECT_EQ("en-AU", languages[2]); | |
211 } | |
212 | |
213 IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest, | |
214 GetSpellCheckLanguages4) { | |
215 BrowserContext* context = static_cast<BrowserContext*>(GetProfile()); | |
216 PrefService* prefs = user_prefs::UserPrefs::Get(context); | |
217 prefs->SetString(prefs::kSpellCheckDictionaries, "fr"); | |
218 prefs->SetString(prefs::kAcceptLanguages, "en,en-JP,fr,zz,en-US"); | |
219 | |
220 std::vector<std::string> languages; | |
221 size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages); | |
222 | |
223 EXPECT_EQ(1UL, ret); | |
224 ASSERT_EQ(2UL, languages.size()); | |
225 EXPECT_EQ("fr", languages[0]); | |
226 EXPECT_EQ("en-US", languages[1]); | |
227 } | |
OLD | NEW |