Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: net/websockets/websocket_handshake_stream_create_helper_test.cc

Issue 1256793008: Remove unused params in WebSocketHandshakeStreamCreateHelperTest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "net/websockets/websocket_handshake_stream_create_helper.h" 5 #include "net/websockets/websocket_handshake_stream_create_helper.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "net/base/completion_callback.h" 10 #include "net/base/completion_callback.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 void OnSSLCertificateError( 69 void OnSSLCertificateError(
70 scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks> 70 scoped_ptr<WebSocketEventInterface::SSLErrorCallbacks>
71 ssl_error_callbacks, 71 ssl_error_callbacks,
72 const SSLInfo& ssl_info, 72 const SSLInfo& ssl_info,
73 bool fatal) override {} 73 bool fatal) override {}
74 }; 74 };
75 75
76 class WebSocketHandshakeStreamCreateHelperTest : public ::testing::Test { 76 class WebSocketHandshakeStreamCreateHelperTest : public ::testing::Test {
77 protected: 77 protected:
78 scoped_ptr<WebSocketStream> CreateAndInitializeStream( 78 scoped_ptr<WebSocketStream> CreateAndInitializeStream(
79 const std::string& socket_url,
80 const std::string& socket_host,
81 const std::string& socket_path,
82 const std::vector<std::string>& sub_protocols, 79 const std::vector<std::string>& sub_protocols,
83 const std::string& origin,
84 const std::string& extra_request_headers, 80 const std::string& extra_request_headers,
85 const std::string& extra_response_headers) { 81 const std::string& extra_response_headers) {
82 static const char kOrigin[] = "http://localhost";
86 WebSocketHandshakeStreamCreateHelper create_helper(&connect_delegate_, 83 WebSocketHandshakeStreamCreateHelper create_helper(&connect_delegate_,
87 sub_protocols); 84 sub_protocols);
88 create_helper.set_failure_message(&failure_message_); 85 create_helper.set_failure_message(&failure_message_);
89 86
90 scoped_ptr<ClientSocketHandle> socket_handle = 87 scoped_ptr<ClientSocketHandle> socket_handle =
91 socket_handle_factory_.CreateClientSocketHandle( 88 socket_handle_factory_.CreateClientSocketHandle(
92 WebSocketStandardRequest(socket_path, socket_host, 89 WebSocketStandardRequest("/", "localhost",
93 url::Origin(GURL(origin)), 90 url::Origin(GURL(kOrigin)),
94 extra_request_headers), 91 extra_request_headers),
95 WebSocketStandardResponse(extra_response_headers)); 92 WebSocketStandardResponse(extra_response_headers));
96 93
97 scoped_ptr<WebSocketHandshakeStreamBase> handshake( 94 scoped_ptr<WebSocketHandshakeStreamBase> handshake(
98 create_helper.CreateBasicStream(socket_handle.Pass(), false)); 95 create_helper.CreateBasicStream(socket_handle.Pass(), false));
99 96
100 // If in future the implementation type returned by CreateBasicStream() 97 // If in future the implementation type returned by CreateBasicStream()
101 // changes, this static_cast will be wrong. However, in that case the test 98 // changes, this static_cast will be wrong. However, in that case the test
102 // will fail and AddressSanitizer should identify the issue. 99 // will fail and AddressSanitizer should identify the issue.
103 static_cast<WebSocketBasicHandshakeStream*>(handshake.get()) 100 static_cast<WebSocketBasicHandshakeStream*>(handshake.get())
104 ->SetWebSocketKeyForTesting("dGhlIHNhbXBsZSBub25jZQ=="); 101 ->SetWebSocketKeyForTesting("dGhlIHNhbXBsZSBub25jZQ==");
105 102
106 HttpRequestInfo request_info; 103 HttpRequestInfo request_info;
107 request_info.url = GURL(socket_url); 104 request_info.url = GURL("ws://localhost/");
108 request_info.method = "GET"; 105 request_info.method = "GET";
109 request_info.load_flags = LOAD_DISABLE_CACHE; 106 request_info.load_flags = LOAD_DISABLE_CACHE;
110 int rv = handshake->InitializeStream( 107 int rv = handshake->InitializeStream(
111 &request_info, DEFAULT_PRIORITY, BoundNetLog(), CompletionCallback()); 108 &request_info, DEFAULT_PRIORITY, BoundNetLog(), CompletionCallback());
112 EXPECT_EQ(OK, rv); 109 EXPECT_EQ(OK, rv);
113 110
114 HttpRequestHeaders headers; 111 HttpRequestHeaders headers;
115 headers.SetHeader("Host", "localhost"); 112 headers.SetHeader("Host", "localhost");
116 headers.SetHeader("Connection", "Upgrade"); 113 headers.SetHeader("Connection", "Upgrade");
117 headers.SetHeader("Pragma", "no-cache"); 114 headers.SetHeader("Pragma", "no-cache");
118 headers.SetHeader("Cache-Control", "no-cache"); 115 headers.SetHeader("Cache-Control", "no-cache");
119 headers.SetHeader("Upgrade", "websocket"); 116 headers.SetHeader("Upgrade", "websocket");
120 headers.SetHeader("Origin", origin); 117 headers.SetHeader("Origin", kOrigin);
121 headers.SetHeader("Sec-WebSocket-Version", "13"); 118 headers.SetHeader("Sec-WebSocket-Version", "13");
122 headers.SetHeader("User-Agent", ""); 119 headers.SetHeader("User-Agent", "");
123 headers.SetHeader("Accept-Encoding", "gzip, deflate"); 120 headers.SetHeader("Accept-Encoding", "gzip, deflate");
124 headers.SetHeader("Accept-Language", "en-us,fr"); 121 headers.SetHeader("Accept-Language", "en-us,fr");
125 122
126 HttpResponseInfo response; 123 HttpResponseInfo response;
127 TestCompletionCallback dummy; 124 TestCompletionCallback dummy;
128 125
129 rv = handshake->SendRequest(headers, &response, dummy.callback()); 126 rv = handshake->SendRequest(headers, &response, dummy.callback());
130 127
131 EXPECT_EQ(OK, rv); 128 EXPECT_EQ(OK, rv);
132 129
133 rv = handshake->ReadResponseHeaders(dummy.callback()); 130 rv = handshake->ReadResponseHeaders(dummy.callback());
134 EXPECT_EQ(OK, rv); 131 EXPECT_EQ(OK, rv);
135 EXPECT_EQ(101, response.headers->response_code()); 132 EXPECT_EQ(101, response.headers->response_code());
136 EXPECT_TRUE(response.headers->HasHeaderValue("Connection", "Upgrade")); 133 EXPECT_TRUE(response.headers->HasHeaderValue("Connection", "Upgrade"));
137 EXPECT_TRUE(response.headers->HasHeaderValue("Upgrade", "websocket")); 134 EXPECT_TRUE(response.headers->HasHeaderValue("Upgrade", "websocket"));
138 return handshake->Upgrade(); 135 return handshake->Upgrade();
139 } 136 }
140 137
141 MockClientSocketHandleFactory socket_handle_factory_; 138 MockClientSocketHandleFactory socket_handle_factory_;
142 TestConnectDelegate connect_delegate_; 139 TestConnectDelegate connect_delegate_;
143 std::string failure_message_; 140 std::string failure_message_;
144 }; 141 };
145 142
146 // Confirm that the basic case works as expected. 143 // Confirm that the basic case works as expected.
147 TEST_F(WebSocketHandshakeStreamCreateHelperTest, BasicStream) { 144 TEST_F(WebSocketHandshakeStreamCreateHelperTest, BasicStream) {
148 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream( 145 scoped_ptr<WebSocketStream> stream =
149 "ws://localhost/", "localhost", "/", std::vector<std::string>(), 146 CreateAndInitializeStream(std::vector<std::string>(), "", "");
150 "http://localhost", "", "");
151 EXPECT_EQ("", stream->GetExtensions()); 147 EXPECT_EQ("", stream->GetExtensions());
152 EXPECT_EQ("", stream->GetSubProtocol()); 148 EXPECT_EQ("", stream->GetSubProtocol());
153 } 149 }
154 150
155 // Verify that the sub-protocols are passed through. 151 // Verify that the sub-protocols are passed through.
156 TEST_F(WebSocketHandshakeStreamCreateHelperTest, SubProtocols) { 152 TEST_F(WebSocketHandshakeStreamCreateHelperTest, SubProtocols) {
157 std::vector<std::string> sub_protocols; 153 std::vector<std::string> sub_protocols;
158 sub_protocols.push_back("chat"); 154 sub_protocols.push_back("chat");
159 sub_protocols.push_back("superchat"); 155 sub_protocols.push_back("superchat");
160 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream( 156 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream(
161 "ws://localhost/", "localhost", "/", sub_protocols, "http://localhost", 157 sub_protocols, "Sec-WebSocket-Protocol: chat, superchat\r\n",
162 "Sec-WebSocket-Protocol: chat, superchat\r\n",
163 "Sec-WebSocket-Protocol: superchat\r\n"); 158 "Sec-WebSocket-Protocol: superchat\r\n");
164 EXPECT_EQ("superchat", stream->GetSubProtocol()); 159 EXPECT_EQ("superchat", stream->GetSubProtocol());
165 } 160 }
166 161
167 // Verify that extension name is available. Bad extension names are tested in 162 // Verify that extension name is available. Bad extension names are tested in
168 // websocket_stream_test.cc. 163 // websocket_stream_test.cc.
169 TEST_F(WebSocketHandshakeStreamCreateHelperTest, Extensions) { 164 TEST_F(WebSocketHandshakeStreamCreateHelperTest, Extensions) {
170 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream( 165 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream(
171 "ws://localhost/", "localhost", "/", std::vector<std::string>(), 166 std::vector<std::string>(), "",
172 "http://localhost", "",
173 "Sec-WebSocket-Extensions: permessage-deflate\r\n"); 167 "Sec-WebSocket-Extensions: permessage-deflate\r\n");
174 EXPECT_EQ("permessage-deflate", stream->GetExtensions()); 168 EXPECT_EQ("permessage-deflate", stream->GetExtensions());
175 } 169 }
176 170
177 // Verify that extension parameters are available. Bad parameters are tested in 171 // Verify that extension parameters are available. Bad parameters are tested in
178 // websocket_stream_test.cc. 172 // websocket_stream_test.cc.
179 TEST_F(WebSocketHandshakeStreamCreateHelperTest, ExtensionParameters) { 173 TEST_F(WebSocketHandshakeStreamCreateHelperTest, ExtensionParameters) {
180 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream( 174 scoped_ptr<WebSocketStream> stream = CreateAndInitializeStream(
181 "ws://localhost/", "localhost", "/", std::vector<std::string>(), 175 std::vector<std::string>(), "",
182 "http://localhost", "",
183 "Sec-WebSocket-Extensions: permessage-deflate;" 176 "Sec-WebSocket-Extensions: permessage-deflate;"
184 " client_max_window_bits=14; server_max_window_bits=14;" 177 " client_max_window_bits=14; server_max_window_bits=14;"
185 " server_no_context_takeover; client_no_context_takeover\r\n"); 178 " server_no_context_takeover; client_no_context_takeover\r\n");
186 179
187 EXPECT_EQ( 180 EXPECT_EQ(
188 "permessage-deflate;" 181 "permessage-deflate;"
189 " client_max_window_bits=14; server_max_window_bits=14;" 182 " client_max_window_bits=14; server_max_window_bits=14;"
190 " server_no_context_takeover; client_no_context_takeover", 183 " server_no_context_takeover; client_no_context_takeover",
191 stream->GetExtensions()); 184 stream->GetExtensions());
192 } 185 }
193 186
194 } // namespace 187 } // namespace
195 } // namespace net 188 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698