Consistent support for Charset/StandardCharsets in UriUtils etc
Issue: SPR-15613
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 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.
|
||||
@@ -17,6 +17,8 @@
|
||||
package org.springframework.web.util;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -28,81 +30,81 @@ import static org.junit.Assert.*;
|
||||
*/
|
||||
public class UriUtilsTests {
|
||||
|
||||
private static final String ENC = "UTF-8";
|
||||
private static final Charset CHARSET = StandardCharsets.UTF_8;
|
||||
|
||||
|
||||
@Test
|
||||
public void encodeScheme() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar+-.", UriUtils.encodeScheme("foobar+-.", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeScheme("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar+-.", UriUtils.encodeScheme("foobar+-.", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeScheme("foo bar", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodeUserInfo() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar:", UriUtils.encodeUserInfo("foobar:", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeUserInfo("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar:", UriUtils.encodeUserInfo("foobar:", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeUserInfo("foo bar", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodeHost() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeHost("foobar", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeHost("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeHost("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeHost("foo bar", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodePort() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "80", UriUtils.encodePort("80", ENC));
|
||||
assertEquals("Invalid encoded result", "80", UriUtils.encodePort("80", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodePath() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "/foo/bar", UriUtils.encodePath("/foo/bar", ENC));
|
||||
assertEquals("Invalid encoded result", "/foo%20bar", UriUtils.encodePath("/foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "/Z%C3%BCrich", UriUtils.encodePath("/Z\u00fcrich", ENC));
|
||||
assertEquals("Invalid encoded result", "/foo/bar", UriUtils.encodePath("/foo/bar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "/foo%20bar", UriUtils.encodePath("/foo bar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "/Z%C3%BCrich", UriUtils.encodePath("/Z\u00fcrich", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodePathSegment() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodePathSegment("foobar", ENC));
|
||||
assertEquals("Invalid encoded result", "%2Ffoo%2Fbar", UriUtils.encodePathSegment("/foo/bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodePathSegment("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "%2Ffoo%2Fbar", UriUtils.encodePathSegment("/foo/bar", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodeQuery() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeQuery("foobar", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeQuery("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar/+", UriUtils.encodeQuery("foobar/+", ENC));
|
||||
assertEquals("Invalid encoded result", "T%C5%8Dky%C5%8D", UriUtils.encodeQuery("T\u014dky\u014d", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeQuery("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeQuery("foo bar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foobar/+", UriUtils.encodeQuery("foobar/+", CHARSET));
|
||||
assertEquals("Invalid encoded result", "T%C5%8Dky%C5%8D", UriUtils.encodeQuery("T\u014dky\u014d", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodeQueryParam() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeQueryParam("foobar", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeQueryParam("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%26bar", UriUtils.encodeQueryParam("foo&bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeQueryParam("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeQueryParam("foo bar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%26bar", UriUtils.encodeQueryParam("foo&bar", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void encodeFragment() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeFragment("foobar", ENC));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeFragment("foo bar", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar/", UriUtils.encodeFragment("foobar/", ENC));
|
||||
assertEquals("Invalid encoded result", "foobar", UriUtils.encodeFragment("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foo%20bar", UriUtils.encodeFragment("foo bar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "foobar/", UriUtils.encodeFragment("foobar/", CHARSET));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decode() throws UnsupportedEncodingException {
|
||||
assertEquals("Invalid encoded URI", "", UriUtils.decode("", ENC));
|
||||
assertEquals("Invalid encoded URI", "foobar", UriUtils.decode("foobar", ENC));
|
||||
assertEquals("Invalid encoded URI", "foo bar", UriUtils.decode("foo%20bar", ENC));
|
||||
assertEquals("Invalid encoded URI", "foo+bar", UriUtils.decode("foo%2bbar", ENC));
|
||||
assertEquals("Invalid encoded result", "T\u014dky\u014d", UriUtils.decode("T%C5%8Dky%C5%8D", ENC));
|
||||
assertEquals("Invalid encoded result", "/Z\u00fcrich", UriUtils.decode("/Z%C3%BCrich", ENC));
|
||||
assertEquals("Invalid encoded result", "T\u014dky\u014d", UriUtils.decode("T\u014dky\u014d", ENC));
|
||||
assertEquals("Invalid encoded URI", "", UriUtils.decode("", CHARSET));
|
||||
assertEquals("Invalid encoded URI", "foobar", UriUtils.decode("foobar", CHARSET));
|
||||
assertEquals("Invalid encoded URI", "foo bar", UriUtils.decode("foo%20bar", CHARSET));
|
||||
assertEquals("Invalid encoded URI", "foo+bar", UriUtils.decode("foo%2bbar", CHARSET));
|
||||
assertEquals("Invalid encoded result", "T\u014dky\u014d", UriUtils.decode("T%C5%8Dky%C5%8D", CHARSET));
|
||||
assertEquals("Invalid encoded result", "/Z\u00fcrich", UriUtils.decode("/Z%C3%BCrich", CHARSET));
|
||||
assertEquals("Invalid encoded result", "T\u014dky\u014d", UriUtils.decode("T\u014dky\u014d", CHARSET));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void decodeInvalidSequence() throws UnsupportedEncodingException {
|
||||
UriUtils.decode("foo%2", ENC);
|
||||
UriUtils.decode("foo%2", CHARSET);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user