blob: b02db9858a529c325c20ee5f5616e29f9ab93871 [file] [log] [blame]
// 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