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

Side by Side Diff: components/translate/core/browser/translate_prefs_unittest.cc

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix namespace in .h and other minor review comments Created 4 years, 7 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/translate/core/browser/translate_prefs.h" 5 #include "components/translate/core/browser/translate_prefs.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <utility>
msw 2016/04/29 20:00:03 this file uses vector, leave this include here.
ftang 2016/04/29 22:37:03 Done.
10 10
11 #include "build/build_config.h" 11 #include "build/build_config.h"
12 #include "components/pref_registry/testing_pref_service_syncable.h" 12 #include "components/pref_registry/testing_pref_service_syncable.h"
13 #include "components/prefs/scoped_user_pref_update.h" 13 #include "components/prefs/scoped_user_pref_update.h"
14 #include "components/translate/core/browser/translate_download_manager.h" 14 #include "components/translate/core/browser/translate_download_manager.h"
15 #include "components/translate/core/browser/translate_prefs.h"
15 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
16 17
17 namespace { 18 namespace {
18 19
19 const char kTestLanguage[] = "en"; 20 const char kTestLanguage[] = "en";
20 21
21 } // namespace 22 } // namespace
22 23
23 namespace translate { 24 namespace translate {
24 25
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 void SetLastDeniedTime(const std::string& language, base::Time time) { 150 void SetLastDeniedTime(const std::string& language, base::Time time) {
150 DenialTimeUpdate update(prefs_.get(), language, 2); 151 DenialTimeUpdate update(prefs_.get(), language, 2);
151 update.AddDenialTime(time); 152 update.AddDenialTime(time);
152 } 153 }
153 154
154 base::Time GetLastDeniedTime(const std::string& language) { 155 base::Time GetLastDeniedTime(const std::string& language) {
155 DenialTimeUpdate update(prefs_.get(), language, 2); 156 DenialTimeUpdate update(prefs_.get(), language, 2);
156 return update.GetOldestDenialTime(); 157 return update.GetOldestDenialTime();
157 } 158 }
158 159
160 void SetUp() override {
161 base::FeatureList::ClearInstanceForTesting();
162 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList()));
163 }
164
165 void TurnOnTranslate2016Q2UIFlag() {
166 base::FeatureList::ClearInstanceForTesting();
167 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
168 feature_list->InitializeFromCommandLine(
169 translate::kTranslateUI2016Q2.name, "");
msw 2016/04/29 20:00:02 std::string
ftang 2016/04/29 22:37:03 Done.
170 base::FeatureList::SetInstance(std::move(feature_list));
171 }
172
159 std::unique_ptr<user_prefs::TestingPrefServiceSyncable> prefs_; 173 std::unique_ptr<user_prefs::TestingPrefServiceSyncable> prefs_;
160 std::unique_ptr<translate::TranslatePrefs> translate_prefs_; 174 std::unique_ptr<translate::TranslatePrefs> translate_prefs_;
161 175
162 // Shared time constants. 176 // Shared time constants.
163 base::Time now_; 177 base::Time now_;
164 base::Time two_days_ago_; 178 base::Time two_days_ago_;
165 }; 179 };
166 180
181 TEST_F(TranslatePrefTest, IsTooOftenDeniedIn2016Q2UI) {
182 TurnOnTranslate2016Q2UIFlag();
183
184 translate_prefs_->ResetDenialState();
185 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.
186
187 for (int i = 0; i < 3; i++) {
188 translate_prefs_->IncrementTranslationDeniedCount(kTestLanguage);
189 ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
190 }
191
192 translate_prefs_->IncrementTranslationDeniedCount(kTestLanguage);
193 ASSERT_TRUE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
194 }
195
196 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'...
197 TurnOnTranslate2016Q2UIFlag();
198
199 translate_prefs_->ResetDenialState();
200 ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
201
202 for (int i = 0; i < 10; i++) {
203 translate_prefs_->IncrementTranslationIgnoredCount(kTestLanguage);
204 ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
205 }
206
207 translate_prefs_->IncrementTranslationIgnoredCount(kTestLanguage);
208 ASSERT_TRUE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
209 }
210
167 TEST_F(TranslatePrefTest, UpdateLastDeniedTime) { 211 TEST_F(TranslatePrefTest, UpdateLastDeniedTime) {
168 // Test that denials with more than 24 hours difference between them do not 212 // Test that denials with more than 24 hours difference between them do not
169 // block the language. 213 // block the language.
170 translate_prefs_->ResetDenialState(); 214 translate_prefs_->ResetDenialState();
171 SetLastDeniedTime(kTestLanguage, two_days_ago_); 215 SetLastDeniedTime(kTestLanguage, two_days_ago_);
172 ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage)); 216 ASSERT_FALSE(translate_prefs_->IsTooOftenDenied(kTestLanguage));
173 translate_prefs_->UpdateLastDeniedTime(kTestLanguage); 217 translate_prefs_->UpdateLastDeniedTime(kTestLanguage);
174 base::Time last_denied = GetLastDeniedTime(kTestLanguage); 218 base::Time last_denied = GetLastDeniedTime(kTestLanguage);
175 EXPECT_FALSE(last_denied.is_max()); 219 EXPECT_FALSE(last_denied.is_max());
176 EXPECT_GE(last_denied, now_); 220 EXPECT_GE(last_denied, now_);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 update.AddDenialTime(now_); 320 update.AddDenialTime(now_);
277 EXPECT_EQ(update.GetOldestDenialTime(), 321 EXPECT_EQ(update.GetOldestDenialTime(),
278 now_ - base::TimeDelta::FromMinutes(3)); 322 now_ - base::TimeDelta::FromMinutes(3));
279 323
280 update.AddDenialTime(now_); 324 update.AddDenialTime(now_);
281 EXPECT_EQ(update.GetOldestDenialTime(), 325 EXPECT_EQ(update.GetOldestDenialTime(),
282 now_ - base::TimeDelta::FromMinutes(2)); 326 now_ - base::TimeDelta::FromMinutes(2));
283 } 327 }
284 328
285 } // namespace translate 329 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698