rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 1 | // Copyright 2015 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 | |
Ryan Hamilton | a3ee93a7 | 2018-08-01 22:03:08 | [diff] [blame] | 5 | #include "net/quic/mock_quic_data.h" |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 6 | |
| 7 | namespace net { |
| 8 | namespace test { |
| 9 | |
Ryan Hamilton | abad59e | 2019-06-06 04:02:59 | [diff] [blame] | 10 | MockQuicData::MockQuicData(quic::ParsedQuicVersion version) |
| 11 | : sequence_number_(0), printer_(version) {} |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 12 | |
| 13 | MockQuicData::~MockQuicData() {} |
| 14 | |
rch | a0056973 | 2016-08-27 11:09:36 | [diff] [blame] | 15 | void MockQuicData::AddConnect(IoMode mode, int rv) { |
| 16 | connect_.reset(new MockConnect(mode, rv)); |
| 17 | } |
| 18 | |
Zhongyi Shi | 32f2fd0 | 2018-04-16 18:23:43 | [diff] [blame] | 19 | void MockQuicData::AddRead(IoMode mode, |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 20 | std::unique_ptr<quic::QuicEncryptedPacket> packet) { |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 21 | reads_.push_back( |
Zhongyi Shi | 32f2fd0 | 2018-04-16 18:23:43 | [diff] [blame] | 22 | MockRead(mode, packet->data(), packet->length(), sequence_number_++)); |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 23 | packets_.push_back(std::move(packet)); |
| 24 | } |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 25 | void MockQuicData::AddRead(IoMode mode, int rv) { |
| 26 | reads_.push_back(MockRead(mode, rv, sequence_number_++)); |
| 27 | } |
| 28 | |
Zhongyi Shi | 32f2fd0 | 2018-04-16 18:23:43 | [diff] [blame] | 29 | void MockQuicData::AddWrite(IoMode mode, |
Ryan Hamilton | 8d9ee76e | 2018-05-29 23:52:52 | [diff] [blame] | 30 | std::unique_ptr<quic::QuicEncryptedPacket> packet) { |
rch | bd089ab | 2017-05-26 23:05:04 | [diff] [blame] | 31 | writes_.push_back( |
Zhongyi Shi | 32f2fd0 | 2018-04-16 18:23:43 | [diff] [blame] | 32 | MockWrite(mode, packet->data(), packet->length(), sequence_number_++)); |
rch | bd089ab | 2017-05-26 23:05:04 | [diff] [blame] | 33 | packets_.push_back(std::move(packet)); |
| 34 | } |
| 35 | |
rch | a0056973 | 2016-08-27 11:09:36 | [diff] [blame] | 36 | void MockQuicData::AddWrite(IoMode mode, int rv) { |
| 37 | writes_.push_back(MockWrite(mode, rv, sequence_number_++)); |
| 38 | } |
| 39 | |
Ryan Hamilton | 9f2eac3 | 2019-06-27 03:15:54 | [diff] [blame] | 40 | void MockQuicData::AddWrite(IoMode mode, |
| 41 | int rv, |
| 42 | std::unique_ptr<quic::QuicEncryptedPacket> packet) { |
| 43 | writes_.push_back(MockWrite(mode, rv, sequence_number_++)); |
| 44 | packets_.push_back(std::move(packet)); |
| 45 | } |
| 46 | |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 47 | void MockQuicData::AddSocketDataToFactory(MockClientSocketFactory* factory) { |
Yixin Wang | 0d2c6b7e1 | 2017-08-16 21:12:55 | [diff] [blame] | 48 | factory->AddSocketDataProvider(InitializeAndGetSequencedSocketData()); |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 49 | } |
| 50 | |
rch | a0056973 | 2016-08-27 11:09:36 | [diff] [blame] | 51 | bool MockQuicData::AllReadDataConsumed() { |
| 52 | return socket_data_->AllReadDataConsumed(); |
| 53 | } |
| 54 | |
| 55 | bool MockQuicData::AllWriteDataConsumed() { |
| 56 | return socket_data_->AllWriteDataConsumed(); |
| 57 | } |
| 58 | |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 59 | void MockQuicData::Resume() { |
| 60 | socket_data_->Resume(); |
| 61 | } |
| 62 | |
Yixin Wang | 0d2c6b7e1 | 2017-08-16 21:12:55 | [diff] [blame] | 63 | SequencedSocketData* MockQuicData::InitializeAndGetSequencedSocketData() { |
Ryan Sleevi | b8d7ea0 | 2018-05-07 20:01:01 | [diff] [blame] | 64 | socket_data_.reset(new SequencedSocketData(reads_, writes_)); |
Ryan Hamilton | abad59e | 2019-06-06 04:02:59 | [diff] [blame] | 65 | socket_data_->set_printer(&printer_); |
Yixin Wang | 0d2c6b7e1 | 2017-08-16 21:12:55 | [diff] [blame] | 66 | if (connect_ != nullptr) |
| 67 | socket_data_->set_connect_data(*connect_); |
| 68 | |
| 69 | return socket_data_.get(); |
| 70 | } |
| 71 | |
| 72 | SequencedSocketData* MockQuicData::GetSequencedSocketData() { |
| 73 | return socket_data_.get(); |
| 74 | } |
| 75 | |
rch | ec76541 | 2016-08-25 20:14:41 | [diff] [blame] | 76 | } // namespace test |
| 77 | } // namespace net |