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

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: 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 "base/prefs/testing_pref_service.h"
7 #include "components/translate/core/browser/translate_download_manager.h" 8 #include "components/translate/core/browser/translate_download_manager.h"
9 #include "components/translate/core/browser/translate_prefs.h"
8 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
9 11
10 namespace translate { 12 namespace translate {
11 13
12 // Target language comes from application locale if the locale's language 14 // Target language comes from application locale if the locale's language
13 // is supported. 15 // is supported.
14 TEST(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) { 16 TEST(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) {
15 std::vector<std::string> accept_language_list; 17 std::vector<std::string> accept_language_list;
16 18
17 // Ensure we're not requesting a server-side translate language list. 19 // Ensure we're not requesting a server-side translate language list.
18 TranslateLanguageList::DisableUpdate(); 20 TranslateLanguageList::DisableUpdate();
19 21
20 // Ensure the locale is set to a supported language. 22 // Ensure the locale is set to a supported language.
21 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en")); 23 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
22 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance(); 24 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance();
23 manager->ResetForTesting(); 25 manager->ResetForTesting();
24 manager->set_application_locale("en"); 26 manager->set_application_locale("en");
25 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list)); 27 TestingPrefServiceSimple prefs;
28 TranslatePrefs translate_prefs(&prefs, "intl.accept_languages", NULL);
29 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs));
26 30
27 // Try a second supported language. 31 // Try a second supported language.
28 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de")); 32 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de"));
29 manager->set_application_locale("de"); 33 manager->set_application_locale("de");
30 EXPECT_EQ("de", TranslateManager::GetTargetLanguage(accept_language_list)); 34 EXPECT_EQ("de", TranslateManager::GetTargetLanguage(&translate_prefs));
31 } 35 }
32 36
33 // If the application locale's language is not supported, the target language 37 // 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 38 // 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 39 // none of the languages in |accept_language_list| is supported, the target
36 // language is empty. 40 // language is empty.
37 TEST(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) { 41 TEST(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) {
38 std::vector<std::string> accept_language_list; 42 std::vector<std::string> accept_language_list;
39 43
40 // Ensure we're not requesting a server-side translate language list. 44 // Ensure we're not requesting a server-side translate language list.
41 TranslateLanguageList::DisableUpdate(); 45 TranslateLanguageList::DisableUpdate();
42 46
43 // Ensure locale is set to a not-supported language. 47 // Ensure locale is set to a not-supported language.
44 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy")); 48 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy"));
45 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance(); 49 TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance();
46 manager->ResetForTesting(); 50 manager->ResetForTesting();
47 manager->set_application_locale("xy"); 51 manager->set_application_locale("xy");
52 TestingPrefServiceSimple prefs;
53 TranslatePrefs translate_prefs(&prefs, "intl.accept_languages", NULL);
48 54
49 // Default return is empty string. 55 // Default return is empty string.
50 EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list)); 56 EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs));
51 57
52 // Unsupported languages still result in the empty string. 58 // Unsupported languages still result in the empty string.
53 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy")); 59 ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy"));
54 accept_language_list.push_back("xy"); 60 accept_language_list.push_back("xy");
55 EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list)); 61 translate_prefs.UpdateLanguageList(accept_language_list);
62 EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs));
56 63
57 // First supported language is the fallback language. 64 // First supported language is the fallback language.
58 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en")); 65 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
59 accept_language_list.push_back("en"); 66 accept_language_list.push_back("en");
60 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list)); 67 translate_prefs.UpdateLanguageList(accept_language_list);
68 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs));
61 } 69 }
62 70
63 } // namespace translate 71 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698