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..982c060e30fe4d8355cfbd9494dd41362074beed 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}; |
- 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 |