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

Unified Diff: chrome/browser/spellchecker/spellcheck_service_browsertest.cc

Issue 1156473007: Enables the user to select multiple languages for spellchecking (UI) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments, added browsertest, fixed failures. Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/spellchecker/spellcheck_service_browsertest.cc
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
index 7c6eed772fc9386dc9219534dee1912c70344bdc..742c23c7d71c6b2f2f01cb8bb2be83487c224882 100644
--- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
+++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -2,15 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/command_line.h"
#include "base/path_service.h"
+#include "base/prefs/pref_member.h"
+#include "base/prefs/pref_service.h"
#include "base/synchronization/waitable_event.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/spellchecker/spellcheck_factory.h"
#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.
#include "chrome/browser/ui/browser.h"
#include "chrome/common/chrome_paths.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
#include "chrome/common/spellcheck_common.h"
#include "chrome/test/base/in_process_browser_test.h"
+#include "components/user_prefs/user_prefs.h"
#include "content/public/test/test_utils.h"
#include "url/gurl.h"
@@ -89,3 +95,133 @@ IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, DeleteCorruptedBDICT) {
EXPECT_TRUE(base::DeleteFile(bdict_path, true));
}
}
+
+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.
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionary, "en-US");
+ prefs->SetString(prefs::kAcceptLanguages, "en,en-US");
+
+ 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.
+ 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.
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(1UL, languages.size());
+ 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.
+}
+
+IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages2) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionary, "en-US");
+ prefs->SetString(prefs::kAcceptLanguages, "en-US,en");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(1UL, languages.size());
+ EXPECT_EQ("en-US", languages[0]);
+}
+
+IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages3) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionary, "en-US");
+ prefs->SetString(prefs::kAcceptLanguages, "en,fr,en-US,en-AU");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(3UL, languages.size());
+ EXPECT_EQ("en-US", languages[0]);
+ EXPECT_EQ("fr", languages[1]);
+ EXPECT_EQ("en-AU", languages[2]);
+}
+
+IN_PROC_BROWSER_TEST_F(SpellcheckServiceBrowserTest, GetSpellCheckLanguages4) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionary, "fr");
+ prefs->SetString(prefs::kAcceptLanguages, "en,en-JP,fr,zz,en-US");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(2UL, languages.size());
+ EXPECT_EQ("fr", languages[0]);
+ EXPECT_EQ("en-US", languages[1]);
+}
+
+class MultilingualSpellcheckServiceBrowserTest : public InProcessBrowserTest {
+ public:
+ Profile* GetProfile() { return browser()->profile(); }
+ void SetUpCommandLine(base::CommandLine* command_line) override {
+ command_line->AppendSwitch(switches::kEnableMultilingualSpellChecker);
+ }
+};
+
+IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest,
+ GetSpellCheckLanguages1) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionaries, "en-US");
+ prefs->SetString(prefs::kAcceptLanguages, "en,en-US");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(1UL, languages.size());
+ EXPECT_EQ("en-US", languages[0]);
+}
+
+IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest,
+ GetSpellCheckLanguages2) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionaries, "en-US");
+ prefs->SetString(prefs::kAcceptLanguages, "en-US,en");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(1UL, languages.size());
+ EXPECT_EQ("en-US", languages[0]);
+}
+
+IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest,
+ GetSpellCheckLanguages3) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionaries, "en-US,fr");
+ prefs->SetString(prefs::kAcceptLanguages, "en,fr,en-US,en-AU");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(2UL, ret);
+ ASSERT_EQ(3UL, languages.size());
+ EXPECT_EQ("en-US", languages[0]);
+ EXPECT_EQ("fr", languages[1]);
+ EXPECT_EQ("en-AU", languages[2]);
+}
+
+IN_PROC_BROWSER_TEST_F(MultilingualSpellcheckServiceBrowserTest,
+ GetSpellCheckLanguages4) {
+ BrowserContext* context = static_cast<BrowserContext*>(GetProfile());
+ PrefService* prefs = user_prefs::UserPrefs::Get(context);
+ prefs->SetString(prefs::kSpellCheckDictionaries, "fr");
+ prefs->SetString(prefs::kAcceptLanguages, "en,en-JP,fr,zz,en-US");
+
+ std::vector<std::string> languages;
+ size_t ret = SpellcheckService::GetSpellCheckLanguages(context, &languages);
+
+ EXPECT_EQ(1UL, ret);
+ ASSERT_EQ(2UL, languages.size());
+ EXPECT_EQ("fr", languages[0]);
+ EXPECT_EQ("en-US", languages[1]);
+}

Powered by Google App Engine
This is Rietveld 408576698