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

Side by Side Diff: chrome/browser/spellchecker/spellcheck_service_unittest.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: Fixed nits and presubmit warnings. Created 5 years, 5 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
OLDNEW
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 "chrome/browser/spellchecker/spellcheck_service.h" 5 #include "chrome/browser/spellchecker/spellcheck_service.h"
6 6
7 #include "base/command_line.h"
7 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
8 #include "base/prefs/pref_registry_simple.h" 9 #include "base/prefs/pref_registry_simple.h"
9 #include "base/prefs/testing_pref_service.h" 10 #include "base/prefs/testing_pref_service.h"
10 #include "base/strings/string_split.h" 11 #include "base/strings/string_split.h"
11 #include "base/supports_user_data.h" 12 #include "base/supports_user_data.h"
13 #include "chrome/common/chrome_switches.h"
12 #include "chrome/common/pref_names.h" 14 #include "chrome/common/pref_names.h"
13 #include "components/user_prefs/user_prefs.h" 15 #include "components/user_prefs/user_prefs.h"
14 #include "content/public/test/test_browser_thread.h" 16 #include "content/public/test/test_browser_thread.h"
15 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
16 18
17 struct SpellcheckLanguageTestCase { 19 struct SpellcheckLanguageTestCase {
18 SpellcheckLanguageTestCase(const std::string& accept_languages, 20 SpellcheckLanguageTestCase(const std::string& accept_languages,
19 const std::string& spellcheck_dictionary, 21 const std::string& unsplit_spellcheck_dictionaries,
22 size_t num_expected_enabled_spellcheck_languages,
20 const std::string& unsplit_expected_languages) 23 const std::string& unsplit_expected_languages)
21 : accept_languages(accept_languages), 24 : accept_languages(accept_languages),
22 spellcheck_dictionaries(1, spellcheck_dictionary) { 25 num_expected_enabled_spellcheck_languages(
26 num_expected_enabled_spellcheck_languages) {
27 base::SplitString(unsplit_spellcheck_dictionaries, ',',
28 &spellcheck_dictionaries);
23 base::SplitString(unsplit_expected_languages, ',', 29 base::SplitString(unsplit_expected_languages, ',',
24 &expected_spellcheck_languages); 30 &expected_spellcheck_languages);
25 } 31 }
26 ~SpellcheckLanguageTestCase() {} 32 ~SpellcheckLanguageTestCase() {}
27 33
28 std::string accept_languages; 34 std::string accept_languages;
29 std::vector<std::string> spellcheck_dictionaries; 35 std::vector<std::string> spellcheck_dictionaries;
36 size_t num_expected_enabled_spellcheck_languages;
30 std::vector<std::string> expected_spellcheck_languages; 37 std::vector<std::string> expected_spellcheck_languages;
31 }; 38 };
32 39
33 class SpellcheckServiceUnitTest 40 class SpellcheckServiceUnitTest
34 : public testing::TestWithParam<SpellcheckLanguageTestCase> { 41 : public testing::TestWithParam<SpellcheckLanguageTestCase> {
35 public: 42 public:
36 SpellcheckServiceUnitTest() 43 SpellcheckServiceUnitTest()
37 : ui_thread_(content::BrowserThread::UI, &message_loop_) { 44 : ui_thread_(content::BrowserThread::UI, &message_loop_) {
38 user_prefs::UserPrefs::Set(&context_, &prefs_); 45 user_prefs::UserPrefs::Set(&context_, &prefs_);
39 } 46 }
(...skipping 14 matching lines...) Expand all
54 base::MessageLoop message_loop_; 61 base::MessageLoop message_loop_;
55 content::TestBrowserThread ui_thread_; 62 content::TestBrowserThread ui_thread_;
56 63
57 DISALLOW_COPY_AND_ASSIGN(SpellcheckServiceUnitTest); 64 DISALLOW_COPY_AND_ASSIGN(SpellcheckServiceUnitTest);
58 }; 65 };
59 66
60 INSTANTIATE_TEST_CASE_P( 67 INSTANTIATE_TEST_CASE_P(
61 SpellcheckLanguageTestCases, 68 SpellcheckLanguageTestCases,
62 SpellcheckServiceUnitTest, 69 SpellcheckServiceUnitTest,
63 testing::Values( 70 testing::Values(
64 SpellcheckLanguageTestCase("en,en-US", "en-US", "en-US"), 71 SpellcheckLanguageTestCase("en,en-US", "en-US", 1UL, "en-US"),
65 SpellcheckLanguageTestCase("en-US,en", "en-US", "en-US"), 72 SpellcheckLanguageTestCase("en-US,en", "en-US", 1UL, "en-US"),
66 SpellcheckLanguageTestCase("en,en-US,en-AU", "en-US", "en-US,en-AU"), 73 SpellcheckLanguageTestCase("en,en-US,en-AU",
67 SpellcheckLanguageTestCase("en,en-US,fr", "en-US", "en-US,fr"), 74 "en-US",
68 SpellcheckLanguageTestCase("en,en-JP,fr,aa", "fr", "fr"))); 75 1UL,
76 "en-US,en-AU"),
77 SpellcheckLanguageTestCase("en,en-US,fr", "en-US", 1UL, "en-US,fr"),
78 SpellcheckLanguageTestCase("en,en-JP,fr,aa", "fr", 1UL, "fr"),
79 SpellcheckLanguageTestCase("en,en-US", "en-US", 1UL, "en-US"),
80 SpellcheckLanguageTestCase("en-US,en", "en-US", 1UL, "en-US"),
81 SpellcheckLanguageTestCase("en,fr,en-US,en-AU",
82 "en-US,fr",
83 2UL,
84 "en-US,fr,en-AU"),
85 SpellcheckLanguageTestCase("en,en-JP,fr,zz,en-US",
86 "fr",
87 1UL,
88 "fr,en-US")));
69 89
70 TEST_P(SpellcheckServiceUnitTest, GetSpellcheckLanguages) { 90 TEST_P(SpellcheckServiceUnitTest, GetSpellcheckLanguages) {
71 prefs()->SetString(prefs::kAcceptLanguages, GetParam().accept_languages); 91 prefs()->SetString(prefs::kAcceptLanguages, GetParam().accept_languages);
72 base::ListValue dictionaries; 92 base::ListValue dictionaries;
73 dictionaries.AppendStrings(GetParam().spellcheck_dictionaries); 93 dictionaries.AppendStrings(GetParam().spellcheck_dictionaries);
74 prefs()->Set(prefs::kSpellCheckDictionaries, dictionaries); 94 prefs()->Set(prefs::kSpellCheckDictionaries, dictionaries);
75 95
76 std::vector<std::string> spellcheck_languages; 96 std::vector<std::string> spellcheck_languages;
77 EXPECT_EQ(0, SpellcheckService::GetSpellCheckLanguages( 97 EXPECT_EQ(GetParam().num_expected_enabled_spellcheck_languages,
78 context(), &spellcheck_languages)); 98 SpellcheckService::GetSpellCheckLanguages(context(),
99 &spellcheck_languages));
79 100
80 EXPECT_EQ(GetParam().expected_spellcheck_languages, spellcheck_languages); 101 EXPECT_EQ(GetParam().expected_spellcheck_languages, spellcheck_languages);
81 } 102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698