OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/core/quic_client_promised_info.h" | 5 #include "net/quic/core/quic_client_promised_info.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "net/quic/core/spdy_utils.h" | 10 #include "net/quic/core/spdy_utils.h" |
11 #include "net/quic/platform/api/quic_logging.h" | 11 #include "net/quic/platform/api/quic_logging.h" |
12 #include "net/quic/platform/api/quic_socket_address.h" | 12 #include "net/quic/platform/api/quic_socket_address.h" |
13 #include "net/quic/platform/api/quic_test.h" | 13 #include "net/quic/platform/api/quic_test.h" |
14 #include "net/quic/test_tools/crypto_test_utils.h" | 14 #include "net/quic/test_tools/crypto_test_utils.h" |
15 #include "net/quic/test_tools/quic_client_promised_info_peer.h" | 15 #include "net/quic/test_tools/quic_client_promised_info_peer.h" |
| 16 #include "net/quic/test_tools/quic_spdy_session_peer.h" |
16 #include "net/test/gtest_util.h" | 17 #include "net/test/gtest_util.h" |
17 #include "net/tools/quic/quic_client_session.h" | 18 #include "net/tools/quic/quic_client_session.h" |
18 | 19 |
19 using std::string; | 20 using std::string; |
20 using testing::StrictMock; | 21 using testing::StrictMock; |
21 | 22 |
22 namespace net { | 23 namespace net { |
23 namespace test { | 24 namespace test { |
24 namespace { | 25 namespace { |
25 | 26 |
(...skipping 28 matching lines...) Expand all Loading... |
54 class QuicClientPromisedInfoTest : public QuicTest { | 55 class QuicClientPromisedInfoTest : public QuicTest { |
55 public: | 56 public: |
56 class StreamVisitor; | 57 class StreamVisitor; |
57 | 58 |
58 QuicClientPromisedInfoTest() | 59 QuicClientPromisedInfoTest() |
59 : connection_(new StrictMock<MockQuicConnection>(&helper_, | 60 : connection_(new StrictMock<MockQuicConnection>(&helper_, |
60 &alarm_factory_, | 61 &alarm_factory_, |
61 Perspective::IS_CLIENT)), | 62 Perspective::IS_CLIENT)), |
62 session_(connection_, &push_promise_index_), | 63 session_(connection_, &push_promise_index_), |
63 body_("hello world"), | 64 body_("hello world"), |
64 promise_id_(kServerDataStreamId1) { | 65 promise_id_(kInvalidStreamId) { |
65 session_.Initialize(); | 66 session_.Initialize(); |
66 | 67 |
67 headers_[":status"] = "200"; | 68 headers_[":status"] = "200"; |
68 headers_["content-length"] = "11"; | 69 headers_["content-length"] = "11"; |
69 | 70 |
70 stream_.reset(new QuicSpdyClientStream(kClientDataStreamId1, &session_)); | 71 stream_.reset(new QuicSpdyClientStream( |
| 72 QuicSpdySessionPeer::GetNthClientInitiatedStreamId(session_, 0), |
| 73 &session_)); |
71 stream_visitor_.reset(new StreamVisitor()); | 74 stream_visitor_.reset(new StreamVisitor()); |
72 stream_->set_visitor(stream_visitor_.get()); | 75 stream_->set_visitor(stream_visitor_.get()); |
73 | 76 |
74 push_promise_[":path"] = "/bar"; | 77 push_promise_[":path"] = "/bar"; |
75 push_promise_[":authority"] = "www.google.com"; | 78 push_promise_[":authority"] = "www.google.com"; |
76 push_promise_[":version"] = "HTTP/1.1"; | 79 push_promise_[":version"] = "HTTP/1.1"; |
77 push_promise_[":method"] = "GET"; | 80 push_promise_[":method"] = "GET"; |
78 push_promise_[":scheme"] = "https"; | 81 push_promise_[":scheme"] = "https"; |
79 | 82 |
80 promise_url_ = SpdyUtils::GetUrlFromHeaderBlock(push_promise_); | 83 promise_url_ = SpdyUtils::GetUrlFromHeaderBlock(push_promise_); |
81 | 84 |
82 client_request_ = push_promise_.Clone(); | 85 client_request_ = push_promise_.Clone(); |
| 86 promise_id_ = |
| 87 QuicSpdySessionPeer::GetNthServerInitiatedStreamId(session_, 0); |
83 } | 88 } |
84 | 89 |
85 class StreamVisitor : public QuicSpdyClientStream::Visitor { | 90 class StreamVisitor : public QuicSpdyClientStream::Visitor { |
86 void OnClose(QuicSpdyStream* stream) override { | 91 void OnClose(QuicSpdyStream* stream) override { |
87 QUIC_DVLOG(1) << "stream " << stream->id(); | 92 QUIC_DVLOG(1) << "stream " << stream->id(); |
88 } | 93 } |
89 }; | 94 }; |
90 | 95 |
91 void ReceivePromise(QuicStreamId id) { | 96 void ReceivePromise(QuicStreamId id) { |
92 auto headers = AsHeaderList(push_promise_); | 97 auto headers = AsHeaderList(push_promise_); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 EXPECT_FALSE(delegate.rendezvous_fired()); | 310 EXPECT_FALSE(delegate.rendezvous_fired()); |
306 EXPECT_EQ(delegate.rendezvous_stream(), nullptr); | 311 EXPECT_EQ(delegate.rendezvous_stream(), nullptr); |
307 | 312 |
308 // Promise is gone | 313 // Promise is gone |
309 EXPECT_EQ(session_.GetPromisedById(promise_id_), nullptr); | 314 EXPECT_EQ(session_.GetPromisedById(promise_id_), nullptr); |
310 } | 315 } |
311 | 316 |
312 } // namespace | 317 } // namespace |
313 } // namespace test | 318 } // namespace test |
314 } // namespace net | 319 } // namespace net |
OLD | NEW |