OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <cstddef> | 5 #include <cstddef> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 SpdyStream stream(SPDY_PUSH_STREAM, | 192 SpdyStream stream(SPDY_PUSH_STREAM, |
193 spdy_session, | 193 spdy_session, |
194 GURL(), | 194 GURL(), |
195 DEFAULT_PRIORITY, | 195 DEFAULT_PRIORITY, |
196 kSpdyStreamInitialWindowSize, | 196 kSpdyStreamInitialWindowSize, |
197 kSpdyStreamInitialWindowSize, | 197 kSpdyStreamInitialWindowSize, |
198 BoundNetLog()); | 198 BoundNetLog()); |
199 stream.set_stream_id(2); | 199 stream.set_stream_id(2); |
200 EXPECT_FALSE(stream.HasUrlFromHeaders()); | 200 EXPECT_FALSE(stream.HasUrlFromHeaders()); |
201 | 201 |
202 // Set a couple of headers. | 202 // Set required request headers. |
| 203 SpdyHeaderBlock request_headers; |
| 204 spdy_util_.AddUrlToHeaderBlock(kStreamUrl, &request_headers); |
| 205 stream.OnPushPromiseHeadersReceived(request_headers); |
| 206 |
| 207 // Send some basic response headers. |
203 SpdyHeaderBlock response; | 208 SpdyHeaderBlock response; |
204 spdy_util_.AddUrlToHeaderBlock(kStreamUrl, &response); | 209 response[spdy_util_.GetStatusKey()] = "200"; |
| 210 response[spdy_util_.GetVersionKey()] = "OK"; |
205 stream.OnInitialResponseHeadersReceived( | 211 stream.OnInitialResponseHeadersReceived( |
206 response, base::Time::Now(), base::TimeTicks::Now()); | 212 response, base::Time::Now(), base::TimeTicks::Now()); |
207 | 213 |
208 // Send some basic headers. | 214 // And some more headers. |
| 215 // TODO(baranovich): not valid for HTTP 2. |
209 SpdyHeaderBlock headers; | 216 SpdyHeaderBlock headers; |
210 headers[spdy_util_.GetStatusKey()] = "200"; | 217 headers["alpha"] = "beta"; |
211 headers[spdy_util_.GetVersionKey()] = "OK"; | |
212 stream.OnAdditionalResponseHeadersReceived(headers); | 218 stream.OnAdditionalResponseHeadersReceived(headers); |
213 | 219 |
214 EXPECT_TRUE(stream.HasUrlFromHeaders()); | 220 EXPECT_TRUE(stream.HasUrlFromHeaders()); |
215 EXPECT_EQ(kStreamUrl, stream.GetUrlFromHeaders().spec()); | 221 EXPECT_EQ(kStreamUrl, stream.GetUrlFromHeaders().spec()); |
216 | 222 |
217 StreamDelegateDoNothing delegate(stream.GetWeakPtr()); | 223 StreamDelegateDoNothing delegate(stream.GetWeakPtr()); |
218 stream.SetDelegate(&delegate); | 224 stream.SetDelegate(&delegate); |
219 | 225 |
220 base::MessageLoop::current()->RunUntilIdle(); | 226 base::MessageLoop::current()->RunUntilIdle(); |
221 | 227 |
222 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 228 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 229 EXPECT_EQ("beta", delegate.GetResponseHeaderValue("alpha")); |
223 | 230 |
224 EXPECT_TRUE(spdy_session == NULL); | 231 EXPECT_TRUE(spdy_session == NULL); |
225 } | 232 } |
226 | 233 |
227 TEST_P(SpdyStreamTest, StreamError) { | 234 TEST_P(SpdyStreamTest, StreamError) { |
228 GURL url(kStreamUrl); | 235 GURL url(kStreamUrl); |
229 | 236 |
230 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); | 237 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); |
231 | 238 |
232 scoped_ptr<SpdyFrame> req( | 239 scoped_ptr<SpdyFrame> req( |
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1045 data.RunFor(1); // FIN | 1052 data.RunFor(1); // FIN |
1046 | 1053 |
1047 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); | 1054 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); |
1048 } | 1055 } |
1049 | 1056 |
1050 } // namespace | 1057 } // namespace |
1051 | 1058 |
1052 } // namespace test | 1059 } // namespace test |
1053 | 1060 |
1054 } // namespace net | 1061 } // namespace net |
OLD | NEW |