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

Unified Diff: net/reporting/reporting_cache_unittest.cc

Issue 2778373003: Reporting: Add Observer interface to observe cache updates. (Closed)
Patch Set: rebase Created 3 years, 8 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
« no previous file with comments | « net/reporting/reporting_cache.cc ('k') | net/reporting/reporting_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/reporting/reporting_cache_unittest.cc
diff --git a/net/reporting/reporting_cache_unittest.cc b/net/reporting/reporting_cache_unittest.cc
index b6a6816c0d4cead149e692bc495ab21d2a2bb9e4..08cd2734ba43e75d820ba0bf7830307f5907d41a 100644
--- a/net/reporting/reporting_cache_unittest.cc
+++ b/net/reporting/reporting_cache_unittest.cc
@@ -10,6 +10,7 @@
#include "base/time/time.h"
#include "base/values.h"
#include "net/reporting/reporting_client.h"
+#include "net/reporting/reporting_observer.h"
#include "net/reporting/reporting_report.h"
#include "net/reporting/reporting_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -19,8 +20,28 @@
namespace net {
namespace {
+class TestReportingObserver : public ReportingObserver {
+ public:
+ TestReportingObserver() : cache_update_count_(0) {}
+
+ void OnCacheUpdated() override { ++cache_update_count_; }
+
+ int cache_update_count() const { return cache_update_count_; }
+
+ private:
+ int cache_update_count_;
+};
+
class ReportingCacheTest : public ReportingTestBase {
protected:
+ ReportingCacheTest() : ReportingTestBase() {
+ context()->AddObserver(&observer_);
+ }
+
+ ~ReportingCacheTest() override { context()->RemoveObserver(&observer_); }
+
+ TestReportingObserver* observer() { return &observer_; }
+
const GURL kUrl1_ = GURL("https://origin1/path");
const url::Origin kOrigin1_ = url::Origin(GURL("https://origin1/"));
const url::Origin kOrigin2_ = url::Origin(GURL("https://origin2/"));
@@ -32,6 +53,9 @@ class ReportingCacheTest : public ReportingTestBase {
const base::TimeTicks kNow_ = base::TimeTicks::Now();
const base::TimeTicks kExpires1_ = kNow_ + base::TimeDelta::FromDays(7);
const base::TimeTicks kExpires2_ = kExpires1_ + base::TimeDelta::FromDays(7);
+
+ private:
+ TestReportingObserver observer_;
};
TEST_F(ReportingCacheTest, Reports) {
@@ -41,6 +65,7 @@ TEST_F(ReportingCacheTest, Reports) {
cache()->AddReport(kUrl1_, kGroup1_, kType_,
base::MakeUnique<base::DictionaryValue>(), kNow_, 0);
+ EXPECT_EQ(1, observer()->cache_update_count());
cache()->GetReports(&reports);
ASSERT_EQ(1u, reports.size());
@@ -56,6 +81,7 @@ TEST_F(ReportingCacheTest, Reports) {
EXPECT_FALSE(cache()->IsReportDoomedForTesting(report));
cache()->IncrementReportsAttempts(reports);
+ EXPECT_EQ(2, observer()->cache_update_count());
cache()->GetReports(&reports);
ASSERT_EQ(1u, reports.size());
@@ -64,6 +90,7 @@ TEST_F(ReportingCacheTest, Reports) {
EXPECT_EQ(1, report->attempts);
cache()->RemoveReports(reports);
+ EXPECT_EQ(3, observer()->cache_update_count());
cache()->GetReports(&reports);
EXPECT_TRUE(reports.empty());
@@ -74,12 +101,14 @@ TEST_F(ReportingCacheTest, RemoveAllReports) {
base::MakeUnique<base::DictionaryValue>(), kNow_, 0);
cache()->AddReport(kUrl1_, kGroup1_, kType_,
base::MakeUnique<base::DictionaryValue>(), kNow_, 0);
+ EXPECT_EQ(2, observer()->cache_update_count());
std::vector<const ReportingReport*> reports;
cache()->GetReports(&reports);
EXPECT_EQ(2u, reports.size());
cache()->RemoveAllReports();
+ EXPECT_EQ(3, observer()->cache_update_count());
cache()->GetReports(&reports);
EXPECT_TRUE(reports.empty());
@@ -88,6 +117,7 @@ TEST_F(ReportingCacheTest, RemoveAllReports) {
TEST_F(ReportingCacheTest, RemovePendingReports) {
cache()->AddReport(kUrl1_, kGroup1_, kType_,
base::MakeUnique<base::DictionaryValue>(), kNow_, 0);
+ EXPECT_EQ(1, observer()->cache_update_count());
std::vector<const ReportingReport*> reports;
cache()->GetReports(&reports);
@@ -102,6 +132,7 @@ TEST_F(ReportingCacheTest, RemovePendingReports) {
cache()->RemoveReports(reports);
EXPECT_TRUE(cache()->IsReportPendingForTesting(reports[0]));
EXPECT_TRUE(cache()->IsReportDoomedForTesting(reports[0]));
+ EXPECT_EQ(2, observer()->cache_update_count());
// After removing report, future calls to GetReports should not return it.
std::vector<const ReportingReport*> visible_reports;
@@ -117,6 +148,7 @@ TEST_F(ReportingCacheTest, RemovePendingReports) {
TEST_F(ReportingCacheTest, RemoveAllPendingReports) {
cache()->AddReport(kUrl1_, kGroup1_, kType_,
base::MakeUnique<base::DictionaryValue>(), kNow_, 0);
+ EXPECT_EQ(1, observer()->cache_update_count());
std::vector<const ReportingReport*> reports;
cache()->GetReports(&reports);
@@ -131,6 +163,7 @@ TEST_F(ReportingCacheTest, RemoveAllPendingReports) {
cache()->RemoveAllReports();
EXPECT_TRUE(cache()->IsReportPendingForTesting(reports[0]));
EXPECT_TRUE(cache()->IsReportDoomedForTesting(reports[0]));
+ EXPECT_EQ(2, observer()->cache_update_count());
// After removing report, future calls to GetReports should not return it.
std::vector<const ReportingReport*> visible_reports;
@@ -147,6 +180,7 @@ TEST_F(ReportingCacheTest, Endpoints) {
cache()->SetClient(kOrigin1_, kEndpoint1_,
ReportingClient::Subdomains::EXCLUDE, kGroup1_,
kExpires1_);
+ EXPECT_EQ(1, observer()->cache_update_count());
const ReportingClient* client =
FindClientInCache(cache(), kOrigin1_, kEndpoint1_);
@@ -159,6 +193,7 @@ TEST_F(ReportingCacheTest, Endpoints) {
cache()->SetClient(kOrigin1_, kEndpoint1_,
ReportingClient::Subdomains::INCLUDE, kGroup2, kExpires2_);
+ EXPECT_EQ(2, observer()->cache_update_count());
client = FindClientInCache(cache(), kOrigin1_, kEndpoint1_);
ASSERT_TRUE(client);
@@ -169,6 +204,7 @@ TEST_F(ReportingCacheTest, Endpoints) {
EXPECT_EQ(kExpires2_, client->expires);
cache()->RemoveClients(std::vector<const ReportingClient*>{client});
+ EXPECT_EQ(3, observer()->cache_update_count());
client = FindClientInCache(cache(), kOrigin1_, kEndpoint1_);
EXPECT_FALSE(client);
@@ -202,8 +238,10 @@ TEST_F(ReportingCacheTest, RemoveClientForOriginAndEndpoint) {
cache()->SetClient(kOrigin2_, kEndpoint1_,
ReportingClient::Subdomains::EXCLUDE, kGroup1_,
kExpires1_);
+ EXPECT_EQ(3, observer()->cache_update_count());
cache()->RemoveClientForOriginAndEndpoint(kOrigin1_, kEndpoint1_);
+ EXPECT_EQ(4, observer()->cache_update_count());
std::vector<const ReportingClient*> clients;
cache()->GetClientsForOriginAndGroup(kOrigin1_, kGroup1_, &clients);
@@ -225,8 +263,10 @@ TEST_F(ReportingCacheTest, RemoveClientsForEndpoint) {
cache()->SetClient(kOrigin2_, kEndpoint1_,
ReportingClient::Subdomains::EXCLUDE, kGroup1_,
kExpires1_);
+ EXPECT_EQ(3, observer()->cache_update_count());
cache()->RemoveClientsForEndpoint(kEndpoint1_);
+ EXPECT_EQ(4, observer()->cache_update_count());
std::vector<const ReportingClient*> clients;
cache()->GetClientsForOriginAndGroup(kOrigin1_, kGroup1_, &clients);
@@ -246,8 +286,10 @@ TEST_F(ReportingCacheTest, RemoveAllClients) {
cache()->SetClient(kOrigin2_, kEndpoint2_,
ReportingClient::Subdomains::EXCLUDE, kGroup1_,
kExpires1_);
+ EXPECT_EQ(2, observer()->cache_update_count());
cache()->RemoveAllClients();
+ EXPECT_EQ(3, observer()->cache_update_count());
std::vector<const ReportingClient*> clients;
cache()->GetClients(&clients);
« no previous file with comments | « net/reporting/reporting_cache.cc ('k') | net/reporting/reporting_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698