net_errors_unittest.cc 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "net/base/net_errors.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace net {
  7. namespace {
  8. TEST(NetErrorsTest, IsCertificateError) {
  9. // Positive tests.
  10. EXPECT_TRUE(IsCertificateError(ERR_CERT_AUTHORITY_INVALID));
  11. EXPECT_TRUE(IsCertificateError(ERR_CERT_COMMON_NAME_INVALID));
  12. EXPECT_TRUE(IsCertificateError(ERR_CERT_CONTAINS_ERRORS));
  13. EXPECT_TRUE(IsCertificateError(ERR_CERT_DATE_INVALID));
  14. EXPECT_TRUE(IsCertificateError(ERR_CERTIFICATE_TRANSPARENCY_REQUIRED));
  15. EXPECT_TRUE(IsCertificateError(ERR_CERT_INVALID));
  16. EXPECT_TRUE(IsCertificateError(ERR_CERT_NAME_CONSTRAINT_VIOLATION));
  17. EXPECT_TRUE(IsCertificateError(ERR_CERT_NON_UNIQUE_NAME));
  18. EXPECT_TRUE(IsCertificateError(ERR_CERT_NO_REVOCATION_MECHANISM));
  19. EXPECT_TRUE(IsCertificateError(ERR_CERT_REVOKED));
  20. EXPECT_TRUE(IsCertificateError(ERR_CERT_SYMANTEC_LEGACY));
  21. EXPECT_TRUE(IsCertificateError(ERR_CERT_UNABLE_TO_CHECK_REVOCATION));
  22. EXPECT_TRUE(IsCertificateError(ERR_CERT_VALIDITY_TOO_LONG));
  23. EXPECT_TRUE(IsCertificateError(ERR_CERT_WEAK_KEY));
  24. EXPECT_TRUE(IsCertificateError(ERR_CERT_WEAK_SIGNATURE_ALGORITHM));
  25. EXPECT_TRUE(IsCertificateError(ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN));
  26. EXPECT_TRUE(IsCertificateError(ERR_CERT_KNOWN_INTERCEPTION_BLOCKED));
  27. // Negative tests.
  28. EXPECT_FALSE(IsCertificateError(ERR_SSL_PROTOCOL_ERROR));
  29. EXPECT_FALSE(IsCertificateError(ERR_SSL_KEY_USAGE_INCOMPATIBLE));
  30. EXPECT_FALSE(
  31. IsCertificateError(ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED));
  32. EXPECT_FALSE(IsCertificateError(ERR_QUIC_CERT_ROOT_NOT_KNOWN));
  33. EXPECT_FALSE(IsCertificateError(ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY));
  34. EXPECT_FALSE(IsCertificateError(ERR_FAILED));
  35. EXPECT_FALSE(IsCertificateError(OK));
  36. // Trigger a failure whenever ERR_CERT_END is changed, forcing developers to
  37. // update this test.
  38. EXPECT_EQ(ERR_CERT_END, -219)
  39. << "It looks like you added a new certificate error code ("
  40. << ErrorToString(ERR_CERT_END + 1)
  41. << ").\n"
  42. "\n"
  43. "Because this code is between ERR_CERT_BEGIN and ERR_CERT_END, it "
  44. "will be matched by net::IsCertificateError().\n"
  45. "\n"
  46. " (1) Please add a new test case to "
  47. "NetErrorsTest.IsCertificateError()."
  48. "\n"
  49. " (2) Review the existing consumers of IsCertificateError(). "
  50. "//content for instance has specialized handling of "
  51. "IsCertificateError() that may need to be updated.";
  52. }
  53. TEST(NetErrorsTest, IsClientCertificateError) {
  54. // Positive tests.
  55. EXPECT_TRUE(IsClientCertificateError(ERR_BAD_SSL_CLIENT_AUTH_CERT));
  56. EXPECT_TRUE(
  57. IsClientCertificateError(ERR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED));
  58. EXPECT_TRUE(
  59. IsClientCertificateError(ERR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY));
  60. EXPECT_TRUE(IsClientCertificateError(ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED));
  61. EXPECT_TRUE(
  62. IsClientCertificateError(ERR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS));
  63. // Negative tests.
  64. EXPECT_FALSE(IsClientCertificateError(ERR_CERT_REVOKED));
  65. EXPECT_FALSE(IsClientCertificateError(ERR_SSL_PROTOCOL_ERROR));
  66. EXPECT_FALSE(IsClientCertificateError(ERR_CERT_WEAK_KEY));
  67. }
  68. } // namespace
  69. } // namespace net