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
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;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
public class DefaultHostsFileEntriesResolverTest {
@Test
public void testLocalhost() {
public void testCaseInsensitivity() throws Exception {
DefaultHostsFileEntriesResolver resolver = new DefaultHostsFileEntriesResolver();
assertNotNull("localhost doesn't resolve", resolver.address("localhost"));
assertNotNull("LOCALHOST doesn't resolve", resolver.address("LOCALHOST"));
//normalized somehow
Assert.assertEquals(resolver.normalize("localhost"), resolver.normalize("LOCALHOST"));
}
}