| 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..398a05fe4ef64cf47144dddecb04022bc7fd38c7 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() const { return observed_; }
|
| +
|
| + private:
|
| + int observed_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestMetricsServiceObserver);
|
| +};
|
| +
|
| } // namespace
|
|
|
| TEST_F(MetricsServiceTest, IsPluginProcess) {
|
| @@ -304,3 +320,34 @@ TEST_F(MetricsServiceTest, CrashReportingEnabled) {
|
| EXPECT_FALSE(MetricsServiceHelper::IsCrashReportingEnabled());
|
| #endif // defined(GOOGLE_CHROME_BUILD)
|
| }
|
| +
|
| +TEST_F(MetricsServiceTest, MetricsServiceObserver) {
|
| + MetricsService service;
|
| + TestMetricsServiceObserver observer1;
|
| + TestMetricsServiceObserver observer2;
|
| +
|
| + service.AddObserver(&observer1);
|
| + EXPECT_EQ(0, observer1.observed());
|
| + EXPECT_EQ(0, observer2.observed());
|
| +
|
| + service.OpenNewLog();
|
| + EXPECT_EQ(1, observer1.observed());
|
| + EXPECT_EQ(0, observer2.observed());
|
| + service.log_manager_.FinishCurrentLog();
|
| +
|
| + service.AddObserver(&observer2);
|
| +
|
| + service.OpenNewLog();
|
| + EXPECT_EQ(2, observer1.observed());
|
| + EXPECT_EQ(1, observer2.observed());
|
| + service.log_manager_.FinishCurrentLog();
|
| +
|
| + service.RemoveObserver(&observer1);
|
| +
|
| + service.OpenNewLog();
|
| + EXPECT_EQ(2, observer1.observed());
|
| + EXPECT_EQ(2, observer2.observed());
|
| + service.log_manager_.FinishCurrentLog();
|
| +
|
| + service.RemoveObserver(&observer2);
|
| +}
|
|
|