// 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/quic/quic_server_id.h" #include "testing/gtest/include/gtest/gtest.h" using std::string; namespace net { namespace { TEST(QuicServerIdTest, ToString) { HostPortPair google_host_port_pair("google.com", 10); QuicServerId google_server_id(google_host_port_pair, PRIVACY_MODE_DISABLED); string google_server_id_str = google_server_id.ToString(); EXPECT_EQ("https://google.com:10", google_server_id_str); QuicServerId private_server_id(google_host_port_pair, PRIVACY_MODE_ENABLED); string private_server_id_str = private_server_id.ToString(); EXPECT_EQ("https://google.com:10/private", private_server_id_str); } TEST(QuicServerIdTest, LessThan) { QuicServerId a_10_https(HostPortPair("a.com", 10), PRIVACY_MODE_DISABLED); QuicServerId a_11_https(HostPortPair("a.com", 11), PRIVACY_MODE_DISABLED); QuicServerId b_10_https(HostPortPair("b.com", 10), PRIVACY_MODE_DISABLED); QuicServerId b_11_https(HostPortPair("b.com", 11), PRIVACY_MODE_DISABLED); QuicServerId a_10_https_private(HostPortPair("a.com", 10), PRIVACY_MODE_ENABLED); QuicServerId a_11_https_private(HostPortPair("a.com", 11), PRIVACY_MODE_ENABLED); QuicServerId b_10_https_private(HostPortPair("b.com", 10), PRIVACY_MODE_ENABLED); QuicServerId b_11_https_private(HostPortPair("b.com", 11), PRIVACY_MODE_ENABLED); // 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. PrivacyMode left_privacy; PrivacyMode right_privacy; for (int i = 0; i < 4; i++) { left_privacy = static_cast(i / 2); right_privacy = static_cast(i % 2); QuicServerId a_10_https_left_private(HostPortPair("a.com", 10), left_privacy); QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), right_privacy); QuicServerId a_11_https_left_private(HostPortPair("a.com", 11), left_privacy); QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), right_privacy); QuicServerId b_10_https_left_private(HostPortPair("b.com", 10), left_privacy); QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), right_privacy); QuicServerId b_11_https_left_private(HostPortPair("b.com", 11), left_privacy); QuicServerId b_11_https_right_private(HostPortPair("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(QuicServerIdTest, Equals) { PrivacyMode left_privacy; PrivacyMode right_privacy; for (int i = 0; i < 2; i++) { left_privacy = right_privacy = static_cast(i); QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), right_privacy); QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), right_privacy); QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), right_privacy); QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), right_privacy); QuicServerId new_a_10_https_left_private(HostPortPair("a.com", 10), left_privacy); QuicServerId new_a_11_https_left_private(HostPortPair("a.com", 11), left_privacy); QuicServerId new_b_10_https_left_private(HostPortPair("b.com", 10), left_privacy); QuicServerId new_b_11_https_left_private(HostPortPair("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 = static_cast(i); QuicServerId a_10_https_right_private(HostPortPair("a.com", 10), right_privacy); QuicServerId a_11_https_right_private(HostPortPair("a.com", 11), right_privacy); QuicServerId b_10_https_right_private(HostPortPair("b.com", 10), right_privacy); QuicServerId b_11_https_right_private(HostPortPair("b.com", 11), right_privacy); QuicServerId new_a_10_https_left_private(HostPortPair("a.com", 10), PRIVACY_MODE_DISABLED); 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(HostPortPair("a.com", 10), PRIVACY_MODE_ENABLED); QuicServerId new_a_10_https_no_private(HostPortPair("a.com", 10), PRIVACY_MODE_DISABLED); EXPECT_FALSE(new_a_10_https_no_private == a_10_https_private); } } // namespace } // namespace net