package net.varkhan.base.conversion.character;
import junit.framework.TestCase;
import java.io.ByteArrayInputStream;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
public class URLDecoderTest extends TestCase {
public void testDecodeStr() throws Exception {
verifyDecode("hash#t4g/s%,", "hash%23t4g%2Fs%25%2C");
verifyDecode("sefaköy cekmece", "sefak%C3%B6y+cekmece");
verifyDecode("elazığ", "elaz%C4%B1%C4%9F");
verifyDecode("دبي", "%D8%AF%D8%A8%D9%8A");
verifyDecode("الشرقيه", "%D8%A7%D9%84%D8%B4%D8%B1%D9%82%D9%8A%D9%87");
verifyDecode("büyükdere mahallesi", "b%C3%BCy%C3%BCkdere+mahallesi");
verifyDecode("Çorlu", "%C3%87orlu");
verifyDecode("niğde", "ni%C4%9Fde");
verifyDecode("\u4e00", "%E4%B8%80");
verifyDecode("你好", "%E4%BD%A0%E5%A5%BD");
verifyDecode("ſt", "%EF%AC%85");
verifyDecode("", "%EE%90%A5");
}
public void verifyDecode(String expected, String decode) throws java.io.IOException {
assertEquals("_decode(\""+decode+"\")",expected, URLDecoder._decode(new StringBuilder(), decode).toString());
URLDecoder<Object> dec = new URLDecoder<Object>();
assertEquals("decode(\""+decode+"\".getBytes())",expected,dec.decode(decode.getBytes(Charset.forName("US-ASCII")),null));
byte[] buf = decode.getBytes(Charset.forName("ASCII"));
assertEquals("decode(\""+decode+".getBytes(),0,<>\")",expected,dec.decode(buf,0,buf.length,null));
assertEquals("decode(new ByteArrayInputStream(\""+decode+"\"))",expected,dec.decode(new ByteArrayInputStream(buf),null));
assertEquals("decode(new ByteBuffer(\""+decode+"\"))",expected,dec.decode(ByteBuffer.wrap(buf), null));
}
}