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