blob: eb6723196a6f5721f57bec931b2fe7fdaa462046 [file] [log] [blame]
// ***************************************************************************************************************************
// * 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.juneau.server.test;
import static org.junit.Assert.*;
import java.util.regex.*;
import org.apache.juneau.*;
import org.apache.juneau.client.*;
import org.apache.juneau.json.*;
import org.junit.*;
/**
* Verifies that all the RestRequest.getXXX() methods involving URIs work correctly.
*/
public class UrisTest {
private static String URL2 = Constants.getServerTestUrl() + "/testuris"; // /jazz/juneau/sample/testuris
private static int port = getPort(Constants.getServerTestUrl()); // 9443
private static String path = Constants.getServerTestUri().getPath(); // /jazz/juneau/sample
//====================================================================================================
// testRoot - http://localhost:8080/sample/testuris
//====================================================================================================
@Test
public void testRoot() throws Exception {
RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
ObjectMap r;
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris
//--------------------------------------------------------------------------------
r = client.doGet("/testuris").getResponse(ObjectMap.class);
assertEquals("root.test1", r.getString("testMethod"));
assertNull(r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/foo").getResponse(ObjectMap.class);
assertEquals("root.test1", r.getString("testMethod"));
assertEquals("/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris", r.getString("requestParentURI"));
assertEquals(path + "/testuris/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/foo/bar").getResponse(ObjectMap.class);
assertEquals("root.test1", r.getString("testMethod"));
assertEquals("/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("root.test1", r.getString("testMethod"));
assertEquals("/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test2
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test2").getResponse(ObjectMap.class);
assertEquals("root.test2", r.getString("testMethod"));
assertEquals("/test2", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test2", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test2/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test2/foo").getResponse(ObjectMap.class);
assertEquals("root.test2", r.getString("testMethod"));
assertEquals("/test2/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test2", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test2/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test2/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test2/foo/bar").getResponse(ObjectMap.class);
assertEquals("root.test2", r.getString("testMethod"));
assertEquals("/test2/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test2/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test2/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test3%2Ftest3
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test3%2Ftest3").getResponse(ObjectMap.class);
assertEquals("root.test3", r.getString("testMethod"));
assertEquals("/test3/test3", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test3%2Ftest3", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test3%2Ftest3/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test3%2Ftest3/foo").getResponse(ObjectMap.class);
assertEquals("root.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test3%2Ftest3", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test3%2Ftest3/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
assertEquals("root.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test3%2Ftest3/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test3%2Ftest3/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("root.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test3%2Ftest3/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test4/test4
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test4/test4").getResponse(ObjectMap.class);
assertEquals("root.test4", r.getString("testMethod"));
assertEquals("/test4/test4", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test4/test4", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test4/test4/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test4/test4/foo").getResponse(ObjectMap.class);
assertEquals("root.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test4/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test4/test4/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test4/test4/foo/bar").getResponse(ObjectMap.class);
assertEquals("root.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test4/test4/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/test4/test4/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("root.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2, r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
client.closeQuietly();
}
//====================================================================================================
// testChild - http://localhost:8080/sample/testuris/child
//====================================================================================================
@Test
public void testChild() throws Exception {
RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
ObjectMap r;
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child").getResponse(ObjectMap.class);
assertEquals("child.test1", r.getString("testMethod"));
assertNull(r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/foo").getResponse(ObjectMap.class);
assertEquals("child.test1", r.getString("testMethod"));
assertEquals("/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/foo/bar").getResponse(ObjectMap.class);
assertEquals("child.test1", r.getString("testMethod"));
assertEquals("/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("child.test1", r.getString("testMethod"));
assertEquals("/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test2").getResponse(ObjectMap.class);
assertEquals("child.test2", r.getString("testMethod"));
assertEquals("/test2", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test2", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test2/foo").getResponse(ObjectMap.class);
assertEquals("child.test2", r.getString("testMethod"));
assertEquals("/test2/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test2", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test2/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test2/foo/bar").getResponse(ObjectMap.class);
assertEquals("child.test2", r.getString("testMethod"));
assertEquals("/test2/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test2/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test2/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test2/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("child.test2", r.getString("testMethod"));
assertEquals("/test2/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test2/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test2/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test3%2Ftest3").getResponse(ObjectMap.class);
assertEquals("child.test3", r.getString("testMethod"));
assertEquals("/test3/test3", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test3%2Ftest3", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test3%2Ftest3/foo").getResponse(ObjectMap.class);
assertEquals("child.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test3%2Ftest3", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
assertEquals("child.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test3%2Ftest3/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("child.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test3%2Ftest3/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test4/test4").getResponse(ObjectMap.class);
assertEquals("child.test4", r.getString("testMethod"));
assertEquals("/test4/test4", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test4/test4", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test4/test4/foo").getResponse(ObjectMap.class);
assertEquals("child.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test4/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test4/test4/foo/bar").getResponse(ObjectMap.class);
assertEquals("child.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test4/test4/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("child.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
client.closeQuietly();
}
//====================================================================================================
// testGrandChild - http://localhost:8080/sample/testuris/child/grandchild
//====================================================================================================
@Test
public void testGrandChild() throws Exception {
RestClient client = new TestRestClient(JsonSerializer.DEFAULT, JsonParser.DEFAULT);
ObjectMap r;
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild").getResponse(ObjectMap.class);
assertEquals("grandchild.test1", r.getString("testMethod"));
assertNull(r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/foo").getResponse(ObjectMap.class);
assertEquals("grandchild.test1", r.getString("testMethod"));
assertEquals("/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/foo/bar").getResponse(ObjectMap.class);
assertEquals("grandchild.test1", r.getString("testMethod"));
assertEquals("/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("grandchild.test1", r.getString("testMethod"));
assertEquals("/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test2").getResponse(ObjectMap.class);
assertEquals("grandchild.test2", r.getString("testMethod"));
assertEquals("/test2", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test2/foo").getResponse(ObjectMap.class);
assertEquals("grandchild.test2", r.getString("testMethod"));
assertEquals("/test2/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test2/foo/bar").getResponse(ObjectMap.class);
assertEquals("grandchild.test2", r.getString("testMethod"));
assertEquals("/test2/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test2/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test2/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test2/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("grandchild.test2", r.getString("testMethod"));
assertEquals("/test2/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test2/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test3%2Ftest3").getResponse(ObjectMap.class);
assertEquals("grandchild.test3", r.getString("testMethod"));
assertEquals("/test3/test3", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo").getResponse(ObjectMap.class);
assertEquals("grandchild.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo/bar").getResponse(ObjectMap.class);
assertEquals("grandchild.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test3%2Ftest3/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("grandchild.test3", r.getString("testMethod"));
assertEquals("/test3/test3/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test3%2Ftest3/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test4/test4").getResponse(ObjectMap.class);
assertEquals("grandchild.test4", r.getString("testMethod"));
assertEquals("/test4/test4", r.getString("pathInfo"));
assertNull(r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test4/test4/foo").getResponse(ObjectMap.class);
assertEquals("grandchild.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo", r.getString("pathInfo"));
assertEquals("foo", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test4/test4/foo/bar").getResponse(ObjectMap.class);
assertEquals("grandchild.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar", r.getString("pathInfo"));
assertEquals("foo/bar", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test4/test4/foo/bar", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo/bar"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
//--------------------------------------------------------------------------------
// http://localhost:8080/sample/testuris/child/test4/test4/foo/bar%2Fbaz
//--------------------------------------------------------------------------------
r = client.doGet("/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz").getResponse(ObjectMap.class);
assertEquals("grandchild.test4", r.getString("testMethod"));
assertEquals("/test4/test4/foo/bar/baz", r.getString("pathInfo"));
assertEquals("foo/bar/baz", r.getString("pathRemainder"));
assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestParentURI"));
assertEquals(path + "/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz", r.getString("requestURI"));
assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo/bar%2Fbaz"));
// Same for servlet
assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path.
assertEquals(URL2 + "/child/grandchild", r.getString("servletURI"));
assertTrue(r.getString("testURL1").endsWith(port + path + "/testuris/child/grandchild/testURL"));
// Always the same
assertTrue(r.getString("testURL2").endsWith(port + "/testURL"));
assertEquals("http://testURL", r.getString("testURL3"));
client.closeQuietly();
}
private static int getPort(String url) {
Pattern p = Pattern.compile("\\:(\\d{2,5})");
Matcher m = p.matcher(url);
if (m.find())
return Integer.parseInt(m.group(1));
return -1;
}
}