1 // Copyright 2014 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 5 #include "net/quic/quic_connection_logger.h" 6 7 #include "net/quic/quic_protocol.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 namespace net { 11 namespace test { 12 13 class QuicConnectionLoggerPeer { 14 public: num_truncated_acks_sent(const QuicConnectionLogger & logger)15 static size_t num_truncated_acks_sent(const QuicConnectionLogger& logger) { 16 return logger.num_truncated_acks_sent_; 17 } 18 }; 19 20 class QuicConnectionLoggerTest : public ::testing::Test { 21 protected: QuicConnectionLoggerTest()22 QuicConnectionLoggerTest() : logger_(net_log_) {} 23 24 BoundNetLog net_log_; 25 QuicConnectionLogger logger_; 26 }; 27 TEST_F(QuicConnectionLoggerTest,TruncatedAcksSentNotChanged)28TEST_F(QuicConnectionLoggerTest, TruncatedAcksSentNotChanged) { 29 QuicAckFrame frame; 30 logger_.OnFrameAddedToPacket(QuicFrame(&frame)); 31 EXPECT_EQ(0u, QuicConnectionLoggerPeer::num_truncated_acks_sent(logger_)); 32 33 for (QuicPacketSequenceNumber i = 0; i < 256; ++i) { 34 frame.missing_packets.insert(i); 35 } 36 logger_.OnFrameAddedToPacket(QuicFrame(&frame)); 37 EXPECT_EQ(0u, QuicConnectionLoggerPeer::num_truncated_acks_sent(logger_)); 38 } 39 TEST_F(QuicConnectionLoggerTest,TruncatedAcksSent)40TEST_F(QuicConnectionLoggerTest, TruncatedAcksSent) { 41 QuicAckFrame frame; 42 for (QuicPacketSequenceNumber i = 0; i < 512; i += 2) { 43 frame.missing_packets.insert(i); 44 } 45 logger_.OnFrameAddedToPacket(QuicFrame(&frame)); 46 EXPECT_EQ(1u, QuicConnectionLoggerPeer::num_truncated_acks_sent(logger_)); 47 } 48 49 } // namespace test 50 } // namespace net 51