| Index: net/quic/quic_session_test.cc
|
| ===================================================================
|
| --- net/quic/quic_session_test.cc (revision 165858)
|
| +++ net/quic/quic_session_test.cc (working copy)
|
| @@ -1,158 +0,0 @@
|
| -// Copyright (c) 2012 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_session.h"
|
| -#include "net/quic/quic_connection.h"
|
| -
|
| -#include <set>
|
| -
|
| -#include "base/hash_tables.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 base::hash_map;
|
| -using std::set;
|
| -using testing::_;
|
| -
|
| -namespace net {
|
| -namespace test {
|
| -namespace {
|
| -
|
| -class TestCryptoStream : public QuicCryptoStream {
|
| - public:
|
| - explicit TestCryptoStream(QuicSession* session)
|
| - : QuicCryptoStream(session) {
|
| - }
|
| -
|
| - void OnHandshakeMessage(const CryptoHandshakeMessage& message) {
|
| - set_handshake_complete(true);
|
| - }
|
| -};
|
| -
|
| -class TestStream : public ReliableQuicStream {
|
| - public:
|
| - TestStream(QuicStreamId id, QuicSession* session)
|
| - : ReliableQuicStream(id, session) {
|
| - }
|
| -
|
| - virtual uint32 ProcessData(const char* data, uint32 data_len) {
|
| - return data_len;
|
| - }
|
| -};
|
| -
|
| -class TestSession : public QuicSession {
|
| - public:
|
| - TestSession(QuicConnection* connection, bool is_server)
|
| - : QuicSession(connection, is_server),
|
| - crypto_stream_(this) {
|
| - }
|
| -
|
| - virtual QuicCryptoStream* GetCryptoStream() {
|
| - return &crypto_stream_;
|
| - }
|
| -
|
| - virtual TestStream* CreateOutgoingReliableStream() {
|
| - TestStream* stream = new TestStream(GetNextStreamId(), this);
|
| - ActivateStream(stream);
|
| - return stream;
|
| - }
|
| -
|
| - virtual TestStream* CreateIncomingReliableStream(QuicStreamId id) {
|
| - return new TestStream(id, this);
|
| - }
|
| -
|
| - bool IsClosedStream(QuicStreamId id) {
|
| - return QuicSession::IsClosedStream(id);
|
| - }
|
| -
|
| - ReliableQuicStream* GetIncomingReliableStream(QuicStreamId stream_id) {
|
| - return QuicSession::GetIncomingReliableStream(stream_id);
|
| - }
|
| -
|
| - TestCryptoStream crypto_stream_;
|
| -};
|
| -
|
| -class QuicSessionTest : public ::testing::Test {
|
| - protected:
|
| - QuicSessionTest()
|
| - : guid_(1),
|
| - connection_(new MockConnection(guid_, IPEndPoint())),
|
| - session_(connection_, true) {
|
| - }
|
| -
|
| - void CheckClosedStreams() {
|
| - for (int i = kCryptoStreamId; i < 100; i++) {
|
| - if (closed_streams_.count(i) == 0) {
|
| - EXPECT_FALSE(session_.IsClosedStream(i)) << " stream id: " << i;
|
| - } else {
|
| - EXPECT_TRUE(session_.IsClosedStream(i)) << " stream id: " << i;
|
| - }
|
| - }
|
| - }
|
| -
|
| - void CloseStream(QuicStreamId id) {
|
| - session_.CloseStream(id);
|
| - closed_streams_.insert(id);
|
| - }
|
| -
|
| - QuicGuid guid_;
|
| - MockConnection* connection_;
|
| - TestSession session_;
|
| - QuicConnectionVisitorInterface* visitor_;
|
| - hash_map<QuicStreamId, ReliableQuicStream*>* streams_;
|
| - set<QuicStreamId> closed_streams_;
|
| -};
|
| -
|
| -TEST_F(QuicSessionTest, IsHandshakeComplete) {
|
| - EXPECT_FALSE(session_.IsHandshakeComplete());
|
| - CryptoHandshakeMessage message;
|
| - session_.crypto_stream_.OnHandshakeMessage(message);
|
| - EXPECT_TRUE(session_.IsHandshakeComplete());
|
| -}
|
| -
|
| -TEST_F(QuicSessionTest, IsClosedStreamDefault) {
|
| - // Ensure that no streams are initially closed.
|
| - for (int i = kCryptoStreamId; i < 100; i++) {
|
| - EXPECT_FALSE(session_.IsClosedStream(i));
|
| - }
|
| -}
|
| -
|
| -TEST_F(QuicSessionTest, IsClosedStreamLocallyCreated) {
|
| - scoped_ptr<TestStream> stream2(session_.CreateOutgoingReliableStream());
|
| - scoped_ptr<TestStream> stream4(session_.CreateOutgoingReliableStream());
|
| -
|
| - CheckClosedStreams();
|
| - CloseStream(4);
|
| - CheckClosedStreams();
|
| - CloseStream(2);
|
| - CheckClosedStreams();
|
| -}
|
| -
|
| -TEST_F(QuicSessionTest, IsClosedStreamPeerCreated) {
|
| - scoped_ptr<ReliableQuicStream> stream3(session_.GetIncomingReliableStream(3));
|
| - scoped_ptr<ReliableQuicStream> stream5(session_.GetIncomingReliableStream(5));
|
| -
|
| - CheckClosedStreams();
|
| - CloseStream(3);
|
| - CheckClosedStreams();
|
| - CloseStream(5);
|
| - // Create stream id 9, and implicitly 7
|
| - scoped_ptr<ReliableQuicStream> stream9(session_.GetIncomingReliableStream(9));
|
| - CheckClosedStreams();
|
| - // Close 9, but make sure 7 is still not closed
|
| - CloseStream(9);
|
| - CheckClosedStreams();
|
| -}
|
| -
|
| -TEST_F(QuicSessionTest, StreamIdTooLarge) {
|
| - scoped_ptr<ReliableQuicStream> stream3(session_.GetIncomingReliableStream(3));
|
| - EXPECT_CALL(*connection_, SendConnectionClose(QUIC_INVALID_STREAM_ID));
|
| - scoped_ptr<ReliableQuicStream> stream5(
|
| - session_.GetIncomingReliableStream(105));
|
| -}
|
| -
|
| -} // namespace
|
| -} // namespace test
|
| -} // namespace net
|
|
|