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

Side by Side Diff: net/http/http_network_transaction_ssl_unittest.cc

Issue 1781003003: Implement referred Token Bindings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add #ifdef for OS_ANDROID in TokenBindingURLRequestTest Created 4 years, 8 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/http/http_network_transaction.cc ('k') | net/http/http_request_info.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "net/base/request_priority.h" 10 #include "net/base/request_priority.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 SSLSocketDataProvider ssl_data(ASYNC, OK); 165 SSLSocketDataProvider ssl_data(ASYNC, OK);
166 ssl_data.token_binding_negotiated = true; 166 ssl_data.token_binding_negotiated = true;
167 ssl_data.token_binding_key_param = TB_PARAM_ECDSAP256; 167 ssl_data.token_binding_key_param = TB_PARAM_ECDSAP256;
168 mock_socket_factory_.AddSSLSocketDataProvider(&ssl_data); 168 mock_socket_factory_.AddSSLSocketDataProvider(&ssl_data);
169 MockRead mock_reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n"), 169 MockRead mock_reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n"),
170 MockRead(SYNCHRONOUS, OK)}; 170 MockRead(SYNCHRONOUS, OK)};
171 StaticSocketDataProvider data(mock_reads, arraysize(mock_reads), NULL, 0); 171 StaticSocketDataProvider data(mock_reads, arraysize(mock_reads), NULL, 0);
172 mock_socket_factory_.AddSocketDataProvider(&data); 172 mock_socket_factory_.AddSocketDataProvider(&data);
173 173
174 HttpNetworkSession session(session_params_); 174 HttpNetworkSession session(session_params_);
175 HttpNetworkTransaction trans(DEFAULT_PRIORITY, &session); 175 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, &session);
176 176
177 TestCompletionCallback callback; 177 TestCompletionCallback callback;
178 int rv = 178 int rv = callback.GetResult(
179 callback.GetResult(trans.Start(GetRequestInfo("https://www.example.com/"), 179 trans1.Start(GetRequestInfo("https://www.example.com/"),
180 callback.callback(), BoundNetLog())); 180 callback.callback(), BoundNetLog()));
181 EXPECT_EQ(OK, rv); 181 EXPECT_EQ(OK, rv);
182 182
183 HttpRequestHeaders headers1; 183 HttpRequestHeaders headers1;
184 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers1)); 184 ASSERT_TRUE(trans1.GetFullRequestHeaders(&headers1));
185 std::string token_binding_header1; 185 std::string token_binding_header1;
186 EXPECT_TRUE(headers1.GetHeader(HttpRequestHeaders::kTokenBinding, 186 EXPECT_TRUE(headers1.GetHeader(HttpRequestHeaders::kTokenBinding,
187 &token_binding_header1)); 187 &token_binding_header1));
188 188
189 // Send a second request and verify that the token binding header is the same 189 // Send a second request and verify that the token binding header is the same
190 // as in the first request. 190 // as in the first request.
191 mock_socket_factory_.AddSSLSocketDataProvider(&ssl_data); 191 mock_socket_factory_.AddSSLSocketDataProvider(&ssl_data);
192 StaticSocketDataProvider data2(mock_reads, arraysize(mock_reads), NULL, 0); 192 StaticSocketDataProvider data2(mock_reads, arraysize(mock_reads), NULL, 0);
193 mock_socket_factory_.AddSocketDataProvider(&data2); 193 mock_socket_factory_.AddSocketDataProvider(&data2);
194 HttpNetworkTransaction trans2(DEFAULT_PRIORITY, &session);
194 195
195 rv = 196 rv = callback.GetResult(
196 callback.GetResult(trans.Start(GetRequestInfo("https://www.example.com/"), 197 trans2.Start(GetRequestInfo("https://www.example.com/"),
197 callback.callback(), BoundNetLog())); 198 callback.callback(), BoundNetLog()));
198 EXPECT_EQ(OK, rv); 199 EXPECT_EQ(OK, rv);
199 200
200 HttpRequestHeaders headers2; 201 HttpRequestHeaders headers2;
201 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers2)); 202 ASSERT_TRUE(trans2.GetFullRequestHeaders(&headers2));
202 std::string token_binding_header2; 203 std::string token_binding_header2;
203 EXPECT_TRUE(headers2.GetHeader(HttpRequestHeaders::kTokenBinding, 204 EXPECT_TRUE(headers2.GetHeader(HttpRequestHeaders::kTokenBinding,
204 &token_binding_header2)); 205 &token_binding_header2));
205 206
206 EXPECT_EQ(token_binding_header1, token_binding_header2); 207 EXPECT_EQ(token_binding_header1, token_binding_header2);
207 } 208 }
209
210 TEST_F(HttpNetworkTransactionSSLTest, NoTokenBindingOverHttp) {
211 ssl_config_service_ = new TokenBindingSSLConfigService;
212 session_params_.ssl_config_service = ssl_config_service_.get();
213 ChannelIDService channel_id_service(new DefaultChannelIDStore(NULL),
214 base::ThreadTaskRunnerHandle::Get());
215 session_params_.channel_id_service = &channel_id_service;
216
217 SSLSocketDataProvider ssl_data(ASYNC, OK);
218 ssl_data.token_binding_negotiated = true;
219 ssl_data.token_binding_key_param = TB_PARAM_ECDSAP256;
220 mock_socket_factory_.AddSSLSocketDataProvider(&ssl_data);
221 MockRead mock_reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n"),
222 MockRead(SYNCHRONOUS, OK)};
223 StaticSocketDataProvider data(mock_reads, arraysize(mock_reads), NULL, 0);
224 mock_socket_factory_.AddSocketDataProvider(&data);
225
226 HttpNetworkSession session(session_params_);
227 HttpNetworkTransaction trans(DEFAULT_PRIORITY, &session);
228
229 TestCompletionCallback callback;
230 int rv =
231 callback.GetResult(trans.Start(GetRequestInfo("http://www.example.com/"),
232 callback.callback(), BoundNetLog()));
233 EXPECT_EQ(OK, rv);
234
235 HttpRequestHeaders headers;
236 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
237 std::string token_binding_header;
238 EXPECT_FALSE(headers.GetHeader(HttpRequestHeaders::kTokenBinding,
239 &token_binding_header));
240 }
208 #endif // !defined(OS_IOS) 241 #endif // !defined(OS_IOS)
209 242
210 } // namespace net 243 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_transaction.cc ('k') | net/http/http_request_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698