Home | History | Annotate | Download | only in quic
      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:
     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:
     22   QuicConnectionLoggerTest() : logger_(net_log_) {}
     23 
     24   BoundNetLog net_log_;
     25   QuicConnectionLogger logger_;
     26 };
     27 
     28 TEST_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 
     40 TEST_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