| Index: net/proxy/proxy_server_unittest.cc
|
| ===================================================================
|
| --- net/proxy/proxy_server_unittest.cc (revision 57276)
|
| +++ net/proxy/proxy_server_unittest.cc (working copy)
|
| @@ -300,3 +300,69 @@
|
| EXPECT_FALSE(uri.is_valid());
|
| }
|
| }
|
| +
|
| +TEST(ProxyServerTest, ComparatorAndEquality) {
|
| + struct {
|
| + // Inputs.
|
| + const char* server1;
|
| + const char* server2;
|
| +
|
| + // Expectation.
|
| + // -1 means server1 is less than server2
|
| + // 0 means server1 equals server2
|
| + // 1 means server1 is greater than server2
|
| + int expected_comparison;
|
| + } tests[] = {
|
| + { // Equal.
|
| + "foo:11",
|
| + "http://foo:11",
|
| + 0
|
| + },
|
| + { // Port is different.
|
| + "foo:333",
|
| + "foo:444",
|
| + -1
|
| + },
|
| + { // Host is different.
|
| + "foo:33",
|
| + "bar:33",
|
| + 1
|
| + },
|
| + { // Scheme is different.
|
| + "socks4://foo:33",
|
| + "http://foo:33",
|
| + 1
|
| + },
|
| + };
|
| +
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
|
| + // Parse the expected inputs to ProxyServer instances.
|
| + const net::ProxyServer server1 =
|
| + net::ProxyServer::FromURI(
|
| + tests[i].server1, net::ProxyServer::SCHEME_HTTP);
|
| +
|
| + const net::ProxyServer server2 =
|
| + net::ProxyServer::FromURI(
|
| + tests[i].server2, net::ProxyServer::SCHEME_HTTP);
|
| +
|
| + switch (tests[i].expected_comparison) {
|
| + case -1:
|
| + EXPECT_TRUE(server1 < server2);
|
| + EXPECT_FALSE(server2 < server1);
|
| + EXPECT_FALSE(server2 == server1);
|
| + break;
|
| + case 0:
|
| + EXPECT_FALSE(server1 < server2);
|
| + EXPECT_FALSE(server2 < server1);
|
| + EXPECT_TRUE(server2 == server1);
|
| + break;
|
| + case 1:
|
| + EXPECT_FALSE(server1 < server2);
|
| + EXPECT_TRUE(server2 < server1);
|
| + EXPECT_FALSE(server2 == server1);
|
| + break;
|
| + default:
|
| + FAIL() << "Invalid expectation. Can be only -1, 0, 1";
|
| + }
|
| + }
|
| +}
|
|
|