12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // Copyright 2018 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 COMPONENTS_MIRRORING_SERVICE_FAKE_NETWORK_SERVICE_H_
- #define COMPONENTS_MIRRORING_SERVICE_FAKE_NETWORK_SERVICE_H_
- #include "base/callback.h"
- #include "media/cast/net/cast_transport_defines.h"
- #include "mojo/public/cpp/bindings/pending_receiver.h"
- #include "mojo/public/cpp/bindings/pending_remote.h"
- #include "mojo/public/cpp/bindings/receiver.h"
- #include "mojo/public/cpp/bindings/remote.h"
- #include "services/network/public/mojom/udp_socket.mojom.h"
- #include "services/network/test/test_network_context.h"
- #include "services/network/test/test_udp_socket.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace mirroring {
- class MockUdpSocket final : public network::TestUDPSocket {
- public:
- MockUdpSocket(
- mojo::PendingReceiver<network::mojom::UDPSocket> receiver,
- mojo::PendingRemote<network::mojom::UDPSocketListener> listener);
- MockUdpSocket(const MockUdpSocket&) = delete;
- MockUdpSocket& operator=(const MockUdpSocket&) = delete;
- ~MockUdpSocket() override;
- MOCK_METHOD0(OnSend, void());
- // network::mojom::UDPSocket implementation.
- void Connect(const net::IPEndPoint& remote_addr,
- network::mojom::UDPSocketOptionsPtr options,
- ConnectCallback callback) override;
- void ReceiveMore(uint32_t num_additional_datagrams) override;
- void Send(base::span<const uint8_t> data,
- const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
- SendCallback callback) override;
- // Simulate receiving a packet from the network.
- void OnReceivedPacket(const media::cast::Packet& packet);
- void VerifySendingPacket(const media::cast::Packet& packet);
- private:
- mojo::Receiver<network::mojom::UDPSocket> receiver_;
- mojo::Remote<network::mojom::UDPSocketListener> listener_;
- std::unique_ptr<media::cast::Packet> sending_packet_;
- int num_ask_for_receive_ = 0;
- };
- class MockNetworkContext : public network::TestNetworkContext {
- public:
- explicit MockNetworkContext(
- mojo::PendingReceiver<network::mojom::NetworkContext> receiver);
- MockNetworkContext(const MockNetworkContext&) = delete;
- MockNetworkContext& operator=(const MockNetworkContext&) = delete;
- ~MockNetworkContext() override;
- MOCK_METHOD0(OnUDPSocketCreated, void());
- // network::mojom::NetworkContext implementation:
- void CreateUDPSocket(
- mojo::PendingReceiver<network::mojom::UDPSocket> receiver,
- mojo::PendingRemote<network::mojom::UDPSocketListener> listener) override;
- void CreateURLLoaderFactory(
- mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
- network::mojom::URLLoaderFactoryParamsPtr params) override;
- MockUdpSocket* udp_socket() const { return udp_socket_.get(); }
- private:
- mojo::Receiver<network::mojom::NetworkContext> receiver_;
- std::unique_ptr<MockUdpSocket> udp_socket_;
- };
- } // namespace mirroring
- #endif // COMPONENTS_MIRRORING_SERVICE_FAKE_NETWORK_SERVICE_H_
|