• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)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 
TEST_F(QuicConnectionLoggerTest,TruncatedAcksSent)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