OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #ifndef NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ | 5 #ifndef NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ |
6 #define NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ | 6 #define NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ |
7 | 7 |
| 8 #include <stddef.h> |
| 9 #include <stdint.h> |
| 10 |
8 #include <string> | 11 #include <string> |
9 #include <vector> | 12 #include <vector> |
10 | 13 |
| 14 #include "base/macros.h" |
11 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
12 #include "base/memory/scoped_ptr.h" | 16 #include "base/memory/scoped_ptr.h" |
13 #include "crypto/ec_private_key.h" | 17 #include "crypto/ec_private_key.h" |
14 #include "crypto/ec_signature_creator.h" | 18 #include "crypto/ec_signature_creator.h" |
15 #include "net/base/completion_callback.h" | 19 #include "net/base/completion_callback.h" |
16 #include "net/base/request_priority.h" | 20 #include "net/base/request_priority.h" |
17 #include "net/base/test_completion_callback.h" | 21 #include "net/base/test_completion_callback.h" |
18 #include "net/cert/cert_verifier.h" | 22 #include "net/cert/cert_verifier.h" |
19 #include "net/dns/mock_host_resolver.h" | 23 #include "net/dns/mock_host_resolver.h" |
20 #include "net/http/http_auth_handler_factory.h" | 24 #include "net/http/http_auth_handler_factory.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 // This struct holds information used to construct spdy control and data frames. | 126 // This struct holds information used to construct spdy control and data frames. |
123 struct SpdyHeaderInfo { | 127 struct SpdyHeaderInfo { |
124 SpdyFrameType kind; | 128 SpdyFrameType kind; |
125 SpdyStreamId id; | 129 SpdyStreamId id; |
126 SpdyStreamId assoc_id; | 130 SpdyStreamId assoc_id; |
127 SpdyPriority priority; | 131 SpdyPriority priority; |
128 SpdyControlFlags control_flags; | 132 SpdyControlFlags control_flags; |
129 bool compressed; | 133 bool compressed; |
130 SpdyRstStreamStatus status; | 134 SpdyRstStreamStatus status; |
131 const char* data; | 135 const char* data; |
132 uint32 data_length; | 136 uint32_t data_length; |
133 SpdyDataFlags data_flags; | 137 SpdyDataFlags data_flags; |
134 }; | 138 }; |
135 | 139 |
136 // An ECSignatureCreator that returns deterministic signatures. | 140 // An ECSignatureCreator that returns deterministic signatures. |
137 class MockECSignatureCreator : public crypto::ECSignatureCreator { | 141 class MockECSignatureCreator : public crypto::ECSignatureCreator { |
138 public: | 142 public: |
139 explicit MockECSignatureCreator(crypto::ECPrivateKey* key); | 143 explicit MockECSignatureCreator(crypto::ECPrivateKey* key); |
140 | 144 |
141 // crypto::ECSignatureCreator | 145 // crypto::ECSignatureCreator |
142 bool Sign(const uint8* data, | 146 bool Sign(const uint8_t* data, |
143 int data_len, | 147 int data_len, |
144 std::vector<uint8>* signature) override; | 148 std::vector<uint8_t>* signature) override; |
145 bool DecodeSignature(const std::vector<uint8>& signature, | 149 bool DecodeSignature(const std::vector<uint8_t>& signature, |
146 std::vector<uint8>* out_raw_sig) override; | 150 std::vector<uint8_t>* out_raw_sig) override; |
147 | 151 |
148 private: | 152 private: |
149 crypto::ECPrivateKey* key_; | 153 crypto::ECPrivateKey* key_; |
150 | 154 |
151 DISALLOW_COPY_AND_ASSIGN(MockECSignatureCreator); | 155 DISALLOW_COPY_AND_ASSIGN(MockECSignatureCreator); |
152 }; | 156 }; |
153 | 157 |
154 // An ECSignatureCreatorFactory creates MockECSignatureCreator. | 158 // An ECSignatureCreatorFactory creates MockECSignatureCreator. |
155 class MockECSignatureCreatorFactory : public crypto::ECSignatureCreatorFactory { | 159 class MockECSignatureCreatorFactory : public crypto::ECSignatureCreatorFactory { |
156 public: | 160 public: |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 // Add the appropriate headers to put |url| into |block|. | 288 // Add the appropriate headers to put |url| into |block|. |
285 void AddUrlToHeaderBlock(base::StringPiece url, | 289 void AddUrlToHeaderBlock(base::StringPiece url, |
286 SpdyHeaderBlock* headers) const; | 290 SpdyHeaderBlock* headers) const; |
287 | 291 |
288 scoped_ptr<SpdyHeaderBlock> ConstructGetHeaderBlock( | 292 scoped_ptr<SpdyHeaderBlock> ConstructGetHeaderBlock( |
289 base::StringPiece url) const; | 293 base::StringPiece url) const; |
290 scoped_ptr<SpdyHeaderBlock> ConstructGetHeaderBlockForProxy( | 294 scoped_ptr<SpdyHeaderBlock> ConstructGetHeaderBlockForProxy( |
291 base::StringPiece url) const; | 295 base::StringPiece url) const; |
292 scoped_ptr<SpdyHeaderBlock> ConstructHeadHeaderBlock( | 296 scoped_ptr<SpdyHeaderBlock> ConstructHeadHeaderBlock( |
293 base::StringPiece url, | 297 base::StringPiece url, |
294 int64 content_length) const; | 298 int64_t content_length) const; |
295 scoped_ptr<SpdyHeaderBlock> ConstructPostHeaderBlock( | 299 scoped_ptr<SpdyHeaderBlock> ConstructPostHeaderBlock( |
296 base::StringPiece url, | 300 base::StringPiece url, |
297 int64 content_length) const; | 301 int64_t content_length) const; |
298 scoped_ptr<SpdyHeaderBlock> ConstructPutHeaderBlock( | 302 scoped_ptr<SpdyHeaderBlock> ConstructPutHeaderBlock( |
299 base::StringPiece url, | 303 base::StringPiece url, |
300 int64 content_length) const; | 304 int64_t content_length) const; |
301 | 305 |
302 // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as | 306 // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as |
303 // specified in header_info.kind), the provided headers are included in the | 307 // specified in header_info.kind), the provided headers are included in the |
304 // frame. | 308 // frame. |
305 SpdyFrame* ConstructSpdyFrame( | 309 SpdyFrame* ConstructSpdyFrame( |
306 const SpdyHeaderInfo& header_info, | 310 const SpdyHeaderInfo& header_info, |
307 scoped_ptr<SpdyHeaderBlock> headers) const; | 311 scoped_ptr<SpdyHeaderBlock> headers) const; |
308 | 312 |
309 // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as | 313 // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as |
310 // specified in header_info.kind), the headers provided in extra_headers and | 314 // specified in header_info.kind), the headers provided in extra_headers and |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 // |settings| are the settings to set. | 355 // |settings| are the settings to set. |
352 // Returns the constructed frame. The caller takes ownership of the frame. | 356 // Returns the constructed frame. The caller takes ownership of the frame. |
353 SpdyFrame* ConstructSpdySettings(const SettingsMap& settings) const; | 357 SpdyFrame* ConstructSpdySettings(const SettingsMap& settings) const; |
354 | 358 |
355 // Constructs an expected SPDY SETTINGS acknowledgement frame, if the protocol | 359 // Constructs an expected SPDY SETTINGS acknowledgement frame, if the protocol |
356 // version is SPDY4 or higher, or an empty placeholder frame otherwise. | 360 // version is SPDY4 or higher, or an empty placeholder frame otherwise. |
357 SpdyFrame* ConstructSpdySettingsAck() const; | 361 SpdyFrame* ConstructSpdySettingsAck() const; |
358 | 362 |
359 // Construct a SPDY PING frame. | 363 // Construct a SPDY PING frame. |
360 // Returns the constructed frame. The caller takes ownership of the frame. | 364 // Returns the constructed frame. The caller takes ownership of the frame. |
361 SpdyFrame* ConstructSpdyPing(uint32 ping_id, bool is_ack) const; | 365 SpdyFrame* ConstructSpdyPing(uint32_t ping_id, bool is_ack) const; |
362 | 366 |
363 // Construct a SPDY GOAWAY frame with last_good_stream_id = 0. | 367 // Construct a SPDY GOAWAY frame with last_good_stream_id = 0. |
364 // Returns the constructed frame. The caller takes ownership of the frame. | 368 // Returns the constructed frame. The caller takes ownership of the frame. |
365 SpdyFrame* ConstructSpdyGoAway() const; | 369 SpdyFrame* ConstructSpdyGoAway() const; |
366 | 370 |
367 // Construct a SPDY GOAWAY frame with the specified last_good_stream_id. | 371 // Construct a SPDY GOAWAY frame with the specified last_good_stream_id. |
368 // Returns the constructed frame. The caller takes ownership of the frame. | 372 // Returns the constructed frame. The caller takes ownership of the frame. |
369 SpdyFrame* ConstructSpdyGoAway(SpdyStreamId last_good_stream_id) const; | 373 SpdyFrame* ConstructSpdyGoAway(SpdyStreamId last_good_stream_id) const; |
370 | 374 |
371 // Construct a SPDY GOAWAY frame with the specified last_good_stream_id, | 375 // Construct a SPDY GOAWAY frame with the specified last_good_stream_id, |
372 // status, and description. Returns the constructed frame. The caller takes | 376 // status, and description. Returns the constructed frame. The caller takes |
373 // ownership of the frame. | 377 // ownership of the frame. |
374 SpdyFrame* ConstructSpdyGoAway(SpdyStreamId last_good_stream_id, | 378 SpdyFrame* ConstructSpdyGoAway(SpdyStreamId last_good_stream_id, |
375 SpdyGoAwayStatus status, | 379 SpdyGoAwayStatus status, |
376 const std::string& desc) const; | 380 const std::string& desc) const; |
377 | 381 |
378 // Construct a SPDY WINDOW_UPDATE frame. | 382 // Construct a SPDY WINDOW_UPDATE frame. |
379 // Returns the constructed frame. The caller takes ownership of the frame. | 383 // Returns the constructed frame. The caller takes ownership of the frame. |
380 SpdyFrame* ConstructSpdyWindowUpdate( | 384 SpdyFrame* ConstructSpdyWindowUpdate(SpdyStreamId stream_id, |
381 SpdyStreamId stream_id, | 385 uint32_t delta_window_size) const; |
382 uint32 delta_window_size) const; | |
383 | 386 |
384 // Construct a SPDY RST_STREAM frame. | 387 // Construct a SPDY RST_STREAM frame. |
385 // Returns the constructed frame. The caller takes ownership of the frame. | 388 // Returns the constructed frame. The caller takes ownership of the frame. |
386 SpdyFrame* ConstructSpdyRstStream(SpdyStreamId stream_id, | 389 SpdyFrame* ConstructSpdyRstStream(SpdyStreamId stream_id, |
387 SpdyRstStreamStatus status) const; | 390 SpdyRstStreamStatus status) const; |
388 | 391 |
389 // Constructs a standard SPDY GET SYN frame, optionally compressed | 392 // Constructs a standard SPDY GET SYN frame, optionally compressed |
390 // for |url|. | 393 // for |url|. |
391 // |extra_headers| are the extra header-value pairs, which typically | 394 // |extra_headers| are the extra header-value pairs, which typically |
392 // will vary the most between calls. | 395 // will vary the most between calls. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 const char* const* const extra_headers, | 486 const char* const* const extra_headers, |
484 int extra_header_count, | 487 int extra_header_count, |
485 int stream_id); | 488 int stream_id); |
486 | 489 |
487 // Constructs a standard SPDY POST SYN frame. | 490 // Constructs a standard SPDY POST SYN frame. |
488 // |extra_headers| are the extra header-value pairs, which typically | 491 // |extra_headers| are the extra header-value pairs, which typically |
489 // will vary the most between calls. | 492 // will vary the most between calls. |
490 // Returns a SpdyFrame. | 493 // Returns a SpdyFrame. |
491 SpdyFrame* ConstructSpdyPost(const char* url, | 494 SpdyFrame* ConstructSpdyPost(const char* url, |
492 SpdyStreamId stream_id, | 495 SpdyStreamId stream_id, |
493 int64 content_length, | 496 int64_t content_length, |
494 RequestPriority priority, | 497 RequestPriority priority, |
495 const char* const extra_headers[], | 498 const char* const extra_headers[], |
496 int extra_header_count); | 499 int extra_header_count); |
497 | 500 |
498 // Constructs a chunked transfer SPDY POST SYN frame. | 501 // Constructs a chunked transfer SPDY POST SYN frame. |
499 // |extra_headers| are the extra header-value pairs, which typically | 502 // |extra_headers| are the extra header-value pairs, which typically |
500 // will vary the most between calls. | 503 // will vary the most between calls. |
501 // Returns a SpdyFrame. | 504 // Returns a SpdyFrame. |
502 SpdyFrame* ConstructChunkedSpdyPost(const char* const extra_headers[], | 505 SpdyFrame* ConstructChunkedSpdyPost(const char* const extra_headers[], |
503 int extra_header_count); | 506 int extra_header_count); |
504 | 507 |
505 // Constructs a standard SPDY SYN_REPLY frame to match the SPDY POST. | 508 // Constructs a standard SPDY SYN_REPLY frame to match the SPDY POST. |
506 // |extra_headers| are the extra header-value pairs, which typically | 509 // |extra_headers| are the extra header-value pairs, which typically |
507 // will vary the most between calls. | 510 // will vary the most between calls. |
508 // Returns a SpdyFrame. | 511 // Returns a SpdyFrame. |
509 SpdyFrame* ConstructSpdyPostSynReply(const char* const extra_headers[], | 512 SpdyFrame* ConstructSpdyPostSynReply(const char* const extra_headers[], |
510 int extra_header_count); | 513 int extra_header_count); |
511 | 514 |
512 // Constructs a single SPDY data frame with the contents "hello!" | 515 // Constructs a single SPDY data frame with the contents "hello!" |
513 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, | 516 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, |
514 bool fin); | 517 bool fin); |
515 | 518 |
516 // Constructs a single SPDY data frame with the given content. | 519 // Constructs a single SPDY data frame with the given content. |
517 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, const char* data, | 520 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, |
518 uint32 len, bool fin); | 521 const char* data, |
| 522 uint32_t len, |
| 523 bool fin); |
519 | 524 |
520 // Constructs a single SPDY data frame with the given content and padding. | 525 // Constructs a single SPDY data frame with the given content and padding. |
521 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, | 526 SpdyFrame* ConstructSpdyBodyFrame(int stream_id, |
522 const char* data, | 527 const char* data, |
523 uint32 len, | 528 uint32_t len, |
524 bool fin, | 529 bool fin, |
525 int padding_length); | 530 int padding_length); |
526 | 531 |
527 // Wraps |frame| in the payload of a data frame in stream |stream_id|. | 532 // Wraps |frame| in the payload of a data frame in stream |stream_id|. |
528 SpdyFrame* ConstructWrappedSpdyFrame(const scoped_ptr<SpdyFrame>& frame, | 533 SpdyFrame* ConstructWrappedSpdyFrame(const scoped_ptr<SpdyFrame>& frame, |
529 int stream_id); | 534 int stream_id); |
530 | 535 |
531 // Called when necessary (when it will affect stream dependency specification | 536 // Called when necessary (when it will affect stream dependency specification |
532 // when setting dependencies based on priorioties) to notify the utility | 537 // when setting dependencies based on priorioties) to notify the utility |
533 // class of stream destruction. | 538 // class of stream destruction. |
(...skipping 20 matching lines...) Expand all Loading... |
554 const char* GetSchemeKey() const; | 559 const char* GetSchemeKey() const; |
555 const char* GetVersionKey() const; | 560 const char* GetVersionKey() const; |
556 const char* GetPathKey() const; | 561 const char* GetPathKey() const; |
557 | 562 |
558 private: | 563 private: |
559 // |content_length| may be NULL, in which case the content-length | 564 // |content_length| may be NULL, in which case the content-length |
560 // header will be omitted. | 565 // header will be omitted. |
561 scoped_ptr<SpdyHeaderBlock> ConstructHeaderBlock( | 566 scoped_ptr<SpdyHeaderBlock> ConstructHeaderBlock( |
562 base::StringPiece method, | 567 base::StringPiece method, |
563 base::StringPiece url, | 568 base::StringPiece url, |
564 int64* content_length) const; | 569 int64_t* content_length) const; |
565 | 570 |
566 const NextProto protocol_; | 571 const NextProto protocol_; |
567 const SpdyMajorVersion spdy_version_; | 572 const SpdyMajorVersion spdy_version_; |
568 GURL default_url_; | 573 GURL default_url_; |
569 bool dependency_priorities_; | 574 bool dependency_priorities_; |
570 | 575 |
571 // Track a FIFO list of the stream_id of all created requests by priority. | 576 // Track a FIFO list of the stream_id of all created requests by priority. |
572 std::map<int, std::vector<int>> priority_to_stream_id_list_; | 577 std::map<int, std::vector<int>> priority_to_stream_id_list_; |
573 }; | 578 }; |
574 | 579 |
575 } // namespace net | 580 } // namespace net |
576 | 581 |
577 #endif // NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ | 582 #endif // NET_SPDY_SPDY_TEST_UTIL_COMMON_H_ |
OLD | NEW |