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

Side by Side Diff: content/common/common_param_traits_unittest.cc

Issue 2817033002: Plumb the net::SSLInfo to the browser process when it's using the network service. (Closed)
Patch Set: add net::SSLInfo test Created 3 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 | « content/child/url_loader_client_impl_unittest.cc ('k') | content/common/resource_messages.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 "content/public/common/common_param_traits.h" 5 #include "content/public/common/common_param_traits.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "content/common/resource_messages.h"
16 #include "content/public/common/content_constants.h" 17 #include "content/public/common/content_constants.h"
17 #include "ipc/ipc_message.h" 18 #include "ipc/ipc_message.h"
18 #include "ipc/ipc_message_utils.h" 19 #include "ipc/ipc_message_utils.h"
19 #include "net/base/host_port_pair.h" 20 #include "net/base/host_port_pair.h"
21 #include "net/cert/ct_policy_status.h"
22 #include "net/ssl/ssl_info.h"
23 #include "net/test/cert_test_util.h"
24 #include "net/test/test_data_directory.h"
20 #include "printing/backend/print_backend.h" 25 #include "printing/backend/print_backend.h"
21 #include "printing/page_range.h" 26 #include "printing/page_range.h"
22 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
23 #include "third_party/skia/include/core/SkBitmap.h" 28 #include "third_party/skia/include/core/SkBitmap.h"
24 #include "ui/gfx/geometry/rect.h" 29 #include "ui/gfx/geometry/rect.h"
25 #include "ui/gfx/ipc/gfx_param_traits.h" 30 #include "ui/gfx/ipc/gfx_param_traits.h"
26 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" 31 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
27 32
28 // Tests std::pair serialization 33 // Tests std::pair serialization
29 TEST(IPCMessageTest, Pair) { 34 TEST(IPCMessageTest, Pair) {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 148
144 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); 149 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
145 IPC::ParamTraits<net::HostPortPair>::Write(&msg, input); 150 IPC::ParamTraits<net::HostPortPair>::Write(&msg, input);
146 151
147 net::HostPortPair output; 152 net::HostPortPair output;
148 base::PickleIterator iter(msg); 153 base::PickleIterator iter(msg);
149 EXPECT_TRUE(IPC::ParamTraits<net::HostPortPair>::Read(&msg, &iter, &output)); 154 EXPECT_TRUE(IPC::ParamTraits<net::HostPortPair>::Read(&msg, &iter, &output));
150 EXPECT_EQ(input.host(), output.host()); 155 EXPECT_EQ(input.host(), output.host());
151 EXPECT_EQ(input.port(), output.port()); 156 EXPECT_EQ(input.port(), output.port());
152 } 157 }
158
159 // Tests net::SSLInfo serialization
160 TEST(IPCMessageTest, SSLInfo) {
161 // Build a SSLInfo. Avoid false for booleans as that's the default value.
162 net::SSLInfo in;
163 in.cert =
164 net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem");
165 in.unverified_cert = net::ImportCertFromFile(net::GetTestCertsDirectory(),
166 "ok_cert_by_intermediate.pem");
167 in.cert_status = net::CERT_STATUS_COMMON_NAME_INVALID;
168 in.security_bits = 0x100;
169 in.key_exchange_group = 1024;
170 in.connection_status = 0x300039; // TLS_DHE_RSA_WITH_AES_256_CBC_SHA
171 in.is_issued_by_known_root = true;
172 in.pkp_bypassed = true;
173 in.client_cert_sent = true;
174 in.channel_id_sent = true;
175 in.token_binding_negotiated = true;
176 in.token_binding_key_param = net::TB_PARAM_ECDSAP256;
177 in.handshake_type = net::SSLInfo::HANDSHAKE_FULL;
178 const net::SHA256HashValue kCertPublicKeyHashValue = {{0x01, 0x02}};
179 in.public_key_hashes.push_back(net::HashValue(kCertPublicKeyHashValue));
180 in.pinning_failure_log = "foo";
181
182 scoped_refptr<net::ct::SignedCertificateTimestamp> sct(
183 new net::ct::SignedCertificateTimestamp());
184 sct->version = net::ct::SignedCertificateTimestamp::V1;
185 sct->log_id = "unknown_log_id";
186 sct->extensions = "extensions";
187 sct->timestamp = base::Time::Now();
188 sct->signature.hash_algorithm = net::ct::DigitallySigned::HASH_ALGO_MD5;
189 sct->signature.signature_algorithm = net::ct::DigitallySigned::SIG_ALGO_RSA;
190 sct->signature.signature_data = "signature";
191 sct->origin = net::ct::SignedCertificateTimestamp::SCT_EMBEDDED;
192 in.signed_certificate_timestamps.push_back(
193 net::SignedCertificateTimestampAndStatus(
194 sct, net::ct::SCT_STATUS_LOG_UNKNOWN));
195
196 in.ct_compliance_details_available = true;
197 in.ct_ev_policy_compliance =
198 net::ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_WHITELIST;
199 in.ct_cert_policy_compliance =
200 net::ct::CertPolicyCompliance::CERT_POLICY_NOT_ENOUGH_SCTS;
201 in.ocsp_result.response_status = net::OCSPVerifyResult::PROVIDED;
202 in.ocsp_result.revocation_status = net::OCSPRevocationStatus::REVOKED;
203
204 // Now serialize and deserialize.
205 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
206 IPC::ParamTraits<net::SSLInfo>::Write(&msg, in);
207
208 net::SSLInfo out;
209 base::PickleIterator iter(msg);
210 EXPECT_TRUE(IPC::ParamTraits<net::SSLInfo>::Read(&msg, &iter, &out));
211
212 // Now verify they're equal.
213 ASSERT_TRUE(in.cert->Equals(out.cert.get()));
214 ASSERT_TRUE(in.unverified_cert->Equals(out.unverified_cert.get()));
215 ASSERT_EQ(in.security_bits, out.security_bits);
216 ASSERT_EQ(in.key_exchange_group, out.key_exchange_group);
217 ASSERT_EQ(in.connection_status, out.connection_status);
218 ASSERT_EQ(in.is_issued_by_known_root, out.is_issued_by_known_root);
219 ASSERT_EQ(in.pkp_bypassed, out.pkp_bypassed);
220 ASSERT_EQ(in.client_cert_sent, out.client_cert_sent);
221 ASSERT_EQ(in.channel_id_sent, out.channel_id_sent);
222 ASSERT_EQ(in.token_binding_negotiated, out.token_binding_negotiated);
223 ASSERT_EQ(in.token_binding_key_param, out.token_binding_key_param);
224 ASSERT_EQ(in.handshake_type, out.handshake_type);
225 ASSERT_EQ(in.public_key_hashes, out.public_key_hashes);
226 ASSERT_EQ(in.pinning_failure_log, out.pinning_failure_log);
227
228 ASSERT_EQ(in.signed_certificate_timestamps.size(),
229 out.signed_certificate_timestamps.size());
230 ASSERT_EQ(in.signed_certificate_timestamps[0].status,
231 out.signed_certificate_timestamps[0].status);
232 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->version,
233 out.signed_certificate_timestamps[0].sct->version);
234 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->log_id,
235 out.signed_certificate_timestamps[0].sct->log_id);
236 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->timestamp,
237 out.signed_certificate_timestamps[0].sct->timestamp);
238 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->extensions,
239 out.signed_certificate_timestamps[0].sct->extensions);
240 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->signature.hash_algorithm,
241 out.signed_certificate_timestamps[0].sct->signature.hash_algorithm);
242 ASSERT_EQ(
243 in.signed_certificate_timestamps[0].sct->signature.signature_algorithm,
244 out.signed_certificate_timestamps[0].sct->signature.signature_algorithm);
245 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->signature.signature_data,
246 out.signed_certificate_timestamps[0].sct->signature.signature_data);
247 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->origin,
248 out.signed_certificate_timestamps[0].sct->origin);
249 ASSERT_EQ(in.signed_certificate_timestamps[0].sct->log_description,
250 out.signed_certificate_timestamps[0].sct->log_description);
251
252 ASSERT_EQ(in.ct_compliance_details_available,
253 out.ct_compliance_details_available);
254 ASSERT_EQ(in.ct_ev_policy_compliance, out.ct_ev_policy_compliance);
255 ASSERT_EQ(in.ct_cert_policy_compliance, out.ct_cert_policy_compliance);
256 ASSERT_EQ(in.ocsp_result, out.ocsp_result);
257 }
OLDNEW
« no previous file with comments | « content/child/url_loader_client_impl_unittest.cc ('k') | content/common/resource_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698