| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "metrics_daemon.h" | 5 #include "metrics_daemon.h" |
| 6 #include "metrics_library_mock.h" | 6 #include "metrics_library_mock.h" |
| 7 | 7 |
| 8 #include <sys/file.h> | 8 #include <sys/file.h> |
| 9 | 9 |
| 10 #include <base/eintr_wrapper.h> | 10 #include <base/eintr_wrapper.h> |
| 11 #include <base/file_util.h> | 11 #include <base/file_util.h> |
| 12 #include <base/logging.h> | 12 #include <base/logging.h> |
| 13 #include <base/string_util.h> | 13 #include <base/string_util.h> |
| 14 #include <gtest/gtest.h> | 14 #include <gtest/gtest.h> |
| 15 | 15 |
| 16 using ::testing::Mock; | 16 using ::testing::Mock; |
| 17 using ::testing::Return; | 17 using ::testing::Return; |
| 18 using ::testing::StrictMock; | 18 using ::testing::StrictMock; |
| 19 | 19 |
| 20 static const char kTestDailyUseRecordFile[] = "daily-usage-test"; | 20 static const char kTestDailyUseRecordFile[] = "daily-usage-test"; |
| 21 static const char kDoesNotExistFile[] = "/does/not/exist"; | 21 static const char kDoesNotExistFile[] = "/does/not/exist"; |
| 22 | 22 |
| 23 static const int kSecondsPerDay = 24 * 60 * 60; | 23 static const int kSecondsPerDay = 24 * 60 * 60; |
| 24 | 24 |
| 25 class MetricsDaemonTest : public testing::Test { | 25 class MetricsDaemonTest : public testing::Test { |
| 26 protected: | 26 protected: |
| 27 virtual void SetUp() { | 27 virtual void SetUp() { |
| 28 EXPECT_EQ(NULL, daemon_.daily_use_record_file_); |
| 28 daemon_.Init(true, &metrics_lib_); | 29 daemon_.Init(true, &metrics_lib_); |
| 30 EXPECT_TRUE(NULL != daemon_.daily_use_record_file_); |
| 29 daemon_.daily_use_record_file_ = kTestDailyUseRecordFile; | 31 daemon_.daily_use_record_file_ = kTestDailyUseRecordFile; |
| 30 | 32 |
| 31 // The test fixture object will be used by the log message handler. | 33 // The test fixture object will be used by the log message handler. |
| 32 daemon_test_ = this; | 34 daemon_test_ = this; |
| 33 logging::SetLogMessageHandler(HandleLogMessages); | 35 logging::SetLogMessageHandler(HandleLogMessages); |
| 34 } | 36 } |
| 35 | 37 |
| 36 virtual void TearDown() { | 38 virtual void TearDown() { |
| 37 logging::SetLogMessageHandler(NULL); | 39 logging::SetLogMessageHandler(NULL); |
| 38 daemon_test_ = NULL; | 40 daemon_test_ = NULL; |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 EXPECT_EQ(7 * kSecondsPerDay + 45, daemon_.user_active_last_); | 418 EXPECT_EQ(7 * kSecondsPerDay + 45, daemon_.user_active_last_); |
| 417 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 7, /* seconds */ 30); | 419 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 7, /* seconds */ 30); |
| 418 | 420 |
| 419 daemon_.PowerStateChanged("otherstate", 7 * kSecondsPerDay + 185); | 421 daemon_.PowerStateChanged("otherstate", 7 * kSecondsPerDay + 185); |
| 420 EXPECT_EQ(MetricsDaemon::kUnknownPowerState, daemon_.power_state_); | 422 EXPECT_EQ(MetricsDaemon::kUnknownPowerState, daemon_.power_state_); |
| 421 EXPECT_FALSE(daemon_.user_active_); | 423 EXPECT_FALSE(daemon_.user_active_); |
| 422 EXPECT_EQ(7 * kSecondsPerDay + 185, daemon_.user_active_last_); | 424 EXPECT_EQ(7 * kSecondsPerDay + 185, daemon_.user_active_last_); |
| 423 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 7, /* seconds */ 30); | 425 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 7, /* seconds */ 30); |
| 424 } | 426 } |
| 425 | 427 |
| 426 TEST_F(MetricsDaemonTest, PublishMetric) { | |
| 427 ExpectMetric("Dummy.Metric", 3, 1, 100, 50); | |
| 428 daemon_.PublishMetric("Dummy.Metric", /* sample */ 3, | |
| 429 /* min */ 1, /* max */ 100, /* buckets */ 50); | |
| 430 } | |
| 431 | |
| 432 TEST_F(MetricsDaemonTest, ScreenSaverStateChanged) { | 428 TEST_F(MetricsDaemonTest, ScreenSaverStateChanged) { |
| 433 EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState, | 429 EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState, |
| 434 daemon_.screensaver_state_); | 430 daemon_.screensaver_state_); |
| 435 EXPECT_FALSE(daemon_.user_active_); | 431 EXPECT_FALSE(daemon_.user_active_); |
| 436 EXPECT_EQ(0, daemon_.user_active_last_); | 432 EXPECT_EQ(0, daemon_.user_active_last_); |
| 437 EXPECT_EQ(0, daemon_.daily_use_day_last_); | 433 EXPECT_EQ(0, daemon_.daily_use_day_last_); |
| 438 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); | 434 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); |
| 439 | 435 |
| 440 daemon_.ScreenSaverStateChanged("locked", 5 * kSecondsPerDay + 10); | 436 daemon_.ScreenSaverStateChanged("locked", 5 * kSecondsPerDay + 10); |
| 441 EXPECT_EQ(MetricsDaemon::kScreenSaverStateLocked, | 437 EXPECT_EQ(MetricsDaemon::kScreenSaverStateLocked, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 453 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); | 449 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); |
| 454 | 450 |
| 455 daemon_.ScreenSaverStateChanged("otherstate", 5 * kSecondsPerDay + 300); | 451 daemon_.ScreenSaverStateChanged("otherstate", 5 * kSecondsPerDay + 300); |
| 456 EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState, | 452 EXPECT_EQ(MetricsDaemon::kUnknownScreenSaverState, |
| 457 daemon_.screensaver_state_); | 453 daemon_.screensaver_state_); |
| 458 EXPECT_FALSE(daemon_.user_active_); | 454 EXPECT_FALSE(daemon_.user_active_); |
| 459 EXPECT_EQ(5 * kSecondsPerDay + 300, daemon_.user_active_last_); | 455 EXPECT_EQ(5 * kSecondsPerDay + 300, daemon_.user_active_last_); |
| 460 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 5, /* seconds */ 200); | 456 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 5, /* seconds */ 200); |
| 461 } | 457 } |
| 462 | 458 |
| 459 TEST_F(MetricsDaemonTest, SendMetric) { |
| 460 ExpectMetric("Dummy.Metric", 3, 1, 100, 50); |
| 461 daemon_.SendMetric("Dummy.Metric", /* sample */ 3, |
| 462 /* min */ 1, /* max */ 100, /* buckets */ 50); |
| 463 } |
| 464 |
| 463 TEST_F(MetricsDaemonTest, SessionStateChanged) { | 465 TEST_F(MetricsDaemonTest, SessionStateChanged) { |
| 464 EXPECT_EQ(MetricsDaemon::kUnknownSessionState, daemon_.session_state_); | 466 EXPECT_EQ(MetricsDaemon::kUnknownSessionState, daemon_.session_state_); |
| 465 EXPECT_FALSE(daemon_.user_active_); | 467 EXPECT_FALSE(daemon_.user_active_); |
| 466 EXPECT_EQ(0, daemon_.user_active_last_); | 468 EXPECT_EQ(0, daemon_.user_active_last_); |
| 467 EXPECT_EQ(0, daemon_.daily_use_day_last_); | 469 EXPECT_EQ(0, daemon_.daily_use_day_last_); |
| 468 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); | 470 EXPECT_TRUE(AssertNoOrEmptyUseRecordFile()); |
| 469 | 471 |
| 470 daemon_.SessionStateChanged("started", 15 * kSecondsPerDay + 20); | 472 daemon_.SessionStateChanged("started", 15 * kSecondsPerDay + 20); |
| 471 EXPECT_EQ(MetricsDaemon::kSessionStateStarted, daemon_.session_state_); | 473 EXPECT_EQ(MetricsDaemon::kSessionStateStarted, daemon_.session_state_); |
| 472 EXPECT_TRUE(daemon_.user_active_); | 474 EXPECT_TRUE(daemon_.user_active_); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 EXPECT_TRUE(daemon_.user_active_); | 556 EXPECT_TRUE(daemon_.user_active_); |
| 555 EXPECT_EQ(9 * kSecondsPerDay + 400, daemon_.user_active_last_); | 557 EXPECT_EQ(9 * kSecondsPerDay + 400, daemon_.user_active_last_); |
| 556 EXPECT_EQ(9, daemon_.daily_use_day_last_); | 558 EXPECT_EQ(9, daemon_.daily_use_day_last_); |
| 557 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 9, /* seconds */ 800); | 559 EXPECT_PRED_FORMAT2(AssertDailyUseRecord, /* day */ 9, /* seconds */ 800); |
| 558 } | 560 } |
| 559 | 561 |
| 560 int main(int argc, char **argv) { | 562 int main(int argc, char **argv) { |
| 561 testing::InitGoogleTest(&argc, argv); | 563 testing::InitGoogleTest(&argc, argv); |
| 562 return RUN_ALL_TESTS(); | 564 return RUN_ALL_TESTS(); |
| 563 } | 565 } |
| OLD | NEW |