fake_network_service.cc 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/mirroring/service/fake_network_service.h"
  5. #include "media/cast/test/utility/net_utility.h"
  6. #include "mojo/public/cpp/bindings/self_owned_receiver.h"
  7. #include "services/network/test/test_url_loader_factory.h"
  8. namespace mirroring {
  9. MockUdpSocket::MockUdpSocket(
  10. mojo::PendingReceiver<network::mojom::UDPSocket> receiver,
  11. mojo::PendingRemote<network::mojom::UDPSocketListener> listener)
  12. : receiver_(this, std::move(receiver)), listener_(std::move(listener)) {}
  13. MockUdpSocket::~MockUdpSocket() {}
  14. void MockUdpSocket::Connect(const net::IPEndPoint& remote_addr,
  15. network::mojom::UDPSocketOptionsPtr options,
  16. ConnectCallback callback) {
  17. std::move(callback).Run(net::OK, media::cast::test::GetFreeLocalPort());
  18. }
  19. void MockUdpSocket::ReceiveMore(uint32_t num_additional_datagrams) {
  20. num_ask_for_receive_ += num_additional_datagrams;
  21. }
  22. void MockUdpSocket::Send(
  23. base::span<const uint8_t> data,
  24. const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
  25. SendCallback callback) {
  26. sending_packet_ =
  27. std::make_unique<media::cast::Packet>(data.begin(), data.end());
  28. std::move(callback).Run(net::OK);
  29. OnSend();
  30. }
  31. void MockUdpSocket::OnReceivedPacket(const media::cast::Packet& packet) {
  32. if (num_ask_for_receive_) {
  33. listener_->OnReceived(
  34. net::OK, absl::nullopt,
  35. base::span<const uint8_t>(
  36. reinterpret_cast<const uint8_t*>(packet.data()), packet.size()));
  37. ASSERT_LT(0, num_ask_for_receive_);
  38. --num_ask_for_receive_;
  39. }
  40. }
  41. void MockUdpSocket::VerifySendingPacket(const media::cast::Packet& packet) {
  42. EXPECT_TRUE(
  43. std::equal(packet.begin(), packet.end(), sending_packet_->begin()));
  44. }
  45. MockNetworkContext::MockNetworkContext(
  46. mojo::PendingReceiver<network::mojom::NetworkContext> receiver)
  47. : receiver_(this, std::move(receiver)) {}
  48. MockNetworkContext::~MockNetworkContext() {}
  49. void MockNetworkContext::CreateUDPSocket(
  50. mojo::PendingReceiver<network::mojom::UDPSocket> receiver,
  51. mojo::PendingRemote<network::mojom::UDPSocketListener> listener) {
  52. udp_socket_ =
  53. std::make_unique<MockUdpSocket>(std::move(receiver), std::move(listener));
  54. OnUDPSocketCreated();
  55. }
  56. void MockNetworkContext::CreateURLLoaderFactory(
  57. mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
  58. network::mojom::URLLoaderFactoryParamsPtr params) {
  59. ASSERT_TRUE(params);
  60. mojo::MakeSelfOwnedReceiver(std::make_unique<network::TestURLLoaderFactory>(),
  61. std::move(receiver));
  62. }
  63. } // namespace mirroring