| // 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 |