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

Unified Diff: components/rappor/rappor_service_unittest.cc

Issue 509203002: Create a mechanism for reporting rappor metrics from non-UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ReportingLevel Created 6 years, 1 month 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/rappor/rappor_service_unittest.cc
diff --git a/components/rappor/rappor_service_unittest.cc b/components/rappor/rappor_service_unittest.cc
index 4430ee3eb9827ed160d02b6c0147efb40fb2d325..9f6cd6e97907f0107e11f62cce4bff190e06a0d8 100644
--- a/components/rappor/rappor_service_unittest.cc
+++ b/components/rappor/rappor_service_unittest.cc
@@ -16,34 +16,53 @@ namespace rappor {
class TestRapporService : public RapporService {
public:
- TestRapporService() : RapporService(&prefs_) {
- RegisterPrefs(prefs_.registry());
- prefs_.SetInteger(prefs::kRapporCohortSeed, 0);
- std::string secret = HmacByteVectorGenerator::GenerateEntropyInput();
- std::string secret_base64;
- base::Base64Encode(secret, &secret_base64);
- prefs_.SetString(prefs::kRapporSecret, secret_base64);
- LoadCohort();
- LoadSecret();
+ TestRapporService(ReportingLevel reporting_level) : RapporService(&prefs) {
+ RegisterPrefs(prefs.registry());
+ Initialize(0,
+ HmacByteVectorGenerator::GenerateEntropyInput(),
+ reporting_level);
}
void GetReports(RapporReports* reports) {
ExportMetrics(reports);
}
+ int32_t TestLoadCohort() {
+ return LoadCohort();
+ }
+
+ std::string TestLoadSecret() {
+ return LoadSecret();
+ }
+
void TestRecordSample(const std::string& metric_name,
const RapporParameters& parameters,
const std::string& sample) {
RecordSampleInternal(metric_name, parameters, sample);
}
- protected:
- TestingPrefServiceSimple prefs_;
+ TestingPrefServiceSimple prefs;
private:
DISALLOW_COPY_AND_ASSIGN(TestRapporService);
};
+TEST(RapporServiceTest, LoadCohort) {
+ TestRapporService rappor_service(REPORTING_DISABLED);
+ rappor_service.prefs.SetInteger(prefs::kRapporCohortSeed, 1);
+ EXPECT_EQ(1, rappor_service.TestLoadCohort());
+}
+
+TEST(RapporServiceTest, LoadSecret) {
+ TestRapporService rappor_service(REPORTING_DISABLED);
+ std::string secret = HmacByteVectorGenerator::GenerateEntropyInput();
+ std::string secret_base64;
+ base::Base64Encode(secret, &secret_base64);
+ rappor_service.prefs.SetString(prefs::kRapporSecret, secret_base64);
+ EXPECT_EQ(secret, rappor_service.TestLoadSecret());
+}
+
+// Check that samples can be recorded and exported.
TEST(RapporServiceTest, RecordAndExportMetrics) {
const RapporParameters kTestRapporParameters = {
1 /* Num cohorts */,
@@ -52,10 +71,12 @@ TEST(RapporServiceTest, RecordAndExportMetrics) {
PROBABILITY_75 /* Fake data probability */,
PROBABILITY_50 /* Fake one probability */,
PROBABILITY_75 /* One coin probability */,
- PROBABILITY_50 /* Zero coin probability */};
+ PROBABILITY_50 /* Zero coin probability */,
+ COARSE_LEVEL /* Reporting level (not used) */};
- TestRapporService rappor_service;
+ TestRapporService rappor_service(COARSE_LEVEL);
+ // Multiple samples for the same metric should only generate one report.
rappor_service.TestRecordSample("MyMetric", kTestRapporParameters, "foo");
rappor_service.TestRecordSample("MyMetric", kTestRapporParameters, "bar");
@@ -68,4 +89,25 @@ TEST(RapporServiceTest, RecordAndExportMetrics) {
EXPECT_EQ(16u, report.bits().size());
}
+// Check that the reporting level is respected.
+TEST(RapporServiceTest, ReportingLevel) {
+ const RapporParameters kFineRapporParameters = {
+ 1 /* Num cohorts */,
+ 16 /* Bloom filter size bytes */,
+ 4 /* Bloom filter hash count */,
+ PROBABILITY_75 /* Fake data probability */,
+ PROBABILITY_50 /* Fake one probability */,
+ PROBABILITY_75 /* One coin probability */,
+ PROBABILITY_50 /* Zero coin probability */,
+ FINE_LEVEL};
+
+ TestRapporService rappor_service(COARSE_LEVEL);
+
+ rappor_service.TestRecordSample("FineMetric", kFineRapporParameters, "foo");
+
+ RapporReports reports;
+ rappor_service.GetReports(&reports);
+ EXPECT_EQ(0, reports.report_size());
+}
+
} // namespace rappor

Powered by Google App Engine
This is Rietveld 408576698