summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/debug_info_event_listener_unittest.cc
blob: b02db9858a529c325c20ee5f5616e29f9ab93871 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// 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 "sync/internal_api/debug_info_event_listener.h"

#include "testing/gtest/include/gtest/gtest.h"

namespace syncer {

typedef testing::Test DebugInfoEventListenerTest;

TEST_F(DebugInfoEventListenerTest, VerifyEventsAdded) {
  DebugInfoEventListener debug_info_event_listener;
  debug_info_event_listener.CreateAndAddEvent(
      sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
  ASSERT_EQ(debug_info_event_listener.events_.size(), 1U);
  const sync_pb::DebugEventInfo& debug_info =
      debug_info_event_listener.events_.back();
  ASSERT_TRUE(debug_info.has_singleton_event());
  ASSERT_EQ(debug_info.singleton_event(),
            sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
}

TEST_F(DebugInfoEventListenerTest, VerifyQueueSize) {
  DebugInfoEventListener debug_info_event_listener;
  for (unsigned int i = 0; i < 2*kMaxEntries; ++i) {
    debug_info_event_listener.CreateAndAddEvent(
        sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
  }
  sync_pb::DebugInfo debug_info;
  debug_info_event_listener.GetDebugInfo(&debug_info);
  debug_info_event_listener.ClearDebugInfo();
  ASSERT_TRUE(debug_info.events_dropped());
  ASSERT_EQ(static_cast<int>(kMaxEntries), debug_info.events_size());
}

TEST_F(DebugInfoEventListenerTest, VerifyGetEvents) {
  DebugInfoEventListener debug_info_event_listener;
  debug_info_event_listener.CreateAndAddEvent(
      sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
  ASSERT_EQ(debug_info_event_listener.events_.size(), 1U);
  sync_pb::DebugInfo debug_info;
  debug_info_event_listener.GetDebugInfo(&debug_info);
  ASSERT_EQ(debug_info_event_listener.events_.size(), 1U);
  ASSERT_EQ(debug_info.events_size(), 1);
  ASSERT_TRUE(debug_info.events(0).has_singleton_event());
  ASSERT_EQ(debug_info.events(0).singleton_event(),
            sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
}

TEST_F(DebugInfoEventListenerTest, VerifyClearEvents) {
  DebugInfoEventListener debug_info_event_listener;
  debug_info_event_listener.CreateAndAddEvent(
      sync_pb::SyncEnums::ENCRYPTION_COMPLETE);
  ASSERT_EQ(debug_info_event_listener.events_.size(), 1U);
  debug_info_event_listener.ClearDebugInfo();
  ASSERT_EQ(debug_info_event_listener.events_.size(), 0U);
}

}  // namespace syncer