diff options
author | groby <groby@chromium.org> | 2015-12-15 18:44:21 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-16 02:45:42 +0000 |
commit | 6e5b8cba7511ceba6d3876ec8820b862ac045df8 (patch) | |
tree | 14d681ad2840184a6e00716973126fa73a281496 /components/translate | |
parent | 6f190597050d36a6f2dff51c9ece4799b8eab8af (diff) | |
download | chromium_src-6e5b8cba7511ceba6d3876ec8820b862ac045df8.zip chromium_src-6e5b8cba7511ceba6d3876ec8820b862ac045df8.tar.gz chromium_src-6e5b8cba7511ceba6d3876ec8820b862ac045df8.tar.bz2 |
[Translate] Add unit tests for TranslateManager
We will be looking at changing the target language algorithm. As a
preparation for that, adding unit tests to establish a baseline.
BUG=569219
R=hajimehoshi@chromium.org
Review URL: https://codereview.chromium.org/1523113002
Cr-Commit-Position: refs/heads/master@{#365419}
Diffstat (limited to 'components/translate')
3 files changed, 65 insertions, 1 deletions
diff --git a/components/translate/core/browser/translate_download_manager.cc b/components/translate/core/browser/translate_download_manager.cc index fd5ad58..75a9ee65 100644 --- a/components/translate/core/browser/translate_download_manager.cc +++ b/components/translate/core/browser/translate_download_manager.cc @@ -97,7 +97,6 @@ bool TranslateDownloadManager::IsSupportedLanguage( NOTREACHED(); return false; } - return language_list->IsSupportedLanguage(language); } diff --git a/components/translate/core/browser/translate_language_list_unittest.cc b/components/translate/core/browser/translate_language_list_unittest.cc index fac731e..539deec 100644 --- a/components/translate/core/browser/translate_language_list_unittest.cc +++ b/components/translate/core/browser/translate_language_list_unittest.cc @@ -24,6 +24,7 @@ TEST(TranslateLanguageListTest, SetSupportedLanguages) { ASSERT_EQ(2u, results.size()); EXPECT_EQ("en", results[0]); EXPECT_EQ("ja", results[1]); + manager->ResetForTesting(); } TEST(TranslateLanguageListTest, SetSupportedLanguagesWithAlphaKey) { @@ -42,6 +43,7 @@ TEST(TranslateLanguageListTest, SetSupportedLanguagesWithAlphaKey) { ASSERT_EQ(2u, results.size()); EXPECT_EQ("en", results[0]); EXPECT_EQ("ja", results[1]); + manager->ResetForTesting(); } } // namespace translate 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 0000000..0bd0dbe --- /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 |