@Test
public void testUTF8RoundTrip() throws Exception {
final String ru_msg = constructString(RUSSIAN_STUFF_UNICODE);
final String ch_msg = constructString(SWISS_GERMAN_STUFF_UNICODE);
final URLCodec urlCodec = new URLCodec();
this.validateState(urlCodec);
assertEquals(
"%D0%92%D1%81%D0%B5%D0%BC_%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82",
urlCodec.encode(ru_msg, CharEncoding.UTF_8)
);
assertEquals("Gr%C3%BCezi_z%C3%A4m%C3%A4", urlCodec.encode(ch_msg, CharEncoding.UTF_8));
assertEquals(ru_msg, urlCodec.decode(urlCodec.encode(ru_msg, CharEncoding.UTF_8), CharEncoding.UTF_8));
assertEquals(ch_msg, urlCodec.decode(urlCodec.encode(ch_msg, CharEncoding.UTF_8), CharEncoding.UTF_8));
this.validateState(urlCodec);
}