• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
TEST(EventLoggerTest,BasicLogging)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, "%dnd", 2);
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