15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/internal_api/debug_info_event_listener.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef testing::Test DebugInfoEventListenerTest; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(DebugInfoEventListenerTest, VerifyEventsAdded) { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DebugInfoEventListener debug_info_event_listener; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) debug_info_event_listener.CreateAndAddEvent( 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const sync_pb::DebugEventInfo& debug_info = 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) debug_info_event_listener.events_.back(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(debug_info.has_singleton_event()); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(debug_info.singleton_event(), 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(DebugInfoEventListenerTest, VerifyQueueSize) { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DebugInfoEventListener debug_info_event_listener; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (unsigned int i = 0; i < 2*kMaxEntries; ++i) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) debug_info_event_listener.CreateAndAddEvent( 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sync_pb::DebugInfo debug_info; 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) debug_info_event_listener.GetDebugInfo(&debug_info); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) debug_info_event_listener.ClearDebugInfo(); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(debug_info.events_dropped()); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(static_cast<int>(kMaxEntries), debug_info.events_size()); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)TEST_F(DebugInfoEventListenerTest, VerifyGetEvents) { 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DebugInfoEventListener debug_info_event_listener; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) debug_info_event_listener.CreateAndAddEvent( 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sync_pb::DebugInfo debug_info; 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) debug_info_event_listener.GetDebugInfo(&debug_info); 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(debug_info.events_size(), 1); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(debug_info.events(0).has_singleton_event()); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(debug_info.events(0).singleton_event(), 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)TEST_F(DebugInfoEventListenerTest, VerifyClearEvents) { 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DebugInfoEventListener debug_info_event_listener; 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) debug_info_event_listener.CreateAndAddEvent( 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::SyncEnums::ENCRYPTION_COMPLETE); 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ASSERT_EQ(debug_info_event_listener.events_.size(), 1U); 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) debug_info_event_listener.ClearDebugInfo(); 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ASSERT_EQ(debug_info_event_listener.events_.size(), 0U); 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncer 62