214 lines
6.4 KiB
Java
214 lines
6.4 KiB
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.tomcat.websocket.server;
|
|
|
|
import java.util.Map;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
public class TestUriTemplate {
|
|
|
|
@Test
|
|
public void testBasic() throws Exception {
|
|
UriTemplate t = new UriTemplate("/{a}/{b}");
|
|
Map<String,String> result = t.match(new UriTemplate("/foo/bar"));
|
|
|
|
Assert.assertEquals(2, result.size());
|
|
Assert.assertTrue(result.containsKey("a"));
|
|
Assert.assertTrue(result.containsKey("b"));
|
|
Assert.assertEquals("foo", result.get("a"));
|
|
Assert.assertEquals("bar", result.get("b"));
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testOneOfTwo() throws Exception {
|
|
UriTemplate t = new UriTemplate("/{a}/{b}");
|
|
Map<String,String> result = t.match(new UriTemplate("/foo"));
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testBasicPrefix() throws Exception {
|
|
@SuppressWarnings("unused")
|
|
UriTemplate t = new UriTemplate("/x{a}/y{b}");
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testPrefixOneOfTwo() throws Exception {
|
|
UriTemplate t = new UriTemplate("/x{a}/y{b}");
|
|
t.match(new UriTemplate("/xfoo"));
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testPrefixTwoOfTwo() throws Exception {
|
|
UriTemplate t = new UriTemplate("/x{a}/y{b}");
|
|
t.match(new UriTemplate("/ybar"));
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testQuote1() throws Exception {
|
|
UriTemplate t = new UriTemplate("/.{a}");
|
|
t.match(new UriTemplate("/yfoo"));
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testQuote2() throws Exception {
|
|
@SuppressWarnings("unused")
|
|
UriTemplate t = new UriTemplate("/.{a}");
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testNoParams() throws Exception {
|
|
UriTemplate t = new UriTemplate("/foo/bar");
|
|
Map<String,String> result = t.match(new UriTemplate("/foo/bar"));
|
|
|
|
Assert.assertEquals(0, result.size());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample1_01() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/b");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/b"));
|
|
|
|
Assert.assertEquals(0, result.size());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample1_02() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/b");
|
|
Map<String,String> result = t.match(new UriTemplate("/a"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample1_03() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/b");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/bb"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample2_01() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/b"));
|
|
|
|
Assert.assertEquals(1, result.size());
|
|
Assert.assertEquals("b", result.get("var"));
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample2_02() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/apple"));
|
|
|
|
Assert.assertEquals(1, result.size());
|
|
Assert.assertEquals("apple", result.get("var"));
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample2_03() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testSpecExample2_04() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/b/c"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testDuplicate01() throws Exception {
|
|
@SuppressWarnings("unused")
|
|
UriTemplate t = new UriTemplate("/{var}/{var}");
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testDuplicate02() throws Exception {
|
|
UriTemplate t = new UriTemplate("/{a}/{b}");
|
|
Map<String,String> result = t.match(new UriTemplate("/x/x"));
|
|
|
|
Assert.assertEquals(2, result.size());
|
|
Assert.assertEquals("x", result.get("a"));
|
|
Assert.assertEquals("x", result.get("b"));
|
|
}
|
|
|
|
|
|
public void testEgMailingList01() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/b/"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
public void testEgMailingList02() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a/"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testEgMailingList03() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}");
|
|
Map<String,String> result = t.match(new UriTemplate("/a"));
|
|
|
|
Assert.assertNull(result);
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testEgMailingList04() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var1}/{var2}");
|
|
@SuppressWarnings("unused")
|
|
Map<String,String> result = t.match(new UriTemplate("/a//c"));
|
|
}
|
|
|
|
|
|
@Test(expected=java.lang.IllegalArgumentException.class)
|
|
public void testEgMailingList05() throws Exception {
|
|
UriTemplate t = new UriTemplate("/a/{var}/");
|
|
@SuppressWarnings("unused")
|
|
Map<String,String> result = t.match(new UriTemplate("/a/b/"));
|
|
}
|
|
}
|