blob: 57ec2429a319237f69180a26bf3e7248d1b2d61d [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/ui_devtools/ui_devtools_unittest_utils.h"
#include <algorithm>
#include "base/strings/string_util.h"
#include "third_party/inspector_protocol/crdtp/json.h"
namespace ui_devtools {
MockUIElementDelegate::MockUIElementDelegate() = default;
MockUIElementDelegate::~MockUIElementDelegate() = default;
FakeFrontendChannel::FakeFrontendChannel() = default;
FakeFrontendChannel::~FakeFrontendChannel() = default;
int FakeFrontendChannel::CountProtocolNotificationMessageStartsWith(
const std::string& message) {
int count = 0;
for (const std::string& s : protocol_notification_messages_) {
if (base::StartsWith(s, message, base::CompareCase::SENSITIVE))
count++;
}
return count;
}
int FakeFrontendChannel::CountProtocolNotificationMessage(
const std::string& message) {
return std::ranges::count(protocol_notification_messages_, message);
}
void FakeFrontendChannel::SendProtocolNotification(
std::unique_ptr<protocol::Serializable> message) {
EXPECT_TRUE(allow_notifications_);
std::string json;
crdtp::Status status = crdtp::json::ConvertCBORToJSON(
crdtp::SpanFrom(message->Serialize()), &json);
DCHECK(status.ok()) << status.ToASCIIString();
protocol_notification_messages_.push_back(std::move(json));
}
void FakeUIElement::GetBounds(gfx::Rect* bounds) const {
*bounds = bounds_;
}
void FakeUIElement::SetBounds(const gfx::Rect& bounds) {
bounds_ = bounds;
}
void FakeUIElement::GetVisible(bool* visible) const {
*visible = visible_;
}
void FakeUIElement::SetVisible(bool visible) {
visible_ = visible;
}
std::vector<std::string> FakeUIElement::GetAttributes() const {
return {};
}
std::pair<gfx::NativeWindow, gfx::Rect>
FakeUIElement::GetNodeWindowAndScreenBounds() const {
return {};
}
gfx::Rect FakeUIElement::GetNodeBoundsInScreen() const {
return gfx::Rect();
}
void FakeUIElement::AddSource(std::string path, int line) {
UIElement::AddSource(path, line);
}
} // namespace ui_devtools