diff options
Diffstat (limited to 'components/drive/event_logger_unittest.cc')
-rw-r--r-- | components/drive/event_logger_unittest.cc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/components/drive/event_logger_unittest.cc b/components/drive/event_logger_unittest.cc new file mode 100644 index 0000000..9d3b1fd --- /dev/null +++ b/components/drive/event_logger_unittest.cc @@ -0,0 +1,43 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// 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::LOG_INFO, "first"); + logger.Log(logging::LOG_INFO, "%dnd", 2); + logger.Log(logging::LOG_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::LOG_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 |