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

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

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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 | « net/websockets/websocket_test_util.h ('k') | sandbox/linux/BUILD.gn » ('j') | 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_test_util.h" 5 #include "net/websockets/websocket_test_util.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/memory/scoped_vector.h" 11 #include "base/memory/scoped_vector.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "net/proxy/proxy_service.h"
14 #include "net/socket/socket_test_util.h" 15 #include "net/socket/socket_test_util.h"
15 16
16 namespace net { 17 namespace net {
17 18
18 namespace { 19 namespace {
19 const uint64 kA = 20 const uint64 kA =
20 (static_cast<uint64>(0x5851f42d) << 32) + static_cast<uint64>(0x4c957f2d); 21 (static_cast<uint64>(0x5851f42d) << 32) + static_cast<uint64>(0x4c957f2d);
21 const uint64 kC = 12345; 22 const uint64 kC = 12345;
22 const uint64 kM = static_cast<uint64>(1) << 48; 23 const uint64 kM = static_cast<uint64>(1) << 48;
23 24
24 } // namespace 25 } // namespace
25 26
26 LinearCongruentialGenerator::LinearCongruentialGenerator(uint32 seed) 27 LinearCongruentialGenerator::LinearCongruentialGenerator(uint32 seed)
27 : current_(seed) {} 28 : current_(seed) {}
28 29
29 uint32 LinearCongruentialGenerator::Generate() { 30 uint32 LinearCongruentialGenerator::Generate() {
30 uint64 result = current_; 31 uint64 result = current_;
31 current_ = (current_ * kA + kC) % kM; 32 current_ = (current_ * kA + kC) % kM;
32 return static_cast<uint32>(result >> 16); 33 return static_cast<uint32>(result >> 16);
33 } 34 }
34 35
35 std::string WebSocketStandardRequest(const std::string& path, 36 std::string WebSocketStandardRequest(const std::string& path,
36 const std::string& host, 37 const std::string& host,
37 const std::string& origin, 38 const std::string& origin,
38 const std::string& extra_headers) { 39 const std::string& extra_headers) {
40 return WebSocketStandardRequestWithCookies(path, host, origin, std::string(),
41 extra_headers);
42 }
43
44 std::string WebSocketStandardRequestWithCookies(
45 const std::string& path,
46 const std::string& host,
47 const std::string& origin,
48 const std::string& cookies,
49 const std::string& extra_headers) {
39 // Unrelated changes in net/http may change the order and default-values of 50 // Unrelated changes in net/http may change the order and default-values of
40 // HTTP headers, causing WebSocket tests to fail. It is safe to update this 51 // HTTP headers, causing WebSocket tests to fail. It is safe to update this
41 // string in that case. 52 // string in that case.
42 return base::StringPrintf( 53 return base::StringPrintf(
43 "GET %s HTTP/1.1\r\n" 54 "GET %s HTTP/1.1\r\n"
44 "Host: %s\r\n" 55 "Host: %s\r\n"
45 "Connection: Upgrade\r\n" 56 "Connection: Upgrade\r\n"
46 "Pragma: no-cache\r\n" 57 "Pragma: no-cache\r\n"
47 "Cache-Control: no-cache\r\n" 58 "Cache-Control: no-cache\r\n"
48 "Upgrade: websocket\r\n" 59 "Upgrade: websocket\r\n"
49 "Origin: %s\r\n" 60 "Origin: %s\r\n"
50 "Sec-WebSocket-Version: 13\r\n" 61 "Sec-WebSocket-Version: 13\r\n"
51 "User-Agent:\r\n" 62 "User-Agent:\r\n"
52 "Accept-Encoding: gzip, deflate\r\n" 63 "Accept-Encoding: gzip, deflate\r\n"
53 "Accept-Language: en-us,fr\r\n" 64 "Accept-Language: en-us,fr\r\n"
65 "%s"
54 "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n" 66 "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n"
55 "Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits\r\n" 67 "Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits\r\n"
56 "%s\r\n", 68 "%s\r\n",
57 path.c_str(), host.c_str(), origin.c_str(), extra_headers.c_str()); 69 path.c_str(), host.c_str(), origin.c_str(), cookies.c_str(),
70 extra_headers.c_str());
58 } 71 }
59 72
60 std::string WebSocketStandardResponse(const std::string& extra_headers) { 73 std::string WebSocketStandardResponse(const std::string& extra_headers) {
61 return base::StringPrintf( 74 return base::StringPrintf(
62 "HTTP/1.1 101 Switching Protocols\r\n" 75 "HTTP/1.1 101 Switching Protocols\r\n"
63 "Upgrade: websocket\r\n" 76 "Upgrade: websocket\r\n"
64 "Connection: Upgrade\r\n" 77 "Connection: Upgrade\r\n"
65 "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n" 78 "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=\r\n"
66 "%s\r\n", 79 "%s\r\n",
67 extra_headers.c_str()); 80 extra_headers.c_str());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 void WebSocketTestURLRequestContextHost::AddRawExpectations( 157 void WebSocketTestURLRequestContextHost::AddRawExpectations(
145 scoped_ptr<DeterministicSocketData> socket_data) { 158 scoped_ptr<DeterministicSocketData> socket_data) {
146 maker_.AddRawExpectations(socket_data.Pass()); 159 maker_.AddRawExpectations(socket_data.Pass());
147 } 160 }
148 161
149 void WebSocketTestURLRequestContextHost::AddSSLSocketDataProvider( 162 void WebSocketTestURLRequestContextHost::AddSSLSocketDataProvider(
150 scoped_ptr<SSLSocketDataProvider> ssl_socket_data) { 163 scoped_ptr<SSLSocketDataProvider> ssl_socket_data) {
151 maker_.AddSSLSocketDataProvider(ssl_socket_data.Pass()); 164 maker_.AddSSLSocketDataProvider(ssl_socket_data.Pass());
152 } 165 }
153 166
167 void WebSocketTestURLRequestContextHost::SetProxyConfig(
168 const std::string& proxy_rules) {
169 DCHECK(!url_request_context_initialized_);
170 proxy_service_.reset(ProxyService::CreateFixed(proxy_rules));
171 url_request_context_.set_proxy_service(proxy_service_.get());
172 }
173
154 TestURLRequestContext* 174 TestURLRequestContext*
155 WebSocketTestURLRequestContextHost::GetURLRequestContext() { 175 WebSocketTestURLRequestContextHost::GetURLRequestContext() {
156 if (!url_request_context_initialized_) { 176 if (!url_request_context_initialized_) {
157 url_request_context_.Init(); 177 url_request_context_.Init();
158 // A Network Delegate is required to make the URLRequest::Delegate work. 178 // A Network Delegate is required to make the URLRequest::Delegate work.
159 url_request_context_.set_network_delegate(&network_delegate_); 179 url_request_context_.set_network_delegate(&network_delegate_);
160 url_request_context_initialized_ = true; 180 url_request_context_initialized_ = true;
161 } 181 }
162 return &url_request_context_; 182 return &url_request_context_;
163 } 183 }
164 184
165 } // namespace net 185 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_test_util.h ('k') | sandbox/linux/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698