Chromium Code Reviews| 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 |