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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: components/translate/core/browser/translate_manager_unittest.cc
diff --git a/components/translate/core/browser/translate_manager_unittest.cc b/components/translate/core/browser/translate_manager_unittest.cc
index 0bd0dbe441cd579531e2a2c94d3ea9de1414a9b5..77c5d03f985269fbf5c46177b3aae2da0bf28c5e 100644
--- a/components/translate/core/browser/translate_manager_unittest.cc
+++ b/components/translate/core/browser/translate_manager_unittest.cc
@@ -4,60 +4,91 @@
#include "components/translate/core/browser/translate_manager.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "components/pref_registry/testing_pref_service_syncable.h"
#include "components/translate/core/browser/translate_download_manager.h"
+#include "components/translate/core/browser/translate_prefs.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace translate {
-// Target language comes from application locale if the locale's language
-// is supported.
-TEST(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) {
- std::vector<std::string> accept_language_list;
+namespace {
+
+#if defined(OS_CHROMEOS)
+const char kLanguagePreferredLanguages[] =
+ "settings.language.preferred_languages";
+#else
+const char* kLanguagePreferredLanguages = nullptr;
+#endif
+const char kAcceptLanguages[] = "intl.accept_languages";
+
+class TranslateManagerTest : public testing::Test {
+ protected:
+ TranslateManagerTest()
+ : translate_prefs_(&prefs_,
+ kAcceptLanguages,
+ kLanguagePreferredLanguages),
+ manager_(TranslateDownloadManager::GetInstance()) {}
+
+ void SetUp() override {
+ // Ensure we're not requesting a server-side translate language list.
+ TranslateLanguageList::DisableUpdate();
+ prefs_.registry()->RegisterStringPref(kAcceptLanguages, std::string());
+#if defined(OS_CHROMEOS)
+ prefs_.registry()->RegisterStringPref(kLanguagePreferredLanguages,
+ std::string());
+#endif
+ TranslatePrefs::RegisterProfilePrefs(prefs_.registry());
+ manager_->ResetForTesting();
+ }
+ user_prefs::TestingPrefServiceSyncable prefs_;
+ TranslatePrefs translate_prefs_;
+ TranslateDownloadManager* manager_;
- // Ensure we're not requesting a server-side translate language list.
- TranslateLanguageList::DisableUpdate();
+ void TearDown() override { manager_->ResetForTesting(); }
+};
+} // namespace
+
+// Target language comes from application locale if the locale's language
+// is supported.
+TEST_F(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) {
// Ensure the locale is set to a supported language.
ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
- TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance();
- manager->ResetForTesting();
- manager->set_application_locale("en");
- EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list));
+ manager_->set_application_locale("en");
+ EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_));
// Try a second supported language.
ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de"));
- manager->set_application_locale("de");
- EXPECT_EQ("de", TranslateManager::GetTargetLanguage(accept_language_list));
+ manager_->set_application_locale("de");
+ EXPECT_EQ("de", TranslateManager::GetTargetLanguage(&translate_prefs_));
}
// If the application locale's language is not supported, the target language
// falls back to the first supported language in |accept_languages_list|. If
// none of the languages in |accept_language_list| is supported, the target
// language is empty.
-TEST(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) {
+TEST_F(TranslateManagerTest, GetTargetLanguageAcceptLangFallback) {
std::vector<std::string> accept_language_list;
- // Ensure we're not requesting a server-side translate language list.
- TranslateLanguageList::DisableUpdate();
-
// Ensure locale is set to a not-supported language.
ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy"));
- TranslateDownloadManager* manager = TranslateDownloadManager::GetInstance();
- manager->ResetForTesting();
- manager->set_application_locale("xy");
+ manager_->set_application_locale("xy");
// Default return is empty string.
- EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list));
+ EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs_));
// Unsupported languages still result in the empty string.
- ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("xy"));
- accept_language_list.push_back("xy");
- EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list));
+ ASSERT_FALSE(TranslateDownloadManager::IsSupportedLanguage("zy"));
+ accept_language_list.push_back("zy");
+ translate_prefs_.UpdateLanguageList(accept_language_list);
+ EXPECT_EQ("", TranslateManager::GetTargetLanguage(&translate_prefs_));
// First supported language is the fallback language.
ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
accept_language_list.push_back("en");
- EXPECT_EQ("en", TranslateManager::GetTargetLanguage(accept_language_list));
+ translate_prefs_.UpdateLanguageList(accept_language_list);
+ EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_));
}
} // namespace translate
« 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