Index: components/password_manager/core/browser/statistics_table_unittest.cc |
diff --git a/components/password_manager/core/browser/statistics_table_unittest.cc b/components/password_manager/core/browser/statistics_table_unittest.cc |
index 8e348a05e0b31a5ddda713b1b0f976dbdce43195..70bdda356cb5c2b307bd8d0a1a73215ade8c3417 100644 |
--- a/components/password_manager/core/browser/statistics_table_unittest.cc |
+++ b/components/password_manager/core/browser/statistics_table_unittest.cc |
@@ -4,6 +4,8 @@ |
#include "components/password_manager/core/browser/statistics_table.h" |
+#include "base/bind.h" |
+#include "base/callback.h" |
#include "base/files/scoped_temp_dir.h" |
#include "base/strings/utf_string_conversions.h" |
#include "sql/connection.h" |
@@ -15,6 +17,8 @@ namespace { |
const char kTestDomain[] = "http://google.com"; |
const char kTestDomain2[] = "http://example.com"; |
+const char kTestDomain3[] = "https://example.org"; |
+const char kTestDomain4[] = "http://localhost"; |
const char kUsername1[] = "user1"; |
const char kUsername2[] = "user2"; |
@@ -98,30 +102,64 @@ TEST_F(StatisticsTableTest, DifferentUsernames) { |
EXPECT_THAT(db()->GetRows(test_data().origin_domain), IsEmpty()); |
} |
-TEST_F(StatisticsTableTest, RemoveBetween) { |
+TEST_F(StatisticsTableTest, RemoveStatsByOriginAndTime) { |
InteractionsStats stats1 = test_data(); |
stats1.update_time = base::Time::FromTimeT(1); |
InteractionsStats stats2 = test_data(); |
stats2.update_time = base::Time::FromTimeT(2); |
stats2.origin_domain = GURL(kTestDomain2); |
+ InteractionsStats stats3 = test_data(); |
+ stats3.update_time = base::Time::FromTimeT(2); |
+ stats3.origin_domain = GURL(kTestDomain3); |
+ InteractionsStats stats4 = test_data(); |
+ stats4.update_time = base::Time::FromTimeT(2); |
+ stats4.origin_domain = GURL(kTestDomain4); |
EXPECT_TRUE(db()->AddRow(stats1)); |
EXPECT_TRUE(db()->AddRow(stats2)); |
+ EXPECT_TRUE(db()->AddRow(stats3)); |
+ EXPECT_TRUE(db()->AddRow(stats4)); |
EXPECT_THAT(db()->GetRows(stats1.origin_domain), |
ElementsAre(Pointee(stats1))); |
EXPECT_THAT(db()->GetRows(stats2.origin_domain), |
ElementsAre(Pointee(stats2))); |
- |
- // Remove the first one only. |
- EXPECT_TRUE(db()->RemoveStatsBetween(base::Time(), base::Time::FromTimeT(2))); |
+ EXPECT_THAT(db()->GetRows(stats3.origin_domain), |
+ ElementsAre(Pointee(stats3))); |
+ EXPECT_THAT(db()->GetRows(stats4.origin_domain), |
+ ElementsAre(Pointee(stats4))); |
+ |
+ // Remove the entry with the timestamp 1 with no origin filter. |
+ EXPECT_TRUE( |
+ db()->RemoveStatsByOriginAndTime(base::Callback<bool(const GURL&)>(), |
+ base::Time(), base::Time::FromTimeT(2))); |
EXPECT_THAT(db()->GetRows(stats1.origin_domain), IsEmpty()); |
EXPECT_THAT(db()->GetRows(stats2.origin_domain), |
ElementsAre(Pointee(stats2))); |
- |
- // Remove the second one only. |
- EXPECT_TRUE(db()->RemoveStatsBetween(base::Time::FromTimeT(2), base::Time())); |
+ EXPECT_THAT(db()->GetRows(stats3.origin_domain), |
+ ElementsAre(Pointee(stats3))); |
+ EXPECT_THAT(db()->GetRows(stats4.origin_domain), |
+ ElementsAre(Pointee(stats4))); |
+ |
+ // Remove the entries with the timestamp 2 that are NOT matching |
+ // |kTestDomain3|. |
+ EXPECT_TRUE(db()->RemoveStatsByOriginAndTime( |
+ base::Bind(&GURL::operator!=, base::Unretained(&stats3.origin_domain)), |
+ base::Time::FromTimeT(2), base::Time())); |
+ EXPECT_THAT(db()->GetRows(stats1.origin_domain), IsEmpty()); |
+ EXPECT_THAT(db()->GetRows(stats2.origin_domain), IsEmpty()); |
+ EXPECT_THAT(db()->GetRows(stats3.origin_domain), |
+ ElementsAre(Pointee(stats3))); |
+ EXPECT_THAT(db()->GetRows(stats4.origin_domain), IsEmpty()); |
+ |
+ // Remove the entries with the timestamp 2 with no origin filter. |
+ // This should delete the remaining entry. |
+ EXPECT_TRUE( |
+ db()->RemoveStatsByOriginAndTime(base::Callback<bool(const GURL&)>(), |
+ base::Time::FromTimeT(2), base::Time())); |
EXPECT_THAT(db()->GetRows(stats1.origin_domain), IsEmpty()); |
EXPECT_THAT(db()->GetRows(stats2.origin_domain), IsEmpty()); |
+ EXPECT_THAT(db()->GetRows(stats3.origin_domain), IsEmpty()); |
+ EXPECT_THAT(db()->GetRows(stats4.origin_domain), IsEmpty()); |
} |
TEST_F(StatisticsTableTest, BadURL) { |