| Index: components/translate/core/browser/translate_ui_delegate_unittest.cc
|
| diff --git a/components/translate/core/browser/translate_ui_delegate_unittest.cc b/components/translate/core/browser/translate_ui_delegate_unittest.cc
|
| index 417ab51d543e5b502647635584189dc50fa62e64..4170b624525adbfa474bc1f97bca4f2294e7e366 100644
|
| --- a/components/translate/core/browser/translate_ui_delegate_unittest.cc
|
| +++ b/components/translate/core/browser/translate_ui_delegate_unittest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "build/build_config.h"
|
| #include "components/infobars/core/infobar.h"
|
| +#include "components/pref_registry/pref_registry_syncable.h"
|
| #include "components/pref_registry/testing_pref_service_syncable.h"
|
| #include "components/translate/core/browser/mock_translate_driver.h"
|
| #include "components/translate/core/browser/translate_client.h"
|
| @@ -81,6 +82,10 @@ class TranslateUIDelegateTest : public ::testing::Test {
|
|
|
| void SetUp() override {
|
| pref_service_.reset(new user_prefs::TestingPrefServiceSyncable());
|
| + pref_service_->registry()->RegisterStringPref(
|
| + "settings.language.preferred_languages", "");
|
| + pref_service_->registry()->RegisterStringPref(
|
| + "intl.accept_languages", "");
|
| TranslatePrefs::RegisterProfilePrefs(pref_service_->registry());
|
|
|
| client_.reset(new MockTranslateClient(
|
| @@ -94,8 +99,17 @@ class TranslateUIDelegateTest : public ::testing::Test {
|
| manager_->GetWeakPtr(), "ar", "fr"));
|
|
|
| ASSERT_FALSE(client_->GetTranslatePrefs()->IsTooOftenDenied("ar"));
|
| + base::FeatureList::ClearInstanceForTesting();
|
| + base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList));
|
| }
|
|
|
| + void TurnOnTranslate2016Q2UIFlag() {
|
| + base::FeatureList::ClearInstanceForTesting();
|
| + std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
|
| + feature_list->InitializeFromCommandLine(
|
| + translate::kTranslateUI2016Q2.name, "");
|
| + base::FeatureList::SetInstance(std::move(feature_list));
|
| + }
|
|
|
| MockTranslateDriver driver_;
|
| std::unique_ptr<MockTranslateClient> client_;
|
| @@ -116,11 +130,13 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) {
|
| prefs->IncrementTranslationDeniedCount("ar");
|
| int accepted_count = prefs->GetTranslationAcceptedCount("ar");
|
| int denied_count = prefs->GetTranslationDeniedCount("ar");
|
| + int ignored_count = prefs->GetTranslationIgnoredCount("ar");
|
|
|
| delegate_->TranslationDeclined(false);
|
|
|
| EXPECT_EQ(accepted_count, prefs->GetTranslationAcceptedCount("ar"));
|
| EXPECT_EQ(denied_count, prefs->GetTranslationDeniedCount("ar"));
|
| + EXPECT_EQ(ignored_count + 1, prefs->GetTranslationIgnoredCount("ar"));
|
| EXPECT_FALSE(prefs->IsTooOftenDenied("ar"));
|
| EXPECT_FALSE(manager_->GetLanguageState().translation_declined());
|
| }
|
| @@ -132,14 +148,84 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) {
|
| }
|
| prefs->IncrementTranslationDeniedCount("ar");
|
| int denied_count = prefs->GetTranslationDeniedCount("ar");
|
| + int ignored_count = prefs->GetTranslationIgnoredCount("ar");
|
|
|
| delegate_->TranslationDeclined(true);
|
|
|
| EXPECT_EQ(0, prefs->GetTranslationAcceptedCount("ar"));
|
| EXPECT_EQ(denied_count + 1, prefs->GetTranslationDeniedCount("ar"));
|
| + EXPECT_EQ(ignored_count, prefs->GetTranslationIgnoredCount("ar"));
|
| EXPECT_TRUE(manager_->GetLanguageState().translation_declined());
|
| }
|
|
|
| +TEST_F(TranslateUIDelegateTest, SetLanguageBlockedTrue) {
|
| + std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
|
| + manager_->GetLanguageState().SetTranslateEnabled(true);
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| + prefs->UnblockLanguage("ar");
|
| + EXPECT_FALSE(prefs->IsBlockedLanguage("ar"));
|
| +
|
| + delegate_->SetLanguageBlocked(true);
|
| +
|
| + EXPECT_TRUE(prefs->IsBlockedLanguage("ar"));
|
| + EXPECT_FALSE(manager_->GetLanguageState().translate_enabled());
|
| +}
|
| +
|
| +TEST_F(TranslateUIDelegateTest, SetLanguageBlockedFalse) {
|
| + std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
|
| + manager_->GetLanguageState().SetTranslateEnabled(true);
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| + prefs->BlockLanguage("ar");
|
| + EXPECT_TRUE(prefs->IsBlockedLanguage("ar"));
|
| +
|
| + delegate_->SetLanguageBlocked(false);
|
| +
|
| + EXPECT_FALSE(prefs->IsBlockedLanguage("ar"));
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| +}
|
| +
|
| +TEST_F(TranslateUIDelegateTest, SetLanguageBlockedTrueIn2016Q2UI) {
|
| + TurnOnTranslate2016Q2UIFlag();
|
| + std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
|
| + manager_->GetLanguageState().SetTranslateEnabled(true);
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| + prefs->UnblockLanguage("ar");
|
| + EXPECT_FALSE(prefs->IsBlockedLanguage("ar"));
|
| +
|
| + delegate_->SetLanguageBlocked(true);
|
| +
|
| + EXPECT_TRUE(prefs->IsBlockedLanguage("ar"));
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| +}
|
| +
|
| +TEST_F(TranslateUIDelegateTest, SetLanguageBlockedFalseIn2016Q2UI) {
|
| + TurnOnTranslate2016Q2UIFlag();
|
| + std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
|
| + manager_->GetLanguageState().SetTranslateEnabled(true);
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| + prefs->BlockLanguage("ar");
|
| + EXPECT_TRUE(prefs->IsBlockedLanguage("ar"));
|
| +
|
| + delegate_->SetLanguageBlocked(false);
|
| +
|
| + EXPECT_FALSE(prefs->IsBlockedLanguage("ar"));
|
| + EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
|
| +}
|
| +
|
| +TEST_F(TranslateUIDelegateTest, ShowAlwaysTranslateChecked) {
|
| + std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
|
| + prefs->ResetTranslationAcceptedCount("ar");
|
| +
|
| + for (int i = 0; i < 3; i++) {
|
| + EXPECT_FALSE(delegate_->ShowAlwaysTranslateChecked());
|
| + prefs->IncrementTranslationAcceptedCount("ar");
|
| + }
|
| + EXPECT_TRUE(delegate_->ShowAlwaysTranslateChecked());
|
| + prefs->IncrementTranslationAcceptedCount("ar");
|
| +
|
| + EXPECT_FALSE(delegate_->ShowAlwaysTranslateChecked());
|
| +}
|
| +
|
| // TODO(ftang) Currently this file only test TranslationDeclined(), we
|
| // need to add the test for other functions soon to increase the test
|
| // coverage.
|
|
|