blob: e23d816298fb8dd0a7304d2e5da0188d9c9d9da4 [file] [log] [blame]
// 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<PrivacyMode>(i / 2);
right_privacy = static_cast<PrivacyMode>(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<PrivacyMode>(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<PrivacyMode>(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