- 
                Notifications
    
You must be signed in to change notification settings  - Fork 9.2k
 
Open
Labels
bugBug in existing codeBug in existing code
Milestone
Description
hi, I have written a unit test for toCanonicalHost() function which is used in hostname verifier, and was wondering if this is expected result. These IP addresses are used in existing unit tests so I believe they are valid addresses.
For IPv6 representation of IPv4 addresses toCanonicalHost() converts IPv4 to hex value and I am not sure if this is expected behavior.
I would expect
assertThat(toCanonicalHost("::192.168.0.1").equals("192.168.0.1")).isTrue();
not
assertThat(toCanonicalHost("::192.168.0.1").equals("::c0a8:1")).isTrue();
If there is a RFC regarding this that I am missing please let me know and ignore this. Thanks!
@Test public void testToCanonicalHost() {
    // IPv4
    assertThat(toCanonicalHost("127.0.0.1").equals("127.0.0.1")).isTrue();
    assertThat(toCanonicalHost("1.2.3.4").equals("1.2.3.4")).isTrue();
    // IPv6
    assertThat(toCanonicalHost("::1").equals("::1")).isTrue();
    assertThat(toCanonicalHost("2001:db8::1").equals("2001:db8::1")).isTrue();
    assertThat(toCanonicalHost("::ffff:192.168.0.1").equals("192.168.0.1")).isTrue();
    assertThat(
            toCanonicalHost("FEDC:BA98:7654:3210:FEDC:BA98:7654:3210").equals(
            "fedc:ba98:7654:3210:fedc:ba98:7654:3210")).isTrue();
    assertThat(
            toCanonicalHost("1080:0:0:0:8:800:200C:417A").equals("1080::8:800:200c:417a")).isTrue();
    assertThat(toCanonicalHost("1080::8:800:200C:417A").equals("1080::8:800:200c:417a")).isTrue();
    assertThat(toCanonicalHost("FF01::101").equals("ff01::101")).isTrue();
    assertThat(
            toCanonicalHost("0:0:0:0:0:FFFF:129.144.52.38").equals("129.144.52.38")).isTrue();
    assertThat(toCanonicalHost("::FFFF:129.144.52.38").equals("129.144.52.38")).isTrue();
    // Hostnames
    assertThat(toCanonicalHost("WwW.GoOgLe.cOm").equals("www.google.com")).isTrue();
    assertThat(toCanonicalHost("localhost").equals("localhost")).isTrue();
    assertThat(toCanonicalHost("☃.net").equals("xn--n3h.net")).isTrue();
    // Expected?
    assertThat(toCanonicalHost("::192.168.0.1").equals("::c0a8:1")).isTrue();
    assertThat(toCanonicalHost("0:0:0:0:0:0:13.1.68.3").equals("::d01:4403")).isTrue();
    assertThat(toCanonicalHost("::13.1.68.3").equals("::d01:4403")).isTrue();
  }
Metadata
Metadata
Assignees
Labels
bugBug in existing codeBug in existing code