| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/drive/event_logger.h" |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace drive { |
| |
| TEST(EventLoggerTest, BasicLogging) { |
| EventLogger logger; |
| logger.SetHistorySize(3); // At most 3 events are kept. |
| EXPECT_EQ(0U, logger.GetHistory().size()); |
| |
| logger.Log(logging::LOGGING_INFO, "first"); |
| logger.Log(logging::LOGGING_INFO, "%dnd", 2); |
| logger.Log(logging::LOGGING_INFO, "third"); |
| |
| // Events are recorded in the chronological order with sequential IDs. |
| std::vector<EventLogger::Event> history = logger.GetHistory(); |
| ASSERT_EQ(3U, history.size()); |
| EXPECT_EQ(0, history[0].id); |
| EXPECT_EQ("first", history[0].what); |
| EXPECT_EQ(1, history[1].id); |
| EXPECT_EQ("2nd", history[1].what); |
| EXPECT_EQ(2, history[2].id); |
| EXPECT_EQ("third", history[2].what); |
| |
| logger.Log(logging::LOGGING_INFO, "fourth"); |
| // It does not log events beyond the specified. |
| history = logger.GetHistory(); |
| ASSERT_EQ(3U, history.size()); |
| // The oldest events is pushed out. |
| EXPECT_EQ(1, history[0].id); |
| EXPECT_EQ("2nd", history[0].what); |
| EXPECT_EQ(2, history[1].id); |
| EXPECT_EQ("third", history[1].what); |
| EXPECT_EQ(3, history[2].id); |
| EXPECT_EQ("fourth", history[2].what); |
| } |
| |
| } // namespace drive |