| 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
|
|
|