xref: /aosp_15_r20/external/cronet/net/cert/mock_cert_net_fetcher.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/cert/mock_cert_net_fetcher.h"
6 
7 #include "net/cert/x509_util.h"
8 
9 namespace net {
10 
11 MockCertNetFetcher::MockCertNetFetcher() = default;
12 MockCertNetFetcher::~MockCertNetFetcher() = default;
13 
MockCertNetFetcherRequest(Error error,std::vector<uint8_t> bytes)14 MockCertNetFetcherRequest::MockCertNetFetcherRequest(Error error,
15                                                      std::vector<uint8_t> bytes)
16     : error_(error), bytes_(std::move(bytes)) {}
17 MockCertNetFetcherRequest::~MockCertNetFetcherRequest() = default;
18 
19 // static
Create(Error error)20 std::unique_ptr<CertNetFetcher::Request> MockCertNetFetcherRequest::Create(
21     Error error) {
22   return std::make_unique<MockCertNetFetcherRequest>(error,
23                                                      std::vector<uint8_t>());
24 }
25 
26 // static
Create(std::vector<uint8_t> bytes)27 std::unique_ptr<CertNetFetcher::Request> MockCertNetFetcherRequest::Create(
28     std::vector<uint8_t> bytes) {
29   return std::make_unique<MockCertNetFetcherRequest>(OK, std::move(bytes));
30 }
31 
32 // static
Create(const CRYPTO_BUFFER * buffer)33 std::unique_ptr<CertNetFetcher::Request> MockCertNetFetcherRequest::Create(
34     const CRYPTO_BUFFER* buffer) {
35   auto bytes = x509_util::CryptoBufferAsSpan(buffer);
36   return Create(std::vector<uint8_t>(bytes.begin(), bytes.end()));
37 }
38 
WaitForResult(Error * error,std::vector<uint8_t> * bytes)39 void MockCertNetFetcherRequest::WaitForResult(Error* error,
40                                               std::vector<uint8_t>* bytes) {
41   DCHECK(!did_consume_result_);
42   *error = error_;
43   *bytes = std::move(bytes_);
44   did_consume_result_ = true;
45 }
46 
47 }  // namespace net
48