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

Unified Diff: components/translate/core/browser/translate_manager_unittest.cc

Issue 1523113002: [Translate] Add unit tests for TranslateManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reset TranslateDownloadManager before/after testing. 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
« no previous file with comments | « components/translate/core/browser/translate_language_list_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
new file mode 100644
index 0000000000000000000000000000000000000000..0bd0dbe441cd579531e2a2c94d3ea9de1414a9b5
--- /dev/null
+++ b/components/translate/core/browser/translate_manager_unittest.cc
@@ -0,0 +1,63 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/translate/core/browser/translate_manager.h"
+
+#include "components/translate/core/browser/translate_download_manager.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;
+
+ // Ensure we're not requesting a server-side translate language list.
+ TranslateLanguageList::DisableUpdate();
+
+ // 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));
+
+ // Try a second supported language.
+ ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("de"));
+ manager->set_application_locale("de");
+ EXPECT_EQ("de", TranslateManager::GetTargetLanguage(accept_language_list));
+}
+
+// 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) {
+ 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");
+
+ // Default return is empty string.
+ EXPECT_EQ("", TranslateManager::GetTargetLanguage(accept_language_list));
+
+ // 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));
+
+ // 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));
+}
+
+} // namespace translate
« no previous file with comments | « components/translate/core/browser/translate_language_list_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698