| // Copyright 2014 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/third_party/quiche/src/quic/core/quic_server_id.h" | |
| #include <string> | |
| #include "net/third_party/quiche/src/quic/platform/api/quic_estimate_memory_usage.h" | |
| #include "net/third_party/quiche/src/quic/platform/api/quic_test.h" | |
| namespace quic { | |
| namespace { | |
| class QuicServerIdTest : public QuicTest {}; | |
| TEST_F(QuicServerIdTest, Constructor) { | |
| QuicServerId google_server_id("google.com", 10, false); | |
| EXPECT_EQ("google.com", google_server_id.host()); | |
| EXPECT_EQ(10, google_server_id.port()); | |
| EXPECT_FALSE(google_server_id.privacy_mode_enabled()); | |
| QuicServerId private_server_id("mail.google.com", 12, true); | |
| EXPECT_EQ("mail.google.com", private_server_id.host()); | |
| EXPECT_EQ(12, private_server_id.port()); | |
| EXPECT_TRUE(private_server_id.privacy_mode_enabled()); | |
| } | |
| TEST_F(QuicServerIdTest, LessThan) { | |
| QuicServerId a_10_https("a.com", 10, false); | |
| QuicServerId a_11_https("a.com", 11, false); | |
| QuicServerId b_10_https("b.com", 10, false); | |
| QuicServerId b_11_https("b.com", 11, false); | |
| QuicServerId a_10_https_private("a.com", 10, true); | |
| QuicServerId a_11_https_private("a.com", 11, true); | |
| QuicServerId b_10_https_private("b.com", 10, true); | |
| QuicServerId b_11_https_private("b.com", 11, true); | |
| // Test combinations of host, port, and privacy being same on left and | |
| // right side of less than. | |
| EXPECT_FALSE(a_10_https < a_10_https); | |
| EXPECT_TRUE(a_10_https < a_10_https_private); | |
| EXPECT_FALSE(a_10_https_private < a_10_https); | |
| EXPECT_FALSE(a_10_https_private < a_10_https_private); | |
| // Test with either host, port or https being different on left and right side | |
| // of less than. | |
| bool left_privacy; | |
| bool right_privacy; | |
| for (int i = 0; i < 4; i++) { | |
| left_privacy = (i / 2 == 0); | |
| right_privacy = (i % 2 == 0); | |
| QuicServerId a_10_https_left_private("a.com", 10, left_privacy); | |
| QuicServerId a_10_https_right_private("a.com", 10, right_privacy); | |
| QuicServerId a_11_https_left_private("a.com", 11, left_privacy); | |
| QuicServerId a_11_https_right_private("a.com", 11, right_privacy); | |
| QuicServerId b_10_https_left_private("b.com", 10, left_privacy); | |
| QuicServerId b_10_https_right_private("b.com", 10, right_privacy); | |
| QuicServerId b_11_https_left_private("b.com", 11, left_privacy); | |
| QuicServerId b_11_https_right_private("b.com", 11, right_privacy); | |
| EXPECT_TRUE(a_10_https_left_private < a_11_https_right_private); | |
| EXPECT_TRUE(a_10_https_left_private < b_10_https_right_private); | |
| EXPECT_TRUE(a_10_https_left_private < b_11_https_right_private); | |
| EXPECT_FALSE(a_11_https_left_private < a_10_https_right_private); | |
| EXPECT_FALSE(a_11_https_left_private < b_10_https_right_private); | |
| EXPECT_TRUE(a_11_https_left_private < b_11_https_right_private); | |
| EXPECT_FALSE(b_10_https_left_private < a_10_https_right_private); | |
| EXPECT_TRUE(b_10_https_left_private < a_11_https_right_private); | |
| EXPECT_TRUE(b_10_https_left_private < b_11_https_right_private); | |
| EXPECT_FALSE(b_11_https_left_private < a_10_https_right_private); | |
| EXPECT_FALSE(b_11_https_left_private < a_11_https_right_private); | |
| EXPECT_FALSE(b_11_https_left_private < b_10_https_right_private); | |
| } | |
| } | |
| TEST_F(QuicServerIdTest, Equals) { | |
| bool left_privacy; | |
| bool right_privacy; | |
| for (int i = 0; i < 2; i++) { | |
| left_privacy = right_privacy = (i == 0); | |
| QuicServerId a_10_https_right_private("a.com", 10, right_privacy); | |
| QuicServerId a_11_https_right_private("a.com", 11, right_privacy); | |
| QuicServerId b_10_https_right_private("b.com", 10, right_privacy); | |
| QuicServerId b_11_https_right_private("b.com", 11, right_privacy); | |
| QuicServerId new_a_10_https_left_private("a.com", 10, left_privacy); | |
| QuicServerId new_a_11_https_left_private("a.com", 11, left_privacy); | |
| QuicServerId new_b_10_https_left_private("b.com", 10, left_privacy); | |
| QuicServerId new_b_11_https_left_private("b.com", 11, left_privacy); | |
| EXPECT_EQ(new_a_10_https_left_private, a_10_https_right_private); | |
| EXPECT_EQ(new_a_11_https_left_private, a_11_https_right_private); | |
| EXPECT_EQ(new_b_10_https_left_private, b_10_https_right_private); | |
| EXPECT_EQ(new_b_11_https_left_private, b_11_https_right_private); | |
| } | |
| for (int i = 0; i < 2; i++) { | |
| right_privacy = (i == 0); | |
| QuicServerId a_10_https_right_private("a.com", 10, right_privacy); | |
| QuicServerId a_11_https_right_private("a.com", 11, right_privacy); | |
| QuicServerId b_10_https_right_private("b.com", 10, right_privacy); | |
| QuicServerId b_11_https_right_private("b.com", 11, right_privacy); | |
| QuicServerId new_a_10_https_left_private("a.com", 10, false); | |
| EXPECT_FALSE(new_a_10_https_left_private == a_11_https_right_private); | |
| EXPECT_FALSE(new_a_10_https_left_private == b_10_https_right_private); | |
| EXPECT_FALSE(new_a_10_https_left_private == b_11_https_right_private); | |
| } | |
| QuicServerId a_10_https_private("a.com", 10, true); | |
| QuicServerId new_a_10_https_no_private("a.com", 10, false); | |
| EXPECT_FALSE(new_a_10_https_no_private == a_10_https_private); | |
| } | |
| TEST_F(QuicServerIdTest, EstimateMemoryUsage) { | |
| std::string host = "this is a rather very quite long hostname"; | |
| uint16_t port = 10; | |
| bool privacy_mode_enabled = true; | |
| QuicServerId server_id(host, port, privacy_mode_enabled); | |
| EXPECT_EQ(QuicEstimateMemoryUsage(host), QuicEstimateMemoryUsage(server_id)); | |
| } | |
| } // namespace | |
| } // namespace quic |