Chromium Code Reviews| Index: chrome/browser/metrics/metrics_service_unittest.cc |
| diff --git a/chrome/browser/metrics/metrics_service_unittest.cc b/chrome/browser/metrics/metrics_service_unittest.cc |
| index b42d789e29cf3cdf5092ba29b71b8f43257e68ce..3cbafcfce11617a129ffad1f153db3964e0e2993 100644 |
| --- a/chrome/browser/metrics/metrics_service_unittest.cc |
| +++ b/chrome/browser/metrics/metrics_service_unittest.cc |
| @@ -135,6 +135,22 @@ class MetricsServiceTest : public testing::Test { |
| DISALLOW_COPY_AND_ASSIGN(MetricsServiceTest); |
| }; |
| +class TestMetricsServiceObserver : public MetricsServiceObserver { |
| + public: |
| + TestMetricsServiceObserver(): observed_(0) {} |
| + virtual ~TestMetricsServiceObserver() {} |
| + |
| + virtual void OnDidCreateMetricsLog() OVERRIDE { |
| + ++observed_; |
| + } |
| + int observed() { return observed_; } |
| + |
| + private: |
| + int observed_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestMetricsServiceObserver); |
| +}; |
| + |
| } // namespace |
| TEST_F(MetricsServiceTest, IsPluginProcess) { |
| @@ -304,3 +320,25 @@ TEST_F(MetricsServiceTest, CrashReportingEnabled) { |
| EXPECT_FALSE(MetricsServiceHelper::IsCrashReportingEnabled()); |
| #endif // defined(GOOGLE_CHROME_BUILD) |
| } |
| + |
| +TEST_F(MetricsServiceTest, MetricsServiceObserver) { |
|
bengr
2014/05/07 16:03:58
You should also test with multiple observers.
bolian
2014/05/07 18:11:44
Done.
|
| + MetricsService service; |
| + TestMetricsServiceObserver observer; |
| + |
| + service.AddObserver(&observer); |
| + EXPECT_EQ(0, observer.observed()); |
| + |
| + service.OpenNewLog(); |
| + EXPECT_EQ(1, observer.observed()); |
| + service.log_manager_.FinishCurrentLog(); |
| + |
| + service.OpenNewLog(); |
| + EXPECT_EQ(2, observer.observed()); |
| + service.log_manager_.FinishCurrentLog(); |
| + |
| + service.RemoveObserver(&observer); |
| + |
| + service.OpenNewLog(); |
| + EXPECT_EQ(2, observer.observed()); |
| + service.log_manager_.FinishCurrentLog(); |
| +} |