Chromium Code Reviews| Index: components/translate/core/browser/translate_prefs_unittest.cc |
| diff --git a/components/translate/core/browser/translate_prefs_unittest.cc b/components/translate/core/browser/translate_prefs_unittest.cc |
| index 6f01b0175d03fbf07e75af5592bd8a49bb7daf1b..1af57a27c94a1f560c1bc2aa1d5df7453cffc22b 100644 |
| --- a/components/translate/core/browser/translate_prefs_unittest.cc |
| +++ b/components/translate/core/browser/translate_prefs_unittest.cc |
| @@ -6,12 +6,13 @@ |
| #include <algorithm> |
| #include <string> |
| -#include <vector> |
|
msw
2016/04/29 20:00:03
this file uses vector, leave this include here.
ftang
2016/04/29 22:37:03
Done.
|
| +#include <utility> |
| #include "build/build_config.h" |
| #include "components/pref_registry/testing_pref_service_syncable.h" |
| #include "components/prefs/scoped_user_pref_update.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 { |
| @@ -156,6 +157,19 @@ class TranslatePrefTest : public testing::Test { |
| return update.GetOldestDenialTime(); |
| } |
| + void SetUp() override { |
| + 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:02
std::string
ftang
2016/04/29 22:37:03
Done.
|
| + base::FeatureList::SetInstance(std::move(feature_list)); |
| + } |
| + |
| std::unique_ptr<user_prefs::TestingPrefServiceSyncable> prefs_; |
| std::unique_ptr<translate::TranslatePrefs> translate_prefs_; |
| @@ -164,6 +178,36 @@ class TranslatePrefTest : public testing::Test { |
| base::Time two_days_ago_; |
| }; |
| +TEST_F(TranslatePrefTest, IsTooOftenDeniedIn2016Q2UI) { |
| + TurnOnTranslate2016Q2UIFlag(); |
| + |
| + translate_prefs_->ResetDenialState(); |
| + ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
|
msw
2016/04/29 20:00:02
nit: assert is a bit heavy-handed; expect would be
ftang
2016/04/29 22:37:03
Done.
|
| + |
| + for (int i = 0; i < 3; i++) { |
| + translate_prefs_->IncrementTranslationDeniedCount(kTestLanguage); |
| + ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
| + } |
| + |
| + translate_prefs_->IncrementTranslationDeniedCount(kTestLanguage); |
| + ASSERT_TRUE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
| +} |
| + |
| +TEST_F(TranslatePrefTest, IsTooOftenIgnoredIn2016Q2UI) { |
|
msw
2016/04/29 20:00:03
Maybe add some test that intermixes denied and ign
ftang
2016/04/29 22:37:03
Acknowledged.
msw
2016/04/29 23:43:39
I guess this means 'no'...
|
| + TurnOnTranslate2016Q2UIFlag(); |
| + |
| + translate_prefs_->ResetDenialState(); |
| + ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
| + |
| + for (int i = 0; i < 10; i++) { |
| + translate_prefs_->IncrementTranslationIgnoredCount(kTestLanguage); |
| + ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
| + } |
| + |
| + translate_prefs_->IncrementTranslationIgnoredCount(kTestLanguage); |
| + ASSERT_TRUE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); |
| +} |
| + |
| TEST_F(TranslatePrefTest, UpdateLastDeniedTime) { |
| // Test that denials with more than 24 hours difference between them do not |
| // block the language. |