1 // Copyright 2015 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/quic/mock_quic_data.h"
6 #include "net/base/hex_utils.h"
7 
8 namespace net::test {
9 
MockQuicData(quic::ParsedQuicVersion version)10 MockQuicData::MockQuicData(quic::ParsedQuicVersion version)
11     : printer_(version) {}
12 
13 MockQuicData::~MockQuicData() = default;
14 
AddConnect(IoMode mode,int rv)15 void MockQuicData::AddConnect(IoMode mode, int rv) {
16   connect_ = std::make_unique<MockConnect>(mode, rv);
17 }
18 
AddRead(IoMode mode,std::unique_ptr<quic::QuicEncryptedPacket> packet)19 void MockQuicData::AddRead(IoMode mode,
20                            std::unique_ptr<quic::QuicEncryptedPacket> packet) {
21   reads_.emplace_back(mode, packet->data(), packet->length(),
22                       sequence_number_++);
23   packets_.push_back(std::move(packet));
24 }
AddRead(IoMode mode,int rv)25 void MockQuicData::AddRead(IoMode mode, int rv) {
26   reads_.emplace_back(mode, rv, sequence_number_++);
27 }
28 
AddWrite(IoMode mode,std::unique_ptr<quic::QuicEncryptedPacket> packet)29 void MockQuicData::AddWrite(IoMode mode,
30                             std::unique_ptr<quic::QuicEncryptedPacket> packet) {
31   writes_.emplace_back(mode, packet->data(), packet->length(),
32                        sequence_number_++);
33   packets_.push_back(std::move(packet));
34 }
35 
AddWrite(IoMode mode,int rv)36 void MockQuicData::AddWrite(IoMode mode, int rv) {
37   writes_.emplace_back(mode, rv, sequence_number_++);
38 }
39 
AddWrite(IoMode mode,int rv,std::unique_ptr<quic::QuicEncryptedPacket> packet)40 void MockQuicData::AddWrite(IoMode mode,
41                             int rv,
42                             std::unique_ptr<quic::QuicEncryptedPacket> packet) {
43   writes_.emplace_back(mode, rv, sequence_number_++);
44   packets_.push_back(std::move(packet));
45 }
46 
AddSocketDataToFactory(MockClientSocketFactory * factory)47 void MockQuicData::AddSocketDataToFactory(MockClientSocketFactory* factory) {
48   factory->AddSocketDataProvider(InitializeAndGetSequencedSocketData());
49 }
50 
AllReadDataConsumed()51 bool MockQuicData::AllReadDataConsumed() {
52   return socket_data_->AllReadDataConsumed();
53 }
54 
AllWriteDataConsumed()55 bool MockQuicData::AllWriteDataConsumed() {
56   return socket_data_->AllWriteDataConsumed();
57 }
58 
Resume()59 void MockQuicData::Resume() {
60   socket_data_->Resume();
61 }
62 
InitializeAndGetSequencedSocketData()63 SequencedSocketData* MockQuicData::InitializeAndGetSequencedSocketData() {
64   socket_data_ = std::make_unique<SequencedSocketData>(reads_, writes_);
65   socket_data_->set_printer(&printer_);
66   if (connect_ != nullptr)
67     socket_data_->set_connect_data(*connect_);
68 
69   return socket_data_.get();
70 }
71 
GetSequencedSocketData()72 SequencedSocketData* MockQuicData::GetSequencedSocketData() {
73   return socket_data_.get();
74 }
75 
76 }  // namespace net::test
77