Index: net/spdy/spdy_test_util.h |
diff --git a/net/spdy/spdy_test_util.h b/net/spdy/spdy_test_util.h |
index 26b9a87125f580911c585e2fac31fe7f3646b1a3..ec60a30c2a13fbe448094de7665183a430f15268 100644 |
--- a/net/spdy/spdy_test_util.h |
+++ b/net/spdy/spdy_test_util.h |
@@ -11,11 +11,15 @@ |
#include "net/base/request_priority.h" |
#include "net/base/ssl_config_service_defaults.h" |
#include "net/http/http_auth_handler_factory.h" |
+#include "net/http/http_cache.h" |
#include "net/http/http_network_session.h" |
+#include "net/http/http_network_layer.h" |
+#include "net/http/http_transaction_factory.h" |
#include "net/proxy/proxy_service.h" |
#include "net/socket/socket_test_util.h" |
#include "net/spdy/spdy_framer.h" |
#include "net/spdy/spdy_session_pool.h" |
+#include "net/url_request/url_request_context.h" |
namespace net { |
@@ -109,6 +113,27 @@ spdy::SpdyFrame* ConstructSpdyPacket(const SpdyHeaderInfo& header_info, |
const char* const tail[], |
int tail_header_count); |
+// Construct a generic SpdyControlFrame. |
+spdy::SpdyFrame* ConstructSpdyControlFrame(const char* const extra_headers[], |
+ int extra_header_count, |
+ bool compressed, |
+ int stream_id, |
+ RequestPriority request_priority, |
+ spdy::SpdyControlType type, |
+ spdy::SpdyControlFlags flags, |
+ const char* const* kHeaders, |
+ int kHeadersSize); |
+spdy::SpdyFrame* ConstructSpdyControlFrame(const char* const extra_headers[], |
+ int extra_header_count, |
+ bool compressed, |
+ int stream_id, |
+ RequestPriority request_priority, |
+ spdy::SpdyControlType type, |
+ spdy::SpdyControlFlags flags, |
+ const char* const* kHeaders, |
+ int kHeadersSize, |
+ int associated_stream_id); |
+ |
// Construct an expected SPDY reply string. |
// |extra_headers| are the extra header-value pairs, which typically |
// will vary the most between calls. |
@@ -169,6 +194,28 @@ spdy::SpdyFrame* ConstructSpdyGet(const char* const extra_headers[], |
int stream_id, |
RequestPriority request_priority); |
+// Constructs a standard SPDY push SYN packet. |
+// |extra_headers| are the extra header-value pairs, which typically |
+// will vary the most between calls. |
+// Returns a SpdyFrame. |
+spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], |
+ int extra_header_count, |
+ int stream_id, |
+ int associated_stream_id); |
+spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], |
+ int extra_header_count, |
+ int stream_id, |
+ int associated_stream_id, |
+ const char* path); |
+spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], |
+ int extra_header_count, |
+ int stream_id, |
+ int associated_stream_id, |
+ const char* path, |
+ const char* status, |
+ const char* location, |
+ const char* url); |
+ |
// Constructs a standard SPDY SYN_REPLY packet to match the SPDY GET. |
// |extra_headers| are the extra header-value pairs, which typically |
// will vary the most between calls. |
@@ -177,6 +224,13 @@ spdy::SpdyFrame* ConstructSpdyGetSynReply(const char* const extra_headers[], |
int extra_header_count, |
int stream_id); |
+// Constructs a standard SPDY SYN_REPLY packet to match the SPDY GET. |
+// |extra_headers| are the extra header-value pairs, which typically |
+// will vary the most between calls. |
+// Returns a SpdyFrame. |
+spdy::SpdyFrame* ConstructSpdyGetSynReplyRedirect(int stream_id); |
+ |
+ |
// Constructs a standard SPDY POST SYN packet. |
// |extra_headers| are the extra header-value pairs, which typically |
// will vary the most between calls. |
@@ -261,10 +315,44 @@ class SpdySessionDependencies { |
} |
}; |
+class SpdyURLRequestContext : public URLRequestContext { |
+ public: |
+ SpdyURLRequestContext() { |
+ host_resolver_ = new MockHostResolver; |
+ proxy_service_ = ProxyService::CreateNull(); |
+ spdy_session_pool_ = new SpdySessionPool(); |
+ ssl_config_service_ = new SSLConfigServiceDefaults; |
+ http_auth_handler_factory_ = HttpAuthHandlerFactory::CreateDefault(); |
+ http_transaction_factory_ = new net::HttpCache( |
+ new HttpNetworkLayer(&socket_factory_, |
+ host_resolver_, |
+ proxy_service_, |
+ ssl_config_service_, |
+ spdy_session_pool_.get(), |
+ http_auth_handler_factory_, |
+ network_delegate_, |
+ NULL), |
+ net::HttpCache::DefaultBackend::InMemory(0)); |
+ } |
+ |
+ MockClientSocketFactory& socket_factory() { return socket_factory_; } |
+ |
+ protected: |
+ virtual ~SpdyURLRequestContext() { |
+ delete http_transaction_factory_; |
+ delete http_auth_handler_factory_; |
+ } |
+ |
+ private: |
+ MockClientSocketFactory socket_factory_; |
+ scoped_refptr<SpdySessionPool> spdy_session_pool_; |
+}; |
+ |
// This creates a proxy for testing purposes. |
// |proxy| should be in the form "myproxy:70". |
ProxyService* SpdyCreateFixedProxyService(const std::string& proxy); |
+const SpdyHeaderInfo make_spdy_header(spdy::SpdyControlType type); |
} // namespace net |
#endif // NET_SPDY_SPDY_TEST_UTIL_H_ |