Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / net / spdy / spdy_websocket_test_util.h
blob14c8c0279bcb8c6384edb98a3678351c17f88a90
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
3 // found in the LICENSE file.
5 #ifndef NET_SPDY_SPDY_WEBSOCKET_TEST_UTIL_H_
6 #define NET_SPDY_SPDY_WEBSOCKET_TEST_UTIL_H_
8 #include "net/base/request_priority.h"
9 #include "net/spdy/spdy_header_block.h"
10 #include "net/spdy/spdy_protocol.h"
11 #include "net/spdy/spdy_test_util_common.h"
13 namespace net {
15 class SpdyWebSocketTestUtil {
16 public:
17 explicit SpdyWebSocketTestUtil(NextProto protocol);
19 // Returns the value corresponding to the given key (passed through
20 // GetHeaderKey()), or the empty string if none exists.
21 std::string GetHeader(const SpdyHeaderBlock& headers,
22 const std::string& key) const;
24 // Adds the given key/value pair to |headers|, passing the key
25 // through GetHeaderKey().
26 void SetHeader(const std::string& key,
27 const std::string& value,
28 SpdyHeaderBlock* headers) const;
30 // Constructs a standard SPDY SYN_STREAM frame for WebSocket over
31 // SPDY opening handshake.
32 SpdyFrame* ConstructSpdyWebSocketSynStream(int stream_id,
33 const char* path,
34 const char* host,
35 const char* origin);
37 // Constructs a standard SPDY SYN_REPLY packet to match the
38 // WebSocket over SPDY opening handshake.
39 SpdyFrame* ConstructSpdyWebSocketSynReply(int stream_id);
41 // Constructs a WebSocket over SPDY handshake request packet.
42 SpdyFrame* ConstructSpdyWebSocketHandshakeRequestFrame(
43 scoped_ptr<SpdyHeaderBlock> headers,
44 SpdyStreamId stream_id,
45 RequestPriority request_priority);
47 // Constructs a WebSocket over SPDY handshake response packet.
48 SpdyFrame* ConstructSpdyWebSocketHandshakeResponseFrame(
49 scoped_ptr<SpdyHeaderBlock> headers,
50 SpdyStreamId stream_id,
51 RequestPriority request_priority);
53 // Constructs a SPDY HEADERS frame for a WebSocket frame over SPDY.
54 SpdyFrame* ConstructSpdyWebSocketHeadersFrame(int stream_id,
55 const char* length,
56 bool fin);
58 // Constructs a WebSocket over SPDY data packet.
59 SpdyFrame* ConstructSpdyWebSocketDataFrame(const char* data,
60 int len,
61 SpdyStreamId stream_id,
62 bool fin);
64 // Forwards to |spdy_util_|.
65 SpdyFrame* ConstructSpdySettings(const SettingsMap& settings) const;
66 SpdyFrame* ConstructSpdySettingsAck() const;
67 SpdyMajorVersion spdy_version() const;
69 private:
70 // Modify the header key based on the SPDY version and return it.
71 std::string GetHeaderKey(const std::string& key) const;
73 SpdyTestUtil spdy_util_;
76 } // namespace net
78 #endif // NET_SPDY_SPDY_WEBSOCKET_TEST_UTIL_H_