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 10namespace net { 11namespace test { 12 13class QuicConnectionLoggerPeer { 14 public: 15 static size_t num_truncated_acks_sent(const QuicConnectionLogger& logger) { 16 return logger.num_truncated_acks_sent_; 17 } 18}; 19 20class QuicConnectionLoggerTest : public ::testing::Test { 21 protected: 22 QuicConnectionLoggerTest() : logger_(net_log_) {} 23 24 BoundNetLog net_log_; 25 QuicConnectionLogger logger_; 26}; 27 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 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