fake_fwupd_download_client.cc 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2021 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 "ash/components/fwupd/fake_fwupd_download_client.h"
  5. #include <memory>
  6. #include <utility>
  7. #include "mojo/public/cpp/bindings/pending_receiver.h"
  8. #include "mojo/public/cpp/bindings/pending_remote.h"
  9. #include "net/traffic_annotation/network_traffic_annotation.h"
  10. #include "services/network/public/cpp/shared_url_loader_factory.h"
  11. #include "services/network/test/test_url_loader_factory.h"
  12. namespace {
  13. class FakeSharedURLLoaderFactory : public network::SharedURLLoaderFactory {
  14. public:
  15. FakeSharedURLLoaderFactory() = default;
  16. FakeSharedURLLoaderFactory(const FakeSharedURLLoaderFactory&) = delete;
  17. FakeSharedURLLoaderFactory& operator=(const FakeSharedURLLoaderFactory&) =
  18. delete;
  19. // network::mojom::URLLoaderFactory implementation:
  20. void Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
  21. override {
  22. test_url_loader_factory_.Clone(std::move(receiver));
  23. }
  24. void CreateLoaderAndStart(
  25. mojo::PendingReceiver<network::mojom::URLLoader> loader,
  26. int32_t request_id,
  27. uint32_t options,
  28. const network::ResourceRequest& request,
  29. mojo::PendingRemote<network::mojom::URLLoaderClient> client,
  30. const net::MutableNetworkTrafficAnnotationTag& traffic_annotation)
  31. override {
  32. test_url_loader_factory_.CreateLoaderAndStart(
  33. std::move(loader), request_id, options, request, std::move(client),
  34. traffic_annotation);
  35. }
  36. // network::SharedURLLoaderFactory implementation:
  37. std::unique_ptr<network::PendingSharedURLLoaderFactory> Clone() override {
  38. NOTREACHED();
  39. return nullptr;
  40. }
  41. network::TestURLLoaderFactory& test_url_loader_factory() {
  42. return test_url_loader_factory_;
  43. }
  44. private:
  45. friend class base::RefCounted<FakeSharedURLLoaderFactory>;
  46. ~FakeSharedURLLoaderFactory() override = default;
  47. network::TestURLLoaderFactory test_url_loader_factory_;
  48. };
  49. } // namespace
  50. namespace ash {
  51. FakeFwupdDownloadClient::FakeFwupdDownloadClient()
  52. : url_loader_factory_(base::MakeRefCounted<FakeSharedURLLoaderFactory>()) {}
  53. FakeFwupdDownloadClient::~FakeFwupdDownloadClient() = default;
  54. scoped_refptr<network::SharedURLLoaderFactory>
  55. FakeFwupdDownloadClient::GetURLLoaderFactory() {
  56. return url_loader_factory_;
  57. }
  58. network::TestURLLoaderFactory&
  59. FakeFwupdDownloadClient::test_url_loader_factory() {
  60. return static_cast<FakeSharedURLLoaderFactory*>(url_loader_factory_.get())
  61. ->test_url_loader_factory();
  62. }
  63. } // namespace ash