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 "sync/internal_api/debug_info_event_listener.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace syncer { 10 11 typedef testing::Test DebugInfoEventListenerTest; 12 13 TEST_F(DebugInfoEventListenerTest, VerifyEventsAdded) { 14 DebugInfoEventListener debug_info_event_listener; 15 debug_info_event_listener.CreateAndAddEvent( 16 sync_pb::DebugEventInfo::ENCRYPTION_COMPLETE); 17 ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 18 const sync_pb::DebugEventInfo& debug_info = 19 debug_info_event_listener.events_.back(); 20 ASSERT_TRUE(debug_info.has_singleton_event()); 21 ASSERT_EQ(debug_info.singleton_event(), 22 sync_pb::DebugEventInfo::ENCRYPTION_COMPLETE); 23 } 24 25 TEST_F(DebugInfoEventListenerTest, VerifyQueueSize) { 26 DebugInfoEventListener debug_info_event_listener; 27 for (unsigned int i = 0; i < 2*kMaxEntries; ++i) { 28 debug_info_event_listener.CreateAndAddEvent( 29 sync_pb::DebugEventInfo::ENCRYPTION_COMPLETE); 30 } 31 sync_pb::DebugInfo debug_info; 32 debug_info_event_listener.GetAndClearDebugInfo(&debug_info); 33 ASSERT_TRUE(debug_info.events_dropped()); 34 ASSERT_EQ(static_cast<int>(kMaxEntries), debug_info.events_size()); 35 } 36 37 TEST_F(DebugInfoEventListenerTest, VerifyGetAndClearEvents) { 38 DebugInfoEventListener debug_info_event_listener; 39 debug_info_event_listener.CreateAndAddEvent( 40 sync_pb::DebugEventInfo::ENCRYPTION_COMPLETE); 41 ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 42 sync_pb::DebugInfo debug_info; 43 debug_info_event_listener.GetAndClearDebugInfo(&debug_info); 44 ASSERT_EQ(debug_info_event_listener.events_.size(), 0U); 45 ASSERT_EQ(debug_info.events_size(), 1); 46 ASSERT_TRUE(debug_info.events(0).has_singleton_event()); 47 ASSERT_EQ(debug_info.events(0).singleton_event(), 48 sync_pb::DebugEventInfo::ENCRYPTION_COMPLETE); 49 } 50 51 } // namespace syncer 52