/* * Copyright 2002-2019 the original author or authors. * * 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 * * https://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.springframework.web.util; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.junit.Test; import org.springframework.util.MultiValueMap; /** * @author Juergen Hoeller * @author Arjen Poutsma * @author Rossen Stoyanchev */ public class WebUtilsTests { @Test public void findParameterValue() { Map params = new HashMap(); params.put("myKey1", "myValue1"); params.put("myKey2_myValue2", "xxx"); params.put("myKey3_myValue3.x", "xxx"); params.put("myKey4_myValue4.y", new String[] {"yyy"}); assertNull(WebUtils.findParameterValue(params, "myKey0")); assertEquals("myValue1", WebUtils.findParameterValue(params, "myKey1")); assertEquals("myValue2", WebUtils.findParameterValue(params, "myKey2")); assertEquals("myValue3", WebUtils.findParameterValue(params, "myKey3")); assertEquals("myValue4", WebUtils.findParameterValue(params, "myKey4")); } @Test public void extractFilenameFromUrlPath() { assertEquals("index", WebUtils.extractFilenameFromUrlPath("index.html")); assertEquals("index", WebUtils.extractFilenameFromUrlPath("/index.html")); assertEquals("view", WebUtils.extractFilenameFromUrlPath("/products/view.html")); assertEquals("view", WebUtils.extractFilenameFromUrlPath("/products/view.html?param=a")); assertEquals("view", WebUtils.extractFilenameFromUrlPath("/products/view.html?param=/path/a")); assertEquals("view", WebUtils.extractFilenameFromUrlPath("/products/view.html?param=/path/a.do")); } @Test public void extractFullFilenameFromUrlPath() { assertEquals("index.html", WebUtils.extractFullFilenameFromUrlPath("index.html")); assertEquals("index.html", WebUtils.extractFullFilenameFromUrlPath("/index.html")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html#/a")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html#/path/a")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html#/path/a.do")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html?param=a")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html?param=/path/a")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html?param=/path/a.do")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html?param=/path/a#/path/a")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products/view.html?param=/path/a.do#/path/a.do")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products;q=11/view.html?param=/path/a.do")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products;q=11/view.html;r=22?param=/path/a.do")); assertEquals("view.html", WebUtils.extractFullFilenameFromUrlPath("/products;q=11/view.html;r=22;s=33?param=/path/a.do")); } @Test public void parseMatrixVariablesString() { MultiValueMap variables; variables = WebUtils.parseMatrixVariables(null); assertEquals(0, variables.size()); variables = WebUtils.parseMatrixVariables("year"); assertEquals(1, variables.size()); assertEquals("", variables.getFirst("year")); variables = WebUtils.parseMatrixVariables("year=2012"); assertEquals(1, variables.size()); assertEquals("2012", variables.getFirst("year")); variables = WebUtils.parseMatrixVariables("year=2012;colors=red,blue,green"); assertEquals(2, variables.size()); assertEquals(Arrays.asList("red", "blue", "green"), variables.get("colors")); assertEquals("2012", variables.getFirst("year")); variables = WebUtils.parseMatrixVariables(";year=2012;colors=red,blue,green;"); assertEquals(2, variables.size()); assertEquals(Arrays.asList("red", "blue", "green"), variables.get("colors")); assertEquals("2012", variables.getFirst("year")); variables = WebUtils.parseMatrixVariables("colors=red;colors=blue;colors=green"); assertEquals(1, variables.size()); assertEquals(Arrays.asList("red", "blue", "green"), variables.get("colors")); } }