fix 5868 -fix DefaultHostsFileEntriesResolverTest to pass on windows 7

Motivation:

Windows 7 hosts file is empty by default (at least on my machine? see
http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why
for details and reasoning.

the test relies on the file containing an entry for localhost.

Modifications:

refactor class code to 1st normalize the input host name and then look it up, change the test to verify
that hostnames are normalized in a case-insensitive way before being looked up (which was the intent
of the original test)

Result:

test should pass on vanilla windows 7 (and any other machine with no
localhost in the hosts file). no effect anywhere else or on actual netty
code.

Signed-off-by: radai-rosenblatt <radai.rosenblatt@gmail.com>
This commit is contained in:
radai-rosenblatt 2016-09-29 12:32:26 -07:00 committed by Norman Maurer
parent f755e58463
commit 4e2530c171
2 changed files with 10 additions and 6 deletions

View File

@ -28,6 +28,11 @@ public final class DefaultHostsFileEntriesResolver implements HostsFileEntriesRe
@Override @Override
public InetAddress address(String inetHost) { public InetAddress address(String inetHost) {
return entries.get(inetHost.toLowerCase(Locale.ENGLISH)); return entries.get(normalize(inetHost));
}
// package-private for testing purposes
String normalize(String inetHost) {
return inetHost.toLowerCase(Locale.ENGLISH);
} }
} }

View File

@ -19,16 +19,15 @@
*/ */
package io.netty.resolver; package io.netty.resolver;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertNotNull;
public class DefaultHostsFileEntriesResolverTest { public class DefaultHostsFileEntriesResolverTest {
@Test @Test
public void testLocalhost() { public void testCaseInsensitivity() throws Exception {
DefaultHostsFileEntriesResolver resolver = new DefaultHostsFileEntriesResolver(); DefaultHostsFileEntriesResolver resolver = new DefaultHostsFileEntriesResolver();
assertNotNull("localhost doesn't resolve", resolver.address("localhost")); //normalized somehow
assertNotNull("LOCALHOST doesn't resolve", resolver.address("LOCALHOST")); Assert.assertEquals(resolver.normalize("localhost"), resolver.normalize("LOCALHOST"));
} }
} }