Chromium Code Reviews| 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", ""); |
|
msw
2016/04/29 20:00:03
std::string() here and below.
ftang
2016/04/29 22:37:03
Done.
|
| + 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, ""); |
|
msw
2016/04/29 20:00:03
std::string()
ftang
2016/04/29 22:37:03
Done.
|
| + 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) { |
|
msw
2016/04/29 20:00:03
Combine this test with the one above? you're toggl
ftang
2016/04/29 22:37:03
Done.
|
| + 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) { |
|
msw
2016/04/29 20:00:03
Maybe use a parameterized gtest here for old/new?
ftang
2016/04/29 22:37:03
Acknowledged.
msw
2016/04/29 23:43:40
I'm not sure why you wouldn't do this... the new U
msw
2016/04/30 02:12:59
Please add TODOs and/or file a bug, this regresses
|
| + 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) { |
|
msw
2016/04/29 20:00:03
Ditto
ftang
2016/04/29 22:37:03
Acknowledged.
|
| + 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. |