| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ash/quick_pair/common/log_buffer.h" |
| |
| #include <stddef.h> |
| |
| #include "base/memory/raw_ptr.h" |
| #include "base/time/time.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace ash { |
| namespace quick_pair { |
| |
| class QuickPairLogBufferTest : public testing::Test, |
| public LogBuffer::Observer { |
| public: |
| void SetUp() override { |
| log_buffer_ = LogBuffer::GetInstance(); |
| log_buffer_->AddObserver(this); |
| } |
| |
| void TearDown() override { log_buffer_->RemoveObserver(this); } |
| |
| void OnLogMessageAdded(const LogBuffer::LogMessage& log_message) override { |
| log_messages_.push_back(log_message); |
| } |
| |
| void OnLogBufferCleared() override { log_messages_.clear(); } |
| |
| protected: |
| std::vector<LogBuffer::LogMessage> log_messages_; |
| raw_ptr<LogBuffer> log_buffer_ = nullptr; |
| }; |
| |
| TEST_F(QuickPairLogBufferTest, ObserversNotifiedWhenLogsAdded) { |
| LogBuffer::GetInstance()->AddLogMessage(LogBuffer::LogMessage( |
| /*text=*/"text", /*time=*/base::Time::Now(), /*file=*/"file", /*line=*/0, |
| /*severity=*/logging::LOGGING_WARNING)); |
| EXPECT_EQ(log_messages_.size(), 1u); |
| } |
| |
| TEST_F(QuickPairLogBufferTest, ObserversNotifiedWhenLogBufferCleared) { |
| LogBuffer::GetInstance()->Clear(); |
| EXPECT_EQ(log_messages_.size(), 0u); |
| } |
| |
| } // namespace quick_pair |
| } // namespace ash |