1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/ash/components/fwupd/fake_fwupd_download_client.h"
#include <memory>
#include <utility>
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/test/test_url_loader_factory.h"
namespace {
class FakeSharedURLLoaderFactory : public network::SharedURLLoaderFactory {
public:
FakeSharedURLLoaderFactory() = default;
FakeSharedURLLoaderFactory(const FakeSharedURLLoaderFactory&) = delete;
FakeSharedURLLoaderFactory& operator=(const FakeSharedURLLoaderFactory&) =
delete;
// network::mojom::URLLoaderFactory implementation:
void Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
override {
test_url_loader_factory_.Clone(std::move(receiver));
}
void CreateLoaderAndStart(
mojo::PendingReceiver<network::mojom::URLLoader> loader,
int32_t request_id,
uint32_t options,
const network::ResourceRequest& request,
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation)
override {
test_url_loader_factory_.CreateLoaderAndStart(
std::move(loader), request_id, options, request, std::move(client),
traffic_annotation);
}
// network::SharedURLLoaderFactory implementation:
std::unique_ptr<network::PendingSharedURLLoaderFactory> Clone() override {
NOTREACHED();
}
network::TestURLLoaderFactory& test_url_loader_factory() {
return test_url_loader_factory_;
}
private:
friend class base::RefCounted<FakeSharedURLLoaderFactory>;
~FakeSharedURLLoaderFactory() override = default;
network::TestURLLoaderFactory test_url_loader_factory_;
};
} // namespace
namespace ash {
FakeFwupdDownloadClient::FakeFwupdDownloadClient()
: url_loader_factory_(base::MakeRefCounted<FakeSharedURLLoaderFactory>()) {}
FakeFwupdDownloadClient::~FakeFwupdDownloadClient() = default;
scoped_refptr<network::SharedURLLoaderFactory>
FakeFwupdDownloadClient::GetURLLoaderFactory() {
return url_loader_factory_;
}
network::TestURLLoaderFactory&
FakeFwupdDownloadClient::test_url_loader_factory() {
return static_cast<FakeSharedURLLoaderFactory*>(url_loader_factory_.get())
->test_url_loader_factory();
}
} // namespace ash
|