⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mixedparamurlcodingstrategytest.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.apache.wicket.request.target.coding;import java.util.HashMap;import java.util.Map;import junit.framework.TestCase;import org.apache.wicket.markup.html.WebPage;import org.apache.wicket.util.string.AppendingStringBuffer;import org.apache.wicket.util.tester.WicketTester;import org.apache.wicket.util.value.ValueMap;/** * Tests for {@link MixedParamUrlCodingStrategy}. *  * @author erik.van.oosten */public class MixedParamUrlCodingStrategyTest extends TestCase{	/**	 * Test class.	 * 	 * @author erik.van.oosten	 */	public static class TestPage extends WebPage	{		private static final long serialVersionUID = 1L;		// EMPTY	}	private WicketTester tester;	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap1()	{		Map parameters = new HashMap();		parameters.put("a", "1");		parameters.put("d", "4");		parameters.put("e", "5");		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		String urlStr = url.toString();		assertTrue("/1/?d=4&e=5".equals(urlStr) || "/1/?e=5&d=4".equals(urlStr));	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap2()	{		Map parameters = new HashMap();		parameters.put("a", "1");		parameters.put("b", "2");		parameters.put("c", "3");		parameters.put("d", "4");		parameters.put("e", "5");		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		String urlStr = url.toString();		assertTrue("/1/2/3/?d=4&e=5".equals(urlStr) || "/1/2/3/?e=5&d=4".equals(urlStr));	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap3()	{		Map parameters = new HashMap();		parameters.put("a", "1");		parameters.put("b", "2");		parameters.put("c", "3");		parameters.put("d", "4");		parameters.put("e", "5");		String[] parameterNames = new String[] {};		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		String urlStr = url.toString();		assertEquals(21, urlStr.length());		assertTrue(urlStr.indexOf("a=1") != -1);		assertTrue(urlStr.indexOf("b=2") != -1);		assertTrue(urlStr.indexOf("c=3") != -1);		assertTrue(urlStr.indexOf("d=4") != -1);		assertTrue(urlStr.indexOf("e=5") != -1);		assertTrue(urlStr.matches("^/\\?([abcde]=[12345]&){4}([abcde]=[12345])$"));	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap4()	{		Map parameters = new HashMap();		String[] parameterNames = new String[] { "a", "b" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		assertEquals("/", url.toString());	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap5()	{		Map parameters = new HashMap();		parameters.put("a", "1");		parameters.put("b", "2");		parameters.put("c", "3");		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		assertEquals("/1/2/3/", url.toString());	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer, java.util.Map)}.	 */	public void testAppendParametersAppendingStringBufferMap6()	{		Map parameters = new HashMap();		parameters.put("a", "1");		parameters.put("c", "3");		parameters.put("d", "4");		parameters.put("e", "5");		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		AppendingStringBuffer url = new AppendingStringBuffer(40);		npucs.appendParameters(url, parameters);		String urlStr = url.toString();		assertTrue("/1//3/?d=4&e=5".equals(urlStr) || "/1//3/?e=5&d=4".equals(urlStr));	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap1()	{		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		Map urlMap = new HashMap();		urlMap.put("d", "4");		urlMap.put("e", "5");		ValueMap parameterMap = npucs.decodeParameters("/1", urlMap);		assertEquals(3, parameterMap.size());		assertContains(parameterMap, "a", "1");		assertContains(parameterMap, "d", "4");		assertContains(parameterMap, "e", "5");	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap2()	{		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		Map urlMap = new HashMap();		urlMap.put("d", "4");		urlMap.put("e", "5");		ValueMap parameterMap = npucs.decodeParameters("/%C3%A8/2/3", urlMap);		assertEquals(5, parameterMap.size());		assertContains(parameterMap, "a", "\u00e8");		assertContains(parameterMap, "b", "2");		assertContains(parameterMap, "c", "3");		assertContains(parameterMap, "d", "4");		assertContains(parameterMap, "e", "5");	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap3()	{		String[] parameterNames = new String[] {};		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		Map urlMap = new HashMap();		urlMap.put("a", "1");		urlMap.put("b", "2");		urlMap.put("c", "3");		urlMap.put("d", "4");		urlMap.put("e", "5");		ValueMap parameterMap = npucs.decodeParameters("", urlMap);		assertEquals(5, parameterMap.size());		assertContains(parameterMap, "a", "1");		assertContains(parameterMap, "b", "2");		assertContains(parameterMap, "c", "3");		assertContains(parameterMap, "d", "4");		assertContains(parameterMap, "e", "5");	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap4()	{		String[] parameterNames = new String[] { "a", "b" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		Map urlMap = new HashMap();		ValueMap parameterMap = npucs.decodeParameters("", urlMap);		assertEquals(0, parameterMap.size());	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap5()	{		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		Map urlMap = new HashMap();		ValueMap parameterMap = npucs.decodeParameters("/1/2/3", urlMap);		assertEquals(3, parameterMap.size());		assertContains(parameterMap, "a", "1");		assertContains(parameterMap, "b", "2");		assertContains(parameterMap, "c", "3");	}	/**	 * Test method for	 * {@link MixedParamUrlCodingStrategy#decodeParameters(java.lang.String, java.util.Map)}.	 */	public void testDecodeParametersStringMap6()	{		String[] parameterNames = new String[] { "a", "b", "c" };		MixedParamUrlCodingStrategy npucs = new MixedParamUrlCodingStrategy("mnt", TestPage.class,				parameterNames);		// Note nasty, but ignored c parameter		Map urlMap = new HashMap();		urlMap.put("c", "XXXXXXX");		urlMap.put("d", "4");		urlMap.put("e", "5");		ValueMap parameterMap = npucs.decodeParameters("/1//3", urlMap);		assertEquals(5, parameterMap.size());		assertContains(parameterMap, "a", "1");		// Note: missing b is translated to empty string.		assertContains(parameterMap, "b", "");		assertContains(parameterMap, "c", "3");		assertContains(parameterMap, "d", "4");		assertContains(parameterMap, "e", "5");	}	/** {@inheritDoc} */	protected void setUp() throws Exception	{		tester = new WicketTester();		tester.getApplication().getRequestCycleSettings().setResponseRequestEncoding("UTF-8");	}	protected void tearDown() throws Exception	{		tester.destroy();	}	/**	 * @param parameterMap	 *            a map	 * @param key	 *            expected key	 * @param value	 *            expected value	 */	private void assertContains(Map parameterMap, String key, String value)	{		assertEquals(value, parameterMap.get(key));	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -