1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/drive/event_logger.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace drive { 10 11 TEST(EventLoggerTest, BasicLogging) { 12 EventLogger logger; 13 logger.SetHistorySize(3); // At most 3 events are kept. 14 EXPECT_EQ(0U, logger.GetHistory().size()); 15 16 logger.Log(logging::LOG_INFO, "first"); 17 logger.Log(logging::LOG_INFO, "2nd"); 18 logger.Log(logging::LOG_INFO, "third"); 19 20 // Events are recorded in the chronological order with sequential IDs. 21 std::vector<EventLogger::Event> history = logger.GetHistory(); 22 ASSERT_EQ(3U, history.size()); 23 EXPECT_EQ(0, history[0].id); 24 EXPECT_EQ("first", history[0].what); 25 EXPECT_EQ(1, history[1].id); 26 EXPECT_EQ("2nd", history[1].what); 27 EXPECT_EQ(2, history[2].id); 28 EXPECT_EQ("third", history[2].what); 29 30 logger.Log(logging::LOG_INFO, "fourth"); 31 // It does not log events beyond the specified. 32 history = logger.GetHistory(); 33 ASSERT_EQ(3U, history.size()); 34 // The oldest events is pushed out. 35 EXPECT_EQ(1, history[0].id); 36 EXPECT_EQ("2nd", history[0].what); 37 EXPECT_EQ(2, history[1].id); 38 EXPECT_EQ("third", history[1].what); 39 EXPECT_EQ(3, history[2].id); 40 EXPECT_EQ("fourth", history[2].what); 41 } 42 43 } // namespace drive 44