diff options
author | Andras Becsi <andras.becsi@digia.com> | 2013-12-11 21:33:03 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2013-12-13 12:34:07 +0100 |
commit | f2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch) | |
tree | 0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/net/quic/quic_sent_packet_manager_test.cc | |
parent | 5362912cdb5eea702b68ebe23702468d17c3017a (diff) | |
download | qtwebengine-chromium-f2a33ff9cbc6d19943f1c7fbddd1f23d23975577.tar.gz |
Update Chromium to branch 1650 (31.0.1650.63)
Change-Id: I57d8c832eaec1eb2364e0a8e7352a6dd354db99f
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'chromium/net/quic/quic_sent_packet_manager_test.cc')
-rw-r--r-- | chromium/net/quic/quic_sent_packet_manager_test.cc | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/chromium/net/quic/quic_sent_packet_manager_test.cc b/chromium/net/quic/quic_sent_packet_manager_test.cc new file mode 100644 index 00000000000..8f5cb3d19d4 --- /dev/null +++ b/chromium/net/quic/quic_sent_packet_manager_test.cc @@ -0,0 +1,80 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "net/quic/quic_sent_packet_manager.h" + +#include "net/quic/test_tools/quic_test_utils.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using testing::_; +using testing::Return; +using testing::StrictMock; + +namespace net { +namespace test { +namespace { + +class MockHelper : public QuicSentPacketManager::HelperInterface { + public: + MOCK_METHOD0(GetPeerLargestObservedPacket, QuicPacketSequenceNumber()); + MOCK_METHOD0(GetNextPacketSequenceNumber, QuicPacketSequenceNumber()); + MOCK_METHOD2(OnPacketNacked, void(QuicPacketSequenceNumber sequence_number, + size_t nack_count)); +}; + +class QuicSentPacketManagerTest : public ::testing::Test { + protected: + QuicSentPacketManagerTest() + : manager_(true, &helper_) { + } + + testing::StrictMock<MockHelper> helper_; + QuicSentPacketManager manager_; +}; + +TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacket) { + EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(1u)); + EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); +} + +TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnacked) { + scoped_ptr<QuicPacket> packet(QuicPacket::NewDataPacket( + NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER)); + SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER, + packet.get(), 7u, + new RetransmittableFrames()); + + manager_.OnSerializedPacket(serialized_packet); + EXPECT_EQ(1u, manager_.GetLeastUnackedSentPacket()); +} + +TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketUnackedFec) { + scoped_ptr<QuicPacket> packet(QuicPacket::NewFecPacket( + NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER)); + SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER, + packet.get(), 7u, NULL); + + manager_.OnSerializedPacket(serialized_packet); + // FEC packets do not count as "unacked". + EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(2u)); + EXPECT_EQ(2u, manager_.GetLeastUnackedSentPacket()); +} + +TEST_F(QuicSentPacketManagerTest, GetLeastUnackedSentPacketDiscardUnacked) { + scoped_ptr<QuicPacket> packet(QuicPacket::NewDataPacket( + NULL, 0, false, PACKET_8BYTE_GUID, false, PACKET_6BYTE_SEQUENCE_NUMBER)); + SerializedPacket serialized_packet(1u, PACKET_6BYTE_SEQUENCE_NUMBER, + packet.get(), 7u, + new RetransmittableFrames()); + + manager_.OnSerializedPacket(serialized_packet); + manager_.DiscardPacket(1u); + EXPECT_CALL(helper_, GetNextPacketSequenceNumber()).WillOnce(Return(2u)); + EXPECT_EQ(2u, manager_.GetLeastUnackedSentPacket()); +} + +} // namespace +} // namespace test +} // namespace net |