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

Side by Side Diff: components/translate/core/browser/translate_manager_unittest.cc

Issue 1525203003: [Translate] Factor out access to Accept-Languages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@translate-manager-unit
Patch Set: Fix CrOS build Created 5 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/translate/core/browser/translate_manager.h" 5 #include "components/translate/core/browser/translate_manager.h"
6 6
7 #include "components/pref_registry/pref_registry_syncable.h"
8 #include "components/pref_registry/testing_pref_service_syncable.h"
7 #include "components/translate/core/browser/translate_download_manager.h" 9 #include "components/translate/core/browser/translate_download_manager.h"
10 #include "components/translate/core/browser/translate_prefs.h"
8 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
9 12
10 namespace translate { 13 namespace translate {
11 14
15 namespace {
16
17 #if defined(OS_CHROMEOS)
18 const char kLanguagePreferredLanguages[] =
19 "settings.language.preferred_languages";
20 #else
21 const char* kLanguagePreferredLanguages = nullptr;
22 #endif
23 const char kAcceptLanguages[] = "intl.accept_languages";
24
25 class TranslateManagerTest : public testing::Test {
26 protected:
27 TranslateManagerTest()
28 : translate_prefs_(&prefs_,
29 kAcceptLanguages,
30 kLanguagePreferredLanguages),
31 manager_(TranslateDownloadManager::GetInstance()) {}
32
33 void SetUp() override {
34 // Ensure we're not requesting a server-side translate language list.
35 TranslateLanguageList::DisableUpdate();
36 prefs_.registry()->RegisterStringPref(kAcceptLanguages, std::string());
37 #if defined(OS_CHROMEOS)
38 prefs_.registry()->RegisterStringPref(kLanguagePreferredLanguages,
39 std::string());
40 #endif
41 TranslatePrefs::RegisterProfilePrefs(prefs_.registry());
42 manager_->ResetForTesting();
43 }
44 user_prefs::TestingPrefServiceSyncable prefs_;
45 TranslatePrefs translate_prefs_;
46 TranslateDownloadManager* manager_;
47
48 void TearDown() override { manager_->ResetForTesting(); }
49 };
50
51 } // namespace
52
12 // Target language comes from application locale if the locale's language 53 // Target language comes from application locale if the locale's language
13 // is supported. 54 // is supported.
14 TEST(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) { 55 TEST_F(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) {
15 std::vector<std::string> accept_language_list;
16
17 // Ensure we're not requesting a server-side translate language list.
18 TranslateLanguageList::DisableUpdate();
19
20 // Ensure the locale is set to a supported language. 56 // Ensure the locale is set to a supported language.
21 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en")); 57 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
22 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance(); 58 manager_->set_application_locale("en");
23 manager->ResetForTesting(); 59 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_));
24 manager->set_application_locale("en");
25 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list));
26 60
27 // Try a second supported language. 61 // Try a second supported language.
28 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de")); 62 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de"));
29 manager->set_application_locale("de"); 63 manager_->set_application_locale("de");
30 EXPECT_EQ("de", TranslateManager::GetTargetLanguage(accept_language_list)); 64 EXPECT_EQ("de", TranslateManager::GetTargetLanguage(&translate_prefs_));
31 } 65 }
32 66
33 // If the application locale's language is not supported, the target language 67 // If the application locale's language is not supported, the target language
34 // falls back to the first supported language in |accept_languages_list|. If 68 // falls back to the first supported language in |accept_languages_list|. If
35 // none of the languages in |accept_language_list| is supported, the target 69 // none of the languages in |accept_language_list| is supported, the target
36 // language is empty. 70 // language is empty.
37 TEST(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) { 71 TEST_F(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) {
38 std::vector<std::string> accept_language_list; 72 std::vector<std::string> accept_language_list;
39 73
40 // Ensure we're not requesting a server-side translate language list.
41 TranslateLanguageList::DisableUpdate();
42
43 // Ensure locale is set to a not-supported language. 74 // Ensure locale is set to a not-supported language.
44 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy")); 75 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy"));
45 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance(); 76 manager_->set_application_locale("xy");
46 manager->ResetForTesting();
47 manager->set_application_locale("xy");
48 77
49 // Default return is empty string. 78 // Default return is empty string.
50 EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list)); 79 EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs_));
51 80
52 // Unsupported languages still result in the empty string. 81 // Unsupported languages still result in the empty string.
53 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy")); 82 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("zy"));
54 accept_language_list.push_back("xy"); 83 accept_language_list.push_back("zy");
55 EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list)); 84 translate_prefs_.UpdateLanguageList(accept_language_list);
85 EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs_));
56 86
57 // First supported language is the fallback language. 87 // First supported language is the fallback language.
58 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en")); 88 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
59 accept_language_list.push_back("en"); 89 accept_language_list.push_back("en");
60 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list)); 90 translate_prefs_.UpdateLanguageList(accept_language_list);
91 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_));
61 } 92 }
62 93
63 } // namespace translate 94 } // namespace translate
OLDNEW
« no previous file with comments | « components/translate/core/browser/translate_manager.cc ('k') | components/translate/core/browser/translate_prefs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698