| 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 "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 Loading... |
| 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 } |
| OLD | NEW |