blob: ea58ce0bbeecd2c9802771588abd1c4226579608 [file] [log] [blame]
// Copyright 2020 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.
#ifndef BASE_FUCHSIA_TEST_LOG_LISTENER_SAFE_H_
#define BASE_FUCHSIA_TEST_LOG_LISTENER_SAFE_H_
#include <fuchsia/logger/cpp/fidl_test_base.h>
#include "base/callback.h"
#include "base/fuchsia/process_context.h"
#include "base/strings/string_piece.h"
namespace base {
// A LogListenerSafe implementation for use in Fuchsia logging tests.
// For use with fuchsia.logger.Log.DumpLogsSafe().
// Stores messages received via LogMany() for inspection by tests.
class TestLogListenerSafe
: public ::fuchsia::logger::testing::LogListenerSafe_TestBase {
public:
TestLogListenerSafe();
TestLogListenerSafe(const TestLogListenerSafe&) = delete;
TestLogListenerSafe& operator=(const TestLogListenerSafe&) = delete;
~TestLogListenerSafe() override;
void set_on_dump_logs_done(base::OnceClosure on_dump_logs_done);
bool DidReceiveString(base::StringPiece message,
::fuchsia::logger::LogMessage* logged_message);
// LogListenerSafe implementation.
void LogMany(std::vector<::fuchsia::logger::LogMessage> messages,
LogManyCallback callback) override;
void Done() override;
void NotImplemented_(const std::string& name) override;
private:
std::vector<::fuchsia::logger::LogMessage> log_messages_;
base::OnceClosure on_dump_logs_done_;
};
} // namespace base
#endif // BASE_FUCHSIA_TEST_LOG_LISTENER_SAFE_H_