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

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

Issue 1244863003: Attach a SecurityStyle to each request in ResourceLoader (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update forgotten SerializeSecurityInfo() callsite Created 5 years, 5 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/common/ssl_status_serialization.h" 5 #include "content/common/ssl_status_serialization.h"
6 6
7 #include "net/ssl/ssl_connection_status_flags.h" 7 #include "net/ssl/ssl_connection_status_flags.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace content { 10 namespace content {
11 11
12 // Test that a valid serialized SSLStatus returns true on 12 // Test that a valid serialized SSLStatus returns true on
13 // deserialization and deserializes correctly. 13 // deserialization and deserializes correctly.
14 TEST(SSLStatusSerializationTest, DeserializeSerializedStatus) { 14 TEST(SSLStatusSerializationTest, DeserializeSerializedStatus) {
15 // Serialize dummy data and test that it deserializes properly. 15 // Serialize dummy data and test that it deserializes properly.
16 SecurityStyle security_style = SECURITY_STYLE_AUTHENTICATED;
16 int cert_id = 1; 17 int cert_id = 1;
17 net::CertStatus cert_status = net::CERT_STATUS_DATE_INVALID; 18 net::CertStatus cert_status = net::CERT_STATUS_DATE_INVALID;
18 int security_bits = 80; 19 int security_bits = 80;
19 int connection_status = net::SSL_CONNECTION_VERSION_TLS1_2; 20 int connection_status = net::SSL_CONNECTION_VERSION_TLS1_2;
20 SignedCertificateTimestampIDStatusList sct_list; 21 SignedCertificateTimestampIDStatusList sct_list;
21 SignedCertificateTimestampIDAndStatus sct(1, net::ct::SCT_STATUS_OK); 22 SignedCertificateTimestampIDAndStatus sct(1, net::ct::SCT_STATUS_OK);
22 sct_list.push_back(sct); 23 sct_list.push_back(sct);
23 24
24 std::string serialized = SerializeSecurityInfo( 25 std::string serialized =
25 cert_id, cert_status, security_bits, connection_status, sct_list); 26 SerializeSecurityInfo(security_style, cert_id, cert_status, security_bits,
27 connection_status, sct_list);
26 28
27 SSLStatus deserialized; 29 SSLStatus deserialized;
28 ASSERT_TRUE(DeserializeSecurityInfo(serialized, &deserialized)); 30 ASSERT_TRUE(DeserializeSecurityInfo(serialized, &deserialized));
31 EXPECT_EQ(security_style, deserialized.security_style);
29 EXPECT_EQ(cert_id, deserialized.cert_id); 32 EXPECT_EQ(cert_id, deserialized.cert_id);
30 EXPECT_EQ(cert_status, deserialized.cert_status); 33 EXPECT_EQ(cert_status, deserialized.cert_status);
31 EXPECT_EQ(security_bits, deserialized.security_bits); 34 EXPECT_EQ(security_bits, deserialized.security_bits);
32 EXPECT_EQ(connection_status, deserialized.connection_status); 35 EXPECT_EQ(connection_status, deserialized.connection_status);
33 EXPECT_EQ(sct_list.size(), 36 EXPECT_EQ(sct_list.size(),
34 deserialized.signed_certificate_timestamp_ids.size()); 37 deserialized.signed_certificate_timestamp_ids.size());
35 EXPECT_EQ(sct, deserialized.signed_certificate_timestamp_ids[0]); 38 EXPECT_EQ(sct, deserialized.signed_certificate_timestamp_ids[0]);
36 // Test that the other fields have default (initialized) values. 39 // Test that |content_status| has the default (initialized) value.
37 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, deserialized.security_style);
38 EXPECT_EQ(SSLStatus::NORMAL_CONTENT, deserialized.content_status); 40 EXPECT_EQ(SSLStatus::NORMAL_CONTENT, deserialized.content_status);
39 } 41 }
40 42
41 // Test that an invalid serialized SSLStatus returns false on 43 // Test that an invalid serialized SSLStatus returns false on
42 // deserialization. 44 // deserialization.
43 TEST(SSLStatusSerializationTest, DeserializeBogusStatus) { 45 TEST(SSLStatusSerializationTest, DeserializeBogusStatus) {
44 // Test that a failure to deserialize returns false and returns 46 // Test that a failure to deserialize returns false and returns
45 // initialized, default data. 47 // initialized, default data.
46 SSLStatus invalid_deserialized; 48 SSLStatus invalid_deserialized;
47 ASSERT_FALSE( 49 ASSERT_FALSE(
48 DeserializeSecurityInfo("not an SSLStatus", &invalid_deserialized)); 50 DeserializeSecurityInfo("not an SSLStatus", &invalid_deserialized));
49 51
50 SSLStatus default_ssl_status; 52 SSLStatus default_ssl_status;
51 EXPECT_EQ(default_ssl_status.security_style, 53 EXPECT_EQ(default_ssl_status.security_style,
52 invalid_deserialized.security_style); 54 invalid_deserialized.security_style);
53 EXPECT_EQ(default_ssl_status.cert_id, invalid_deserialized.cert_id); 55 EXPECT_EQ(default_ssl_status.cert_id, invalid_deserialized.cert_id);
54 EXPECT_EQ(default_ssl_status.cert_status, invalid_deserialized.cert_status); 56 EXPECT_EQ(default_ssl_status.cert_status, invalid_deserialized.cert_status);
55 EXPECT_EQ(default_ssl_status.security_bits, 57 EXPECT_EQ(default_ssl_status.security_bits,
56 invalid_deserialized.security_bits); 58 invalid_deserialized.security_bits);
57 EXPECT_EQ(default_ssl_status.connection_status, 59 EXPECT_EQ(default_ssl_status.connection_status,
58 invalid_deserialized.connection_status); 60 invalid_deserialized.connection_status);
59 EXPECT_EQ(default_ssl_status.content_status, 61 EXPECT_EQ(default_ssl_status.content_status,
60 invalid_deserialized.content_status); 62 invalid_deserialized.content_status);
61 EXPECT_EQ(0u, invalid_deserialized.signed_certificate_timestamp_ids.size()); 63 EXPECT_EQ(0u, invalid_deserialized.signed_certificate_timestamp_ids.size());
62 64
63 // Serialize a status with a bad |security_bits| value and test that 65 // Serialize a status with a bad |security_bits| value and test that
64 // deserializing it fails. 66 // deserializing it fails.
67 SecurityStyle security_style = SECURITY_STYLE_AUTHENTICATED;
65 int cert_id = 1; 68 int cert_id = 1;
66 net::CertStatus cert_status = net::CERT_STATUS_DATE_INVALID; 69 net::CertStatus cert_status = net::CERT_STATUS_DATE_INVALID;
67 // |security_bits| must be <-1. (-1 means the strength is unknown, and 70 // |security_bits| must be <-1. (-1 means the strength is unknown, and
68 // |0 means the connection is not encrypted). 71 // |0 means the connection is not encrypted).
69 int security_bits = -5; 72 int security_bits = -5;
70 int connection_status = net::SSL_CONNECTION_VERSION_TLS1_2; 73 int connection_status = net::SSL_CONNECTION_VERSION_TLS1_2;
71 SignedCertificateTimestampIDStatusList sct_list; 74 SignedCertificateTimestampIDStatusList sct_list;
72 SignedCertificateTimestampIDAndStatus sct(1, net::ct::SCT_STATUS_OK); 75 SignedCertificateTimestampIDAndStatus sct(1, net::ct::SCT_STATUS_OK);
73 sct_list.push_back(sct); 76 sct_list.push_back(sct);
74 77
75 std::string serialized = SerializeSecurityInfo( 78 std::string serialized =
76 cert_id, cert_status, security_bits, connection_status, sct_list); 79 SerializeSecurityInfo(security_style, cert_id, cert_status, security_bits,
80 connection_status, sct_list);
77 ASSERT_FALSE(DeserializeSecurityInfo(serialized, &invalid_deserialized)); 81 ASSERT_FALSE(DeserializeSecurityInfo(serialized, &invalid_deserialized));
78 82
79 EXPECT_EQ(default_ssl_status.security_style, 83 EXPECT_EQ(default_ssl_status.security_style,
80 invalid_deserialized.security_style); 84 invalid_deserialized.security_style);
81 EXPECT_EQ(default_ssl_status.cert_id, invalid_deserialized.cert_id); 85 EXPECT_EQ(default_ssl_status.cert_id, invalid_deserialized.cert_id);
82 EXPECT_EQ(default_ssl_status.cert_status, invalid_deserialized.cert_status); 86 EXPECT_EQ(default_ssl_status.cert_status, invalid_deserialized.cert_status);
83 EXPECT_EQ(default_ssl_status.security_bits, 87 EXPECT_EQ(default_ssl_status.security_bits,
84 invalid_deserialized.security_bits); 88 invalid_deserialized.security_bits);
85 EXPECT_EQ(default_ssl_status.connection_status, 89 EXPECT_EQ(default_ssl_status.connection_status,
86 invalid_deserialized.connection_status); 90 invalid_deserialized.connection_status);
87 EXPECT_EQ(default_ssl_status.content_status, 91 EXPECT_EQ(default_ssl_status.content_status,
88 invalid_deserialized.content_status); 92 invalid_deserialized.content_status);
89 EXPECT_EQ(0u, invalid_deserialized.signed_certificate_timestamp_ids.size()); 93 EXPECT_EQ(0u, invalid_deserialized.signed_certificate_timestamp_ids.size());
90 } 94 }
91 95
92 } // namespace 96 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698