| // Copyright 2024 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/exo/test/test_data_source_delegate.h" |
| |
| #include <vector> |
| |
| #include "base/files/file_util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace exo::test { |
| |
| TestDataSourceDelegate::TestDataSourceDelegate() = default; |
| TestDataSourceDelegate::~TestDataSourceDelegate() = default; |
| |
| void TestDataSourceDelegate::OnSend(const std::string& mime_type, |
| base::ScopedFD fd) { |
| if (data_map_.empty()) { |
| constexpr char kTestData[] = "TestData"; |
| base::WriteFileDescriptor(fd.get(), kTestData); |
| } else { |
| auto it = data_map_.find(mime_type); |
| base::WriteFileDescriptor( |
| fd.get(), it != data_map_.end() ? it->second : std::string()); |
| } |
| } |
| |
| void TestDataSourceDelegate::OnCancelled() { |
| cancelled_ = true; |
| } |
| |
| bool TestDataSourceDelegate::CanAcceptDataEventsForSurface( |
| Surface* surface) const { |
| return can_accept_; |
| } |
| |
| SecurityDelegate* TestDataSourceDelegate::GetSecurityDelegate() const { |
| return security_delegate_.get(); |
| } |
| |
| void TestDataSourceDelegate::SetData(const std::string& mime_type, |
| std::string data) { |
| data_map_.insert_or_assign(mime_type, std::move(data)); |
| } |
| |
| } // namespace exo::test |