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

Unified Diff: components/password_manager/core/browser/statistics_table_unittest.cc

Issue 2320763002: Support origin-based deletion for password store statistics (Closed)
Patch Set: Mac-specific code Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698