Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/language_model.h" | 5 #include "components/translate/core/browser/language_model.h" |
| 6 | 6 |
| 7 #include "components/prefs/testing_pref_service.h" | 7 #include "components/prefs/testing_pref_service.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 using testing::ElementsAre; | 11 using testing::ElementsAre; |
| 12 using testing::FloatEq; | 12 using testing::FloatEq; |
| 13 using testing::Gt; | 13 using testing::Gt; |
| 14 using testing::SizeIs; | |
| 14 | 15 |
| 15 namespace { | 16 namespace { |
| 16 | 17 |
| 17 const char kLang1[] = "en"; | 18 const char kLang1[] = "en"; |
| 18 const char kLang2[] = "de"; | 19 const char kLang2[] = "de"; |
| 19 const char kLang3[] = "es"; | 20 const char kLang3[] = "es"; |
| 20 | 21 |
| 21 } // namespace | 22 } // namespace |
| 22 | 23 |
| 23 namespace translate { | 24 namespace translate { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 98 EXPECT_THAT(model.GetLanguageFrequency(kLang2), Gt(0.0f)); | 99 EXPECT_THAT(model.GetLanguageFrequency(kLang2), Gt(0.0f)); |
| 99 | 100 |
| 100 // Another 100 visits cause the cleanup (total > 1000). | 101 // Another 100 visits cause the cleanup (total > 1000). |
| 101 for (int i = 0; i < 100; i++) | 102 for (int i = 0; i < 100; i++) |
| 102 model.OnPageVisited(kLang1); | 103 model.OnPageVisited(kLang1); |
| 103 // Lang 2 is removed from the model. | 104 // Lang 2 is removed from the model. |
| 104 EXPECT_THAT(model.GetTopLanguages(), | 105 EXPECT_THAT(model.GetTopLanguages(), |
| 105 ElementsAre(LanguageModel::LanguageInfo{kLang1, 1})); | 106 ElementsAre(LanguageModel::LanguageInfo{kLang1, 1})); |
| 106 } | 107 } |
| 107 | 108 |
| 109 TEST(LanguageModelTest, ShouldClearHistoryIfAllTimes) { | |
| 110 TestingPrefServiceSimple prefs; | |
| 111 LanguageModel::RegisterProfilePrefs(prefs.registry()); | |
| 112 LanguageModel model(&prefs); | |
| 113 | |
| 114 for (int i = 0; i < 100; i++) { | |
| 115 model.OnPageVisited(kLang1); | |
| 116 } | |
| 117 | |
| 118 EXPECT_THAT(model.GetTopLanguages(), SizeIs(1)); | |
| 119 EXPECT_THAT(model.GetLanguageFrequency(kLang1), FloatEq(1.0)); | |
| 120 | |
| 121 model.ClearHistory(base::Time(), base::Time::Max()); | |
| 122 | |
| 123 EXPECT_THAT(model.GetTopLanguages(), SizeIs(0)); | |
| 124 EXPECT_THAT(model.GetLanguageFrequency(kLang1), FloatEq(0.0)); | |
| 125 } | |
| 126 | |
| 127 TEST(LanguageModelTest, ShouldNotClearHistoryIfNotAllTimes) { | |
| 128 TestingPrefServiceSimple prefs; | |
| 129 LanguageModel::RegisterProfilePrefs(prefs.registry()); | |
| 130 LanguageModel model(&prefs); | |
| 131 | |
| 132 for (int i = 0; i < 100; i++) { | |
| 133 model.OnPageVisited(kLang1); | |
| 134 } | |
| 135 | |
| 136 EXPECT_THAT(model.GetTopLanguages(), SizeIs(1)); | |
| 137 EXPECT_THAT(model.GetLanguageFrequency(kLang1), FloatEq(1.0)); | |
| 138 | |
| 139 // Clearing only the last hour of the history has no effect. | |
| 140 model.ClearHistory(base::Time::Now() - base::TimeDelta::FromHours(1), | |
|
groby-ooo-7-16
2017/01/25 16:12:45
Would you mind making this more than an hour? Beca
jkrcal
2017/01/26 15:46:22
Done. Thanks for pointing out!
Actually, "1 hour
msramek
2017/01/26 16:00:48
I'm pretty sure base::Time() is UTC. So base::Time
| |
| 141 base::Time::Max()); | |
| 142 | |
| 143 EXPECT_THAT(model.GetTopLanguages(), SizeIs(1)); | |
| 144 EXPECT_THAT(model.GetLanguageFrequency(kLang1), FloatEq(1.0)); | |
| 145 } | |
| 146 | |
| 108 } // namespace translate | 147 } // namespace translate |
| OLD | NEW |