1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // Copyright 2019 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "net/base/net_errors.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace net {
- namespace {
- TEST(NetErrorsTest, IsCertificateError) {
- // Positive tests.
- EXPECT_TRUE(IsCertificateError(ERR_CERT_AUTHORITY_INVALID));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_COMMON_NAME_INVALID));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_CONTAINS_ERRORS));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_DATE_INVALID));
- EXPECT_TRUE(IsCertificateError(ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_INVALID));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_NAME_CONSTRAINT_VIOLATION));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_NON_UNIQUE_NAME));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_NO_REVOCATION_MECHANISM));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_REVOKED));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_SYMANTEC_LEGACY));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_UNABLE_TO_CHECK_REVOCATION));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_VALIDITY_TOO_LONG));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_WEAK_KEY));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_WEAK_SIGNATURE_ALGORITHM));
- EXPECT_TRUE(IsCertificateError(ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN));
- EXPECT_TRUE(IsCertificateError(ERR_CERT_KNOWN_INTERCEPTION_BLOCKED));
- // Negative tests.
- EXPECT_FALSE(IsCertificateError(ERR_SSL_PROTOCOL_ERROR));
- EXPECT_FALSE(IsCertificateError(ERR_SSL_KEY_USAGE_INCOMPATIBLE));
- EXPECT_FALSE(
- IsCertificateError(ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED));
- EXPECT_FALSE(IsCertificateError(ERR_QUIC_CERT_ROOT_NOT_KNOWN));
- EXPECT_FALSE(IsCertificateError(ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY));
- EXPECT_FALSE(IsCertificateError(ERR_FAILED));
- EXPECT_FALSE(IsCertificateError(OK));
- // Trigger a failure whenever ERR_CERT_END is changed, forcing developers to
- // update this test.
- EXPECT_EQ(ERR_CERT_END, -219)
- << "It looks like you added a new certificate error code ("
- << ErrorToString(ERR_CERT_END + 1)
- << ").\n"
- "\n"
- "Because this code is between ERR_CERT_BEGIN and ERR_CERT_END, it "
- "will be matched by net::IsCertificateError().\n"
- "\n"
- " (1) Please add a new test case to "
- "NetErrorsTest.IsCertificateError()."
- "\n"
- " (2) Review the existing consumers of IsCertificateError(). "
- "//content for instance has specialized handling of "
- "IsCertificateError() that may need to be updated.";
- }
- TEST(NetErrorsTest, IsClientCertificateError) {
- // Positive tests.
- EXPECT_TRUE(IsClientCertificateError(ERR_BAD_SSL_CLIENT_AUTH_CERT));
- EXPECT_TRUE(
- IsClientCertificateError(ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED));
- EXPECT_TRUE(
- IsClientCertificateError(ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY));
- EXPECT_TRUE(IsClientCertificateError(ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED));
- EXPECT_TRUE(
- IsClientCertificateError(ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS));
- // Negative tests.
- EXPECT_FALSE(IsClientCertificateError(ERR_CERT_REVOKED));
- EXPECT_FALSE(IsClientCertificateError(ERR_SSL_PROTOCOL_ERROR));
- EXPECT_FALSE(IsClientCertificateError(ERR_CERT_WEAK_KEY));
- }
- } // namespace
- } // namespace net
|