Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/dns/dns_hosts.h" | 5 #include "net/dns/dns_hosts.h" |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 namespace net { | 9 namespace net { |
| 10 | 10 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 ASSERT_TRUE(ip.empty()); | 57 ASSERT_TRUE(ip.empty()); |
| 58 ASSERT_TRUE(ParseIPLiteralToNumber(entries[i].ip, &ip)); | 58 ASSERT_TRUE(ParseIPLiteralToNumber(entries[i].ip, &ip)); |
| 59 ASSERT_EQ(ip.size(), (entries[i].family == ADDRESS_FAMILY_IPV4) ? 4u : 16u); | 59 ASSERT_EQ(ip.size(), (entries[i].family == ADDRESS_FAMILY_IPV4) ? 4u : 16u); |
| 60 } | 60 } |
| 61 | 61 |
| 62 DnsHosts hosts; | 62 DnsHosts hosts; |
| 63 ParseHosts(contents, &hosts); | 63 ParseHosts(contents, &hosts); |
| 64 ASSERT_EQ(expected, hosts); | 64 ASSERT_EQ(expected, hosts); |
| 65 } | 65 } |
| 66 | 66 |
| 67 TEST(DnsHostsTest, ParseHosts_CommaIsToken) { | |
|
mmenke
2014/07/24 21:32:30
Bit of a pain, but should probably have one that m
Deprecated (see juliatuttle)
2014/07/25 19:34:44
So make one that's conditional on Mac and tests th
mmenke
2014/07/25 19:38:46
What I suggest is run the test everywhere, but hav
| |
| 68 std::string contents = | |
| 69 "127.0.0.1 comma1,comma2"; | |
|
mmenke
2014/07/24 21:32:30
This fits on one line.
mmenke
2014/07/24 21:32:30
Also should probably make it const and use kConstN
Deprecated (see juliatuttle)
2014/07/25 19:34:44
Done.
Deprecated (see juliatuttle)
2014/07/25 19:34:44
Done.
| |
| 70 | |
| 71 const struct { | |
| 72 const char* host; | |
| 73 AddressFamily family; | |
| 74 const char* ip; | |
| 75 } entries[] = { | |
|
mmenke
2014/07/24 21:32:30
Should also probably use const naming scheme here.
Deprecated (see juliatuttle)
2014/07/25 19:34:44
Done.
| |
| 76 { "comma1,comma2", ADDRESS_FAMILY_IPV4, "127.0.0.1" }, | |
| 77 }; | |
| 78 | |
| 79 DnsHosts expected; | |
| 80 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(entries); ++i) { | |
| 81 DnsHostsKey key(entries[i].host, entries[i].family); | |
| 82 IPAddressNumber& ip = expected[key]; | |
| 83 ASSERT_TRUE(ip.empty()); | |
| 84 ASSERT_TRUE(ParseIPLiteralToNumber(entries[i].ip, &ip)); | |
| 85 ASSERT_EQ(ip.size(), (entries[i].family == ADDRESS_FAMILY_IPV4) ? 4u : 16u); | |
| 86 } | |
|
mmenke
2014/07/24 21:32:30
Suggest making this block a function.
Deprecated (see juliatuttle)
2014/07/25 19:34:44
Done.
| |
| 87 | |
| 88 DnsHosts hosts; | |
| 89 ParseHostsWithCommaMode(contents, &hosts, PARSE_HOSTS_COMMA_IS_TOKEN); | |
| 90 ASSERT_EQ(expected, hosts); | |
| 91 } | |
| 92 | |
| 93 TEST(DnsHostsTest, ParseHosts_CommaIsWhitespace) { | |
| 94 std::string contents = | |
| 95 "127.0.0.1 comma1,comma2"; | |
| 96 | |
| 97 const struct { | |
| 98 const char* host; | |
| 99 AddressFamily family; | |
| 100 const char* ip; | |
| 101 } entries[] = { | |
| 102 { "comma1", ADDRESS_FAMILY_IPV4, "127.0.0.1" }, | |
| 103 { "comma2", ADDRESS_FAMILY_IPV4, "127.0.0.1" }, | |
| 104 }; | |
| 105 | |
| 106 DnsHosts expected; | |
| 107 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(entries); ++i) { | |
| 108 DnsHostsKey key(entries[i].host, entries[i].family); | |
| 109 IPAddressNumber& ip = expected[key]; | |
| 110 ASSERT_TRUE(ip.empty()); | |
| 111 ASSERT_TRUE(ParseIPLiteralToNumber(entries[i].ip, &ip)); | |
| 112 ASSERT_EQ(ip.size(), (entries[i].family == ADDRESS_FAMILY_IPV4) ? 4u : 16u); | |
| 113 } | |
| 114 | |
| 115 DnsHosts hosts; | |
| 116 ParseHostsWithCommaMode(contents, &hosts, PARSE_HOSTS_COMMA_IS_WHITESPACE); | |
| 117 ASSERT_EQ(expected, hosts); | |
| 118 } | |
| 119 | |
| 67 TEST(DnsHostsTest, HostsParser_Empty) { | 120 TEST(DnsHostsTest, HostsParser_Empty) { |
| 68 DnsHosts hosts; | 121 DnsHosts hosts; |
| 69 ParseHosts("", &hosts); | 122 ParseHosts("", &hosts); |
| 70 EXPECT_EQ(0u, hosts.size()); | 123 EXPECT_EQ(0u, hosts.size()); |
| 71 } | 124 } |
| 72 | 125 |
| 73 TEST(DnsHostsTest, HostsParser_OnlyWhitespace) { | 126 TEST(DnsHostsTest, HostsParser_OnlyWhitespace) { |
| 74 DnsHosts hosts; | 127 DnsHosts hosts; |
| 75 ParseHosts(" ", &hosts); | 128 ParseHosts(" ", &hosts); |
| 76 EXPECT_EQ(0u, hosts.size()); | 129 EXPECT_EQ(0u, hosts.size()); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 TEST(DnsHostsTest, HostsParser_EndsWithNewlineAndToken) { | 168 TEST(DnsHostsTest, HostsParser_EndsWithNewlineAndToken) { |
| 116 DnsHosts hosts; | 169 DnsHosts hosts; |
| 117 ParseHosts("127.0.0.1 localhost\ntoken", &hosts); | 170 ParseHosts("127.0.0.1 localhost\ntoken", &hosts); |
| 118 EXPECT_EQ(1u, hosts.size()); | 171 EXPECT_EQ(1u, hosts.size()); |
| 119 } | 172 } |
| 120 | 173 |
| 121 } // namespace | 174 } // namespace |
| 122 | 175 |
| 123 } // namespace net | 176 } // namespace net |
| 124 | 177 |
| OLD | NEW |