quic_address_mismatch_test.cc 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // Copyright 2014 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/quic/quic_address_mismatch.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace net::test {
  7. // Test all cases of the GetAddressMismatch function.
  8. TEST(QuicAddressMismatchTest, GetAddressMismatch) {
  9. IPAddress ip4_1;
  10. IPAddress ip4_2;
  11. IPAddress ip6_1;
  12. IPAddress ip6_2;
  13. IPAddress ip4_mapped_1;
  14. IPAddress ip4_mapped_2;
  15. ASSERT_TRUE(ip4_1.AssignFromIPLiteral("1.2.3.4"));
  16. ASSERT_TRUE(ip4_2.AssignFromIPLiteral("5.6.7.8"));
  17. ASSERT_TRUE(ip6_1.AssignFromIPLiteral("1234::1"));
  18. ASSERT_TRUE(ip6_2.AssignFromIPLiteral("1234::2"));
  19. ip4_mapped_1 = ConvertIPv4ToIPv4MappedIPv6(ip4_1);
  20. ip4_mapped_2 = ConvertIPv4ToIPv4MappedIPv6(ip4_2);
  21. ASSERT_NE(ip4_1, ip4_2);
  22. ASSERT_NE(ip6_1, ip6_2);
  23. ASSERT_NE(ip4_mapped_1, ip4_mapped_2);
  24. EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint()));
  25. EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(), IPEndPoint(ip4_1, 443)));
  26. EXPECT_EQ(-1, GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint()));
  27. EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
  28. GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_1, 443)));
  29. EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
  30. GetAddressMismatch(IPEndPoint(ip4_1, 443),
  31. IPEndPoint(ip4_mapped_1, 443)));
  32. EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V4_V4,
  33. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
  34. IPEndPoint(ip4_mapped_1, 443)));
  35. EXPECT_EQ(QUIC_ADDRESS_AND_PORT_MATCH_V6_V6,
  36. GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip6_1, 443)));
  37. EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
  38. GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_1, 443)));
  39. EXPECT_EQ(
  40. QUIC_PORT_MISMATCH_V4_V4,
  41. GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_1, 443)));
  42. EXPECT_EQ(QUIC_PORT_MISMATCH_V4_V4,
  43. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
  44. IPEndPoint(ip4_mapped_1, 443)));
  45. EXPECT_EQ(QUIC_PORT_MISMATCH_V6_V6,
  46. GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_1, 443)));
  47. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
  48. GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip4_2, 443)));
  49. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
  50. GetAddressMismatch(IPEndPoint(ip4_1, 443),
  51. IPEndPoint(ip4_mapped_2, 443)));
  52. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
  53. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
  54. IPEndPoint(ip4_mapped_2, 443)));
  55. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
  56. GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_2, 443)));
  57. EXPECT_EQ(
  58. QUIC_ADDRESS_MISMATCH_V4_V4,
  59. GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip4_mapped_2, 443)));
  60. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V4,
  61. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80),
  62. IPEndPoint(ip4_mapped_2, 443)));
  63. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6,
  64. GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip6_2, 443)));
  65. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V6,
  66. GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip6_2, 443)));
  67. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
  68. GetAddressMismatch(IPEndPoint(ip4_1, 443), IPEndPoint(ip6_1, 443)));
  69. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
  70. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 443),
  71. IPEndPoint(ip6_1, 443)));
  72. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V4_V6,
  73. GetAddressMismatch(IPEndPoint(ip4_1, 80), IPEndPoint(ip6_1, 443)));
  74. EXPECT_EQ(
  75. QUIC_ADDRESS_MISMATCH_V4_V6,
  76. GetAddressMismatch(IPEndPoint(ip4_mapped_1, 80), IPEndPoint(ip6_1, 443)));
  77. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
  78. GetAddressMismatch(IPEndPoint(ip6_1, 443), IPEndPoint(ip4_1, 443)));
  79. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
  80. GetAddressMismatch(IPEndPoint(ip6_1, 443),
  81. IPEndPoint(ip4_mapped_1, 443)));
  82. EXPECT_EQ(QUIC_ADDRESS_MISMATCH_V6_V4,
  83. GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_1, 443)));
  84. EXPECT_EQ(
  85. QUIC_ADDRESS_MISMATCH_V6_V4,
  86. GetAddressMismatch(IPEndPoint(ip6_1, 80), IPEndPoint(ip4_mapped_1, 443)));
  87. }
  88. } // namespace net::test