|
Jetty example source code file (URLEncodedTest.java)
The Jetty URLEncodedTest.java source code// ======================================================================== // Copyright 2004-2005 Mort Bay Consulting Pty. Ltd. // ------------------------------------------------------------------------ // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ======================================================================== package org.mortbay.util; import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; import junit.framework.TestSuite; /* ------------------------------------------------------------ */ /** Util meta Tests. * @author Greg Wilkins (gregw) */ public class URLEncodedTest extends junit.framework.TestCase { public URLEncodedTest(String name) { super(name); } public static junit.framework.Test suite() { TestSuite suite = new TestSuite(URLEncodedTest.class); return suite; } /* ------------------------------------------------------------ */ /** main. */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } /* -------------------------------------------------------------- */ public void testUrlEncoded() throws UnsupportedEncodingException { UrlEncoded url_encoded = new UrlEncoded(); assertEquals("Empty",0, url_encoded.size()); url_encoded.clear(); url_encoded.decode("Name1=Value1"); assertEquals("simple param size",1, url_encoded.size()); assertEquals("simple encode","Name1=Value1", url_encoded.encode()); assertEquals("simple get","Value1", url_encoded.getString("Name1")); url_encoded.clear(); url_encoded.decode("Name2="); assertEquals("dangling param size",1, url_encoded.size()); assertEquals("dangling encode","Name2", url_encoded.encode()); assertEquals("dangling get","", url_encoded.getString("Name2")); url_encoded.clear(); url_encoded.decode("Name3"); assertEquals("noValue param size",1, url_encoded.size()); assertEquals("noValue encode","Name3", url_encoded.encode()); assertEquals("noValue get","", url_encoded.getString("Name3")); url_encoded.clear(); url_encoded.decode("Name4=Value+4%21"); assertEquals("encoded param size",1, url_encoded.size()); assertEquals("encoded encode","Name4=Value+4%21", url_encoded.encode()); assertEquals("encoded get","Value 4!", url_encoded.getString("Name4")); url_encoded.clear(); url_encoded.decode("Name4=Value%2B4%21"); assertEquals("encoded param size",1, url_encoded.size()); assertEquals("encoded encode","Name4=Value%2B4%21", url_encoded.encode()); assertEquals("encoded get","Value+4!", url_encoded.getString("Name4")); url_encoded.clear(); url_encoded.decode("Name4=Value+4%21%20%214"); assertEquals("encoded param size",1, url_encoded.size()); assertEquals("encoded encode","Name4=Value+4%21+%214", url_encoded.encode()); assertEquals("encoded get","Value 4! !4", url_encoded.getString("Name4")); url_encoded.clear(); url_encoded.decode("Name5=aaa&Name6=bbb"); assertEquals("multi param size",2, url_encoded.size()); assertTrue("multi encode "+url_encoded.encode(), url_encoded.encode().equals("Name5=aaa&Name6=bbb") || url_encoded.encode().equals("Name6=bbb&Name5=aaa") ); assertEquals("multi get","aaa", url_encoded.getString("Name5")); assertEquals("multi get","bbb", url_encoded.getString("Name6")); url_encoded.clear(); url_encoded.decode("Name7=aaa&Name7=b%2Cb&Name7=ccc"); assertEquals("multi encode","Name7=aaa&Name7=b%2Cb&Name7=ccc",url_encoded.encode()); assertEquals("list get all", url_encoded.getString("Name7"),"aaa,b,b,ccc"); assertEquals("list get","aaa", url_encoded.getValues("Name7").get(0)); assertEquals("list get", url_encoded.getValues("Name7").get(1),"b,b"); assertEquals("list get","ccc", url_encoded.getValues("Name7").get(2)); url_encoded.clear(); url_encoded.decode("Name8=xx%2C++yy++%2Czz"); assertEquals("encoded param size",1, url_encoded.size()); assertEquals("encoded encode","Name8=xx%2C++yy++%2Czz", url_encoded.encode()); assertEquals("encoded get", url_encoded.getString("Name8"),"xx, yy ,zz"); /* Not every jvm supports this encoding */ if (java.nio.charset.Charset.isSupported("SJIS")) { url_encoded.clear(); url_encoded.decode("Name9=%83e%83X%83g", "SJIS"); // "Test" in Japanese Katakana assertEquals("encoded param size",1, url_encoded.size()); assertEquals("encoded get", "\u30c6\u30b9\u30c8", url_encoded.getString("Name9")); } else assertTrue("Charset SJIS not supported by jvm", true); } /* -------------------------------------------------------------- */ public void testUrlEncodedStream() throws Exception { ByteArrayInputStream in = new ByteArrayInputStream ( "name0=value+%30&name1=&name2&name3=value+3".getBytes()); MultiMap m = new MultiMap(); UrlEncoded.decodeTo(in, m, null, -1); System.err.println(m); assertEquals("stream length",4,m.size()); assertEquals("stream name0","value 0",m.getString("name0")); assertEquals("stream name1","",m.getString("name1")); assertEquals("stream name2","",m.getString("name2")); assertEquals("stream name3","value 3",m.getString("name3")); if (java.nio.charset.Charset.isSupported("Shift_JIS")) { ByteArrayInputStream in2 = new ByteArrayInputStream ("name=%83e%83X%83g".getBytes()); MultiMap m2 = new MultiMap(); UrlEncoded.decodeTo(in2, m2, "Shift_JIS", -1); assertEquals("stream length",1,m2.size()); assertEquals("stream name","\u30c6\u30b9\u30c8",m2.getString("name")); } else assertTrue("Charset Shift_JIS not supported by jvm", true); } } Other Jetty examples (source code examples)Here is a short list of links related to this Jetty URLEncodedTest.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.