Cleanup existing DispatcherTest (before fixing disabled tests)
This commit is contained in:
parent
60b618d71d
commit
2a2e252de9
|
@ -44,6 +44,7 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||
import jakarta.servlet.http.HttpServletRequestWrapper;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletResponseWrapper;
|
||||
import org.eclipse.jetty.http.HttpTester;
|
||||
import org.eclipse.jetty.logging.StacklessLogging;
|
||||
import org.eclipse.jetty.server.HttpChannel;
|
||||
import org.eclipse.jetty.server.HttpConfiguration;
|
||||
|
@ -54,7 +55,7 @@ import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
|||
import org.eclipse.jetty.server.handler.ResourceHandler;
|
||||
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
||||
import org.eclipse.jetty.util.MultiMap;
|
||||
import org.eclipse.jetty.util.TypeUtil;
|
||||
import org.eclipse.jetty.util.StringUtil;
|
||||
import org.eclipse.jetty.util.UrlEncoded;
|
||||
import org.eclipse.jetty.util.resource.Resource;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
|
@ -70,6 +71,7 @@ import static org.hamcrest.Matchers.is;
|
|||
import static org.hamcrest.Matchers.startsWith;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class DispatcherTest
|
||||
|
@ -78,9 +80,7 @@ public class DispatcherTest
|
|||
|
||||
private Server _server;
|
||||
private LocalConnector _connector;
|
||||
private ContextHandlerCollection _contextCollection;
|
||||
private ServletContextHandler _contextHandler;
|
||||
private ResourceHandler _resourceHandler;
|
||||
|
||||
@BeforeEach
|
||||
public void init() throws Exception
|
||||
|
@ -90,17 +90,17 @@ public class DispatcherTest
|
|||
_connector.getConnectionFactory(HttpConfiguration.ConnectionFactory.class).getHttpConfiguration().setSendServerVersion(false);
|
||||
_connector.getConnectionFactory(HttpConfiguration.ConnectionFactory.class).getHttpConfiguration().setSendDateHeader(false);
|
||||
|
||||
_contextCollection = new ContextHandlerCollection();
|
||||
ContextHandlerCollection contextCollection = new ContextHandlerCollection();
|
||||
_contextHandler = new ServletContextHandler();
|
||||
_contextHandler.setContextPath("/context");
|
||||
_contextCollection.addHandler(_contextHandler);
|
||||
_resourceHandler = new ResourceHandler();
|
||||
contextCollection.addHandler(_contextHandler);
|
||||
ResourceHandler resourceHandler = new ResourceHandler();
|
||||
Path basePath = MavenTestingUtils.getTestResourcePathDir("dispatchResourceTest");
|
||||
_resourceHandler.setBaseResource(Resource.newResource(basePath));
|
||||
resourceHandler.setBaseResource(Resource.newResource(basePath));
|
||||
ContextHandler resourceContextHandler = new ContextHandler("/resource");
|
||||
resourceContextHandler.setHandler(_resourceHandler);
|
||||
_contextCollection.addHandler(resourceContextHandler);
|
||||
_server.setHandler(_contextCollection);
|
||||
resourceContextHandler.setHandler(resourceHandler);
|
||||
contextCollection.addHandler(resourceContextHandler);
|
||||
_server.setHandler(contextCollection);
|
||||
_server.addConnector(_connector);
|
||||
|
||||
_server.start();
|
||||
|
@ -119,16 +119,22 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(ForwardServlet.class, "/ForwardServlet/*");
|
||||
_contextHandler.addServlet(AssertForwardServlet.class, "/AssertForwardServlet/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Type: text/html\r\n" +
|
||||
"Content-Length: 7\r\n" +
|
||||
"\r\n" +
|
||||
"FORWARD";
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/ForwardServlet?do=assertforward&do=more&test=1 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/ForwardServlet?do=assertforward&do=more&test=1 HTTP/1.0\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Type: text/html\r
|
||||
Content-Length: 7\r
|
||||
Connection: close\r
|
||||
\r
|
||||
FORWARD""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -137,15 +143,21 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(ForwardNonUTF8Servlet.class, "/ForwardServlet/*");
|
||||
_contextHandler.addServlet(AssertNonUTF8ForwardServlet.class, "/AssertForwardServlet/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Type: text/html\r\n" +
|
||||
"Content-Length: 7\r\n" +
|
||||
"\r\n" +
|
||||
"FORWARD";
|
||||
String responses = _connector.getResponse("GET /context/ForwardServlet?do=assertforward&foreign=%d2%e5%ec%ef%e5%f0%e0%f2%f3%f0%e0&test=1 HTTP/1.0\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/ForwardServlet?do=assertforward&foreign=%d2%e5%ec%ef%e5%f0%e0%f2%f3%f0%e0&test=1 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
assertEquals(expected, responses);
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Type: text/html\r
|
||||
Content-Length: 7\r
|
||||
Connection: close\r
|
||||
\r
|
||||
FORWARD""";
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -154,18 +166,24 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(ForwardServlet.class, "/ForwardServlet/*");
|
||||
_contextHandler.addServlet(EchoURIServlet.class, "/EchoURI/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Type: text/plain\r\n" +
|
||||
"Content-Length: 56\r\n" +
|
||||
"\r\n" +
|
||||
"/context\r\n" +
|
||||
"/EchoURI\r\n" +
|
||||
"/x%20x\r\n" +
|
||||
"/context/EchoURI/x%20x;a=1\r\n";
|
||||
|
||||
String responses = _connector.getResponse("GET /context/ForwardServlet;ignore=true?do=req.echo&uri=EchoURI%2Fx%2520x%3Ba=1%3Fb=2 HTTP/1.0\n\n");
|
||||
String responses = _connector.getResponse("""
|
||||
GET /context/ForwardServlet;ignore=true?do=req.echo&uri=EchoURI%2Fx%2520x%3Ba=1%3Fb=2 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Type: text/plain\r
|
||||
Content-Length: 56\r
|
||||
Connection: close\r
|
||||
\r
|
||||
/context\r
|
||||
/EchoURI\r
|
||||
/x%20x\r
|
||||
/context/EchoURI/x%20x;a=1\r
|
||||
""";
|
||||
assertEquals(expected, responses);
|
||||
}
|
||||
|
||||
|
@ -175,17 +193,26 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(NamedForwardServlet.class, "/forward/*");
|
||||
String echo = _contextHandler.addServlet(EchoURIServlet.class, "/echo/*").getName();
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Type: text/plain\r\n" +
|
||||
"Content-Length: 62\r\n" +
|
||||
"\r\n" +
|
||||
"/context\r\n" +
|
||||
"/forward\r\n" +
|
||||
"/info\r\n" +
|
||||
"/context/forward/info;param=value\r\n";
|
||||
String responses = _connector.getResponse("GET /context/forward/info;param=value?name=" + echo + " HTTP/1.0\n\n");
|
||||
assertEquals(expected, responses);
|
||||
String rawResponse = _connector.getResponse(("""
|
||||
GET /context/forward/info;param=value?name=@ECHO@ HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""").replace("@ECHO@", echo));
|
||||
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Type: text/plain\r
|
||||
Content-Length: 62\r
|
||||
Connection: close\r
|
||||
\r
|
||||
/context\r
|
||||
/forward\r
|
||||
/info\r
|
||||
/context/forward/info;param=value\r
|
||||
""";
|
||||
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -194,15 +221,24 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(NamedIncludeServlet.class, "/include/*");
|
||||
String echo = _contextHandler.addServlet(EchoURIServlet.class, "/echo/*").getName();
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 62\r\n" +
|
||||
"\r\n" +
|
||||
"/context\r\n" +
|
||||
"/include\r\n" +
|
||||
"/info\r\n" +
|
||||
"/context/include/info;param=value\r\n";
|
||||
String responses = _connector.getResponse("GET /context/include/info;param=value?name=" + echo + " HTTP/1.0\n\n");
|
||||
String responses = _connector.getResponse("""
|
||||
GET /context/include/info;param=value?name=@ECHO@ HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""".replace("@ECHO@", echo));
|
||||
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 62\r
|
||||
Connection: close\r
|
||||
\r
|
||||
/context\r
|
||||
/include\r
|
||||
/info\r
|
||||
/context/include/info;param=value\r
|
||||
""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
}
|
||||
|
||||
|
@ -215,28 +251,58 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(AlwaysForwardServlet.class, "/forward/*");
|
||||
_contextHandler.addServlet(EchoServlet.class, "/echo/*");
|
||||
|
||||
String response;
|
||||
String rawResponse;
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/?echo=allgood HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 200 OK"));
|
||||
assertThat(response, containsString("allgood"));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/?echo=allgood HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 200 OK"));
|
||||
assertThat(rawResponse, containsString("allgood"));
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/params?echo=allgood HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 200 OK"));
|
||||
assertThat(response, containsString("allgood"));
|
||||
assertThat(response, containsString("forward"));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/params?echo=allgood HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 200 OK"));
|
||||
assertThat(rawResponse, containsString("allgood"));
|
||||
assertThat(rawResponse, containsString("forward"));
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/badparams?echo=badparams HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 500 "));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/badparams?echo=badparams HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 500 "));
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/?echo=badclient&bad=%88%A4 HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 400 "));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/?echo=badclient&bad=%88%A4 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 400 "));
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/params?echo=badclient&bad=%88%A4 HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 400 "));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/params?echo=badclient&bad=%88%A4 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 400 "));
|
||||
|
||||
response = _connector.getResponse("GET /context/forward/badparams?echo=badclientandparam&bad=%88%A4 HTTP/1.0\n\n");
|
||||
assertThat(response, containsString(" 500 "));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/forward/badparams?echo=badclientandparam&bad=%88%A4 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
assertThat(rawResponse, containsString(" 500 "));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -246,24 +312,36 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(IncludeServlet.class, "/IncludeServlet/*");
|
||||
_contextHandler.addServlet(AssertIncludeServlet.class, "/AssertIncludeServlet/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 7\r\n" +
|
||||
"\r\n" +
|
||||
"INCLUDE";
|
||||
String responses = _connector.getResponse("""
|
||||
GET /context/IncludeServlet?do=assertinclude&do=more&test=1 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/IncludeServlet?do=assertinclude&do=more&test=1 HTTP/1.0\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 7\r
|
||||
Connection: close\r
|
||||
\r
|
||||
INCLUDE""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO
|
||||
public void testForwardSendError() throws Exception
|
||||
{
|
||||
_contextHandler.addServlet(ForwardServlet.class, "/forward/*");
|
||||
_contextHandler.addServlet(SendErrorServlet.class, "/senderr/*");
|
||||
|
||||
String forwarded = _connector.getResponse("GET /context/forward?do=ctx.echo&uri=/senderr HTTP/1.0\n\n");
|
||||
String forwarded = _connector.getResponse("""
|
||||
GET /context/forward?do=ctx.echo&uri=/senderr HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
assertThat(forwarded, containsString("HTTP/1.1 590 "));
|
||||
assertThat(forwarded, containsString("<h2>HTTP ERROR 590 Five Nine Zero</h2>"));
|
||||
|
@ -274,16 +352,25 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(RelativeDispatch2Servlet.class, "/RelDispatchServlet/*");
|
||||
_contextHandler.addServlet(ThrowServlet.class, "/include/throw/*");
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 56\r\n" +
|
||||
"\r\n" +
|
||||
"THROWING\r\n" +
|
||||
"CAUGHT2 java.io.IOException: Expected\r\n" +
|
||||
"AFTER\r\n";
|
||||
|
||||
String responses = _connector.getResponse("GET /context/RelDispatchServlet?path=include/throw HTTP/1.0\n\n");
|
||||
assertEquals(expected, responses);
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/RelDispatchServlet?path=include/throw HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 56\r
|
||||
Connection: close\r
|
||||
\r
|
||||
THROWING\r
|
||||
CAUGHT2 java.io.IOException: Expected\r
|
||||
AFTER\r
|
||||
""";
|
||||
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -291,20 +378,29 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(RelativeDispatch2Servlet.class, "/RelDispatchServlet/*");
|
||||
_contextHandler.addServlet(ThrowServlet.class, "/include/throw/*");
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 122\r\n" +
|
||||
"\r\n" +
|
||||
"BEFORE\r\n" +
|
||||
"THROWING\r\n" +
|
||||
"CAUGHT1 java.io.IOException: Expected\r\n" +
|
||||
"BETWEEN\r\n" +
|
||||
"THROWING\r\n" +
|
||||
"CAUGHT2 java.io.IOException: Expected\r\n" +
|
||||
"AFTER\r\n";
|
||||
|
||||
String responses = _connector.getResponse("GET /context/RelDispatchServlet?include=true&path=include/throw HTTP/1.0\n\n");
|
||||
assertEquals(expected, responses);
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/RelDispatchServlet?include=true&path=include/throw HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 122\r
|
||||
Connection: close\r
|
||||
\r
|
||||
BEFORE\r
|
||||
THROWING\r
|
||||
CAUGHT1 java.io.IOException: Expected\r
|
||||
BETWEEN\r
|
||||
THROWING\r
|
||||
CAUGHT2 java.io.IOException: Expected\r
|
||||
AFTER\r
|
||||
""";
|
||||
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -314,15 +410,21 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(IncludeServlet.class, "/IncludeServlet/*");
|
||||
_contextHandler.addServlet(AssertForwardIncludeServlet.class, "/AssertForwardIncludeServlet/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 7\r\n" +
|
||||
"\r\n" +
|
||||
"INCLUDE";
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/ForwardServlet/forwardpath?do=include HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/ForwardServlet/forwardpath?do=include HTTP/1.0\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 7\r
|
||||
Connection: close\r
|
||||
\r
|
||||
INCLUDE""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -332,15 +434,21 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(ForwardServlet.class, "/ForwardServlet/*");
|
||||
_contextHandler.addServlet(AssertIncludeForwardServlet.class, "/AssertIncludeForwardServlet/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 7\r\n" +
|
||||
"\r\n" +
|
||||
"FORWARD";
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/IncludeServlet/includepath?do=forward HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/IncludeServlet/includepath?do=forward HTTP/1.0\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 7\r
|
||||
Connection: close\r
|
||||
\r
|
||||
FORWARD""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -349,15 +457,21 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(DispatchServletServlet.class, "/dispatch/*");
|
||||
_contextHandler.addServlet(RogerThatServlet.class, "/roger/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 11\r\n" +
|
||||
"\r\n" +
|
||||
"Roger That!";
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/dispatch/test?forward=/roger/that HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/dispatch/test?forward=/roger/that HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 11\r
|
||||
Connection: close\r
|
||||
\r
|
||||
Roger That!""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -366,11 +480,16 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(DispatchServletServlet.class, "/dispatch/*");
|
||||
_contextHandler.addServlet(RogerThatServlet.class, "/roger/that");
|
||||
|
||||
String requests = "GET /context/dispatch/test?forward=/%2e%2e/roger/that HTTP/1.0\n" + "Host: localhost\n\n";
|
||||
String rawRequest = """
|
||||
GET /context/dispatch/test?forward=/%2e%2e/roger/that HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""";
|
||||
|
||||
String responses = _connector.getResponse(requests);
|
||||
String rawResponse = _connector.getResponse(rawRequest);
|
||||
|
||||
assertThat(responses, startsWith("HTTP/1.1 404 "));
|
||||
assertThat(rawResponse, startsWith("HTTP/1.1 404 "));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -379,11 +498,16 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(DispatchServletServlet.class, "/dispatch/*");
|
||||
_contextHandler.addServlet(RogerThatServlet.class, "/roger/that");
|
||||
|
||||
String requests = "GET /context/dispatch/test?forward=/%252e%252e/roger/that HTTP/1.0\n" + "Host: localhost\n\n";
|
||||
String rawRequest = """
|
||||
GET /context/dispatch/test?forward=/%252e%252e/roger/that HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""";
|
||||
|
||||
String responses = _connector.getResponse(requests);
|
||||
String rawResponse = _connector.getResponse(rawRequest);
|
||||
|
||||
assertThat(responses, startsWith("HTTP/1.1 404 "));
|
||||
assertThat(rawResponse, startsWith("HTTP/1.1 404 "));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -392,23 +516,36 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(DispatchServletServlet.class, "/dispatch/*");
|
||||
_contextHandler.addServlet(RogerThatServlet.class, "/roger/*");
|
||||
|
||||
String expected =
|
||||
"HTTP/1.1 200 OK\r\n" +
|
||||
"Content-Length: 11\r\n" +
|
||||
"\r\n" +
|
||||
"Roger That!";
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/dispatch/test?include=/roger/that HTTP/1.0\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/dispatch/test?include=/roger/that HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String expected = """
|
||||
HTTP/1.1 200 OK\r
|
||||
Content-Length: 11\r
|
||||
\r
|
||||
Roger That!""";
|
||||
|
||||
assertEquals(expected, responses);
|
||||
assertEquals(expected, rawResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWorkingResourceHandler() throws Exception
|
||||
{
|
||||
String responses = _connector.getResponse("GET /resource/content.txt HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /resource/content.txt HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
assertThat(responses, containsString("content goes here")); // from inside the context.txt file
|
||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||
|
||||
// from inside the context.txt file
|
||||
assertThat(response.getContent(), containsString("content goes here")); // from inside the context.txt file
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -417,12 +554,17 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(DispatchToResourceServlet.class, "/resourceServlet/*");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/resourceServlet/content.txt?do=include HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/resourceServlet/content.txt?do=include HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||
|
||||
// from inside the context.txt file
|
||||
assertNotNull(responses);
|
||||
|
||||
assertThat(responses, containsString("content goes here"));
|
||||
assertThat(response.getContent(), containsString("content goes here"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -431,10 +573,17 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(DispatchToResourceServlet.class, "/resourceServlet/*");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/resourceServlet/content.txt?do=forward HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/resourceServlet/content.txt?do=forward HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||
|
||||
// from inside the context.txt file
|
||||
assertThat(responses, containsString("content goes here"));
|
||||
assertThat(response.getContent(), containsString("content goes here"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -443,10 +592,17 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(DispatchToResourceServlet.class, "/resourceServlet/*");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/resourceServlet/content.txt?do=include&wrapped=true HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/resourceServlet/content.txt?do=include&wrapped=true HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||
|
||||
// from inside the context.txt file
|
||||
assertThat(responses, containsString("content goes here"));
|
||||
assertThat(response.getContent(), containsString("content goes here"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -455,10 +611,17 @@ public class DispatcherTest
|
|||
{
|
||||
_contextHandler.addServlet(DispatchToResourceServlet.class, "/resourceServlet/*");
|
||||
|
||||
String responses = _connector.getResponse("GET /context/resourceServlet/content.txt?do=forward&wrapped=true HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
String rawResponse = _connector.getResponse("""
|
||||
GET /context/resourceServlet/content.txt?do=forward&wrapped=true HTTP/1.1
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||
|
||||
// from inside the context.txt file
|
||||
assertThat(responses, containsString("content goes here"));
|
||||
assertThat(response.getContent(), containsString("content goes here"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -469,15 +632,38 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(EchoServlet.class, "/echo/*");
|
||||
_contextHandler.addFilter(ForwardFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
|
||||
|
||||
String rogerResponse = _connector.getResponse("GET /context/ HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
HttpTester.Response response;
|
||||
String rawResponse;
|
||||
|
||||
String echoResponse = _connector.getResponse("GET /context/foo?echo=echoText HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/ HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
String rechoResponse = _connector.getResponse("GET /context/?echo=echoText HTTP/1.0\n" + "Host: localhost\n\n");
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.getContent(), containsString("Roger That!"));
|
||||
|
||||
assertThat(rogerResponse, containsString("Roger That!"));
|
||||
assertThat(echoResponse, containsString("echoText"));
|
||||
assertThat(rechoResponse, containsString("txeTohce"));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/foo?echo=echoText HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.getContent(), containsString("echoText"));
|
||||
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/?echo=echoText HTTP/1.1\r
|
||||
Host: localhost\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.getContent(), containsString("txeTohce"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -496,13 +682,28 @@ public class DispatcherTest
|
|||
_contextHandler.addServlet(new ServletHolder("DispatchServlet", AsyncDispatch2TestServlet.class), "/DispatchServlet");
|
||||
_contextHandler.addServlet(new ServletHolder("DispatchServlet2", AsyncDispatch2TestServlet.class), "/DispatchServlet2");
|
||||
|
||||
HttpTester.Response response;
|
||||
String rawResponse;
|
||||
|
||||
// TODO Test TCK hack for https://github.com/eclipse-ee4j/jakartaee-tck/issues/585
|
||||
String response = _connector.getResponse("GET /context/DispatchServlet HTTP/1.0\n\n");
|
||||
assertThat(response, containsString("matchValue=DispatchServlet, pattern=/DispatchServlet, servletName=DispatchServlet, mappingMatch=EXACT"));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/DispatchServlet HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.getContent(), containsString("matchValue=DispatchServlet, pattern=/DispatchServlet, servletName=DispatchServlet, mappingMatch=EXACT"));
|
||||
|
||||
// TODO Test how it should work after fix for https://github.com/eclipse-ee4j/jakartaee-tck/issues/585
|
||||
String response2 = _connector.getResponse("GET /context/DispatchServlet2 HTTP/1.0\n\n");
|
||||
assertThat(response2, containsString("matchValue=TestServlet, pattern=/TestServlet, servletName=TestServlet, mappingMatch=EXACT"));
|
||||
rawResponse = _connector.getResponse("""
|
||||
GET /context/DispatchServlet2 HTTP/1.1\r
|
||||
Host: local\r
|
||||
Connection: close\r
|
||||
\r
|
||||
""");
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.getContent(), containsString("matchValue=TestServlet, pattern=/TestServlet, servletName=TestServlet, mappingMatch=EXACT"));
|
||||
}
|
||||
|
||||
public static class WrappingFilter implements Filter
|
||||
|
@ -553,13 +754,13 @@ public class DispatcherTest
|
|||
}
|
||||
|
||||
@Override
|
||||
public void write(int b) throws IOException
|
||||
public void write(int b)
|
||||
{
|
||||
buffer.write(b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(byte[] b, int off, int len) throws IOException
|
||||
public void write(byte[] b, int off, int len)
|
||||
{
|
||||
buffer.write(b, off, len);
|
||||
}
|
||||
|
@ -596,6 +797,7 @@ public class DispatcherTest
|
|||
dispatcher = getServletContext().getRequestDispatcher(request.getParameter("uri"));
|
||||
else if (request.getParameter("do").equals("req.echo"))
|
||||
dispatcher = request.getRequestDispatcher(request.getParameter("uri"));
|
||||
assert dispatcher != null;
|
||||
dispatcher.forward(request, response);
|
||||
}
|
||||
}
|
||||
|
@ -637,7 +839,7 @@ public class DispatcherTest
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
RequestDispatcher dispatcher = null;
|
||||
RequestDispatcher dispatcher;
|
||||
request.setAttribute("org.eclipse.jetty.server.Request.queryEncoding", "cp1251");
|
||||
dispatcher = getServletContext().getRequestDispatcher("/AssertForwardServlet?do=end&else=%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D0%BD%D0%BE%3D%D0%A2%D0%B5%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0");
|
||||
dispatcher.forward(request, response);
|
||||
|
@ -666,15 +868,12 @@ public class DispatcherTest
|
|||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
|
||||
{
|
||||
|
||||
if (servletContext == null || !(request instanceof HttpServletRequest) || !(response instanceof HttpServletResponse))
|
||||
if (servletContext == null || !(request instanceof HttpServletRequest req) || !(response instanceof HttpServletResponse))
|
||||
{
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
|
||||
HttpServletRequest req = (HttpServletRequest)request;
|
||||
HttpServletResponse resp = (HttpServletResponse)response;
|
||||
|
||||
if (req.getParameter("echo") != null && "/".equals(req.getPathInfo()))
|
||||
{
|
||||
RequestDispatcher dispatcher = servletContext.getRequestDispatcher("/recho");
|
||||
|
@ -688,7 +887,6 @@ public class DispatcherTest
|
|||
else
|
||||
{
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -704,7 +902,7 @@ public class DispatcherTest
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
RequestDispatcher dispatcher = null;
|
||||
RequestDispatcher dispatcher;
|
||||
|
||||
if (request.getParameter("include") != null)
|
||||
{
|
||||
|
@ -735,6 +933,7 @@ public class DispatcherTest
|
|||
dispatcher = getServletContext().getRequestDispatcher("/AssertForwardIncludeServlet/assertpath?do=end");
|
||||
else if (request.getParameter("do").equals("assertinclude"))
|
||||
dispatcher = getServletContext().getRequestDispatcher("/AssertIncludeServlet?do=end&do=the");
|
||||
assert dispatcher != null;
|
||||
dispatcher.include(request, response);
|
||||
}
|
||||
}
|
||||
|
@ -744,7 +943,6 @@ public class DispatcherTest
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
RequestDispatcher dispatcher = null;
|
||||
String path = request.getParameter("path");
|
||||
String include = request.getParameter("include");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
|
@ -845,7 +1043,7 @@ public class DispatcherTest
|
|||
}
|
||||
else
|
||||
{
|
||||
res.getWriter().print(new StringBuffer(echoText).reverse().toString());
|
||||
res.getWriter().print(new StringBuffer(echoText).reverse());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -914,7 +1112,7 @@ public class DispatcherTest
|
|||
assertEquals("/context/ForwardServlet", request.getAttribute(Dispatcher.FORWARD_REQUEST_URI));
|
||||
assertEquals("/context", request.getAttribute(Dispatcher.FORWARD_CONTEXT_PATH));
|
||||
assertEquals("/ForwardServlet", request.getAttribute(Dispatcher.FORWARD_SERVLET_PATH));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.FORWARD_PATH_INFO));
|
||||
assertNull(request.getAttribute(Dispatcher.FORWARD_PATH_INFO));
|
||||
assertEquals("do=assertforward&do=more&test=1", request.getAttribute(Dispatcher.FORWARD_QUERY_STRING));
|
||||
HttpServletMapping fwdMapping = (HttpServletMapping)request.getAttribute(Dispatcher.FORWARD_MAPPING);
|
||||
assertNotNull(fwdMapping);
|
||||
|
@ -925,8 +1123,8 @@ public class DispatcherTest
|
|||
List<String> requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
assertTrue(requestAttributeNames.containsAll(expectedAttributeNames));
|
||||
|
||||
assertEquals(null, request.getPathInfo());
|
||||
assertEquals(null, request.getPathTranslated());
|
||||
assertNull(request.getPathInfo());
|
||||
assertNull(request.getPathTranslated());
|
||||
assertEquals("do=end&do=the", request.getQueryString());
|
||||
assertEquals("/context/AssertForwardServlet", request.getRequestURI());
|
||||
assertEquals("/context", request.getContextPath());
|
||||
|
@ -943,13 +1141,13 @@ public class DispatcherTest
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
byte[] cp1251Bytes = TypeUtil.fromHexString("d2e5ecefe5f0e0f2f3f0e0");
|
||||
byte[] cp1251Bytes = StringUtil.fromHexString("d2e5ecefe5f0e0f2f3f0e0");
|
||||
String expectedCP1251String = new String(cp1251Bytes, "cp1251");
|
||||
|
||||
assertEquals("/context/ForwardServlet", request.getAttribute(Dispatcher.FORWARD_REQUEST_URI));
|
||||
assertEquals("/context", request.getAttribute(Dispatcher.FORWARD_CONTEXT_PATH));
|
||||
assertEquals("/ForwardServlet", request.getAttribute(Dispatcher.FORWARD_SERVLET_PATH));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.FORWARD_PATH_INFO));
|
||||
assertNull(request.getAttribute(Dispatcher.FORWARD_PATH_INFO));
|
||||
assertEquals("do=assertforward&foreign=%d2%e5%ec%ef%e5%f0%e0%f2%f3%f0%e0&test=1", request.getAttribute(Dispatcher.FORWARD_QUERY_STRING));
|
||||
HttpServletMapping fwdMapping = (HttpServletMapping)request.getAttribute(Dispatcher.FORWARD_MAPPING);
|
||||
assertNotNull(fwdMapping);
|
||||
|
@ -960,8 +1158,8 @@ public class DispatcherTest
|
|||
List<String> requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
assertTrue(requestAttributeNames.containsAll(expectedAttributeNames));
|
||||
|
||||
assertEquals(null, request.getPathInfo());
|
||||
assertEquals(null, request.getPathTranslated());
|
||||
assertNull(request.getPathInfo());
|
||||
assertNull(request.getPathTranslated());
|
||||
|
||||
MultiMap<String> query = new MultiMap<>();
|
||||
UrlEncoded.decodeTo(request.getQueryString(), query, UrlEncoded.ENCODING);
|
||||
|
@ -976,7 +1174,7 @@ public class DispatcherTest
|
|||
assertThat(query.containsKey("foreign"), is(false));
|
||||
|
||||
String[] vals = request.getParameterValues("foreign");
|
||||
assertTrue(vals != null);
|
||||
assertNotNull(vals);
|
||||
assertEquals(1, vals.length);
|
||||
assertEquals(expectedCP1251String, vals[0]);
|
||||
|
||||
|
@ -998,19 +1196,19 @@ public class DispatcherTest
|
|||
assertEquals("/context/AssertIncludeServlet", request.getAttribute(Dispatcher.INCLUDE_REQUEST_URI));
|
||||
assertEquals("/context", request.getAttribute(Dispatcher.INCLUDE_CONTEXT_PATH));
|
||||
assertEquals("/AssertIncludeServlet", request.getAttribute(Dispatcher.INCLUDE_SERVLET_PATH));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_PATH_INFO));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_PATH_INFO));
|
||||
assertEquals("do=end&do=the", request.getAttribute(Dispatcher.INCLUDE_QUERY_STRING));
|
||||
HttpServletMapping incMapping = (HttpServletMapping)request.getAttribute(Dispatcher.INCLUDE_MAPPING);
|
||||
assertNotNull(incMapping);
|
||||
assertEquals("AssertIncludeServlet", incMapping.getMatchValue());
|
||||
|
||||
List expectedAttributeNames = Arrays.asList(Dispatcher.INCLUDE_REQUEST_URI, Dispatcher.INCLUDE_CONTEXT_PATH,
|
||||
List<String> expectedAttributeNames = Arrays.asList(Dispatcher.INCLUDE_REQUEST_URI, Dispatcher.INCLUDE_CONTEXT_PATH,
|
||||
Dispatcher.INCLUDE_SERVLET_PATH, Dispatcher.INCLUDE_QUERY_STRING, Dispatcher.INCLUDE_MAPPING);
|
||||
List requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
List<String> requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
assertTrue(requestAttributeNames.containsAll(expectedAttributeNames));
|
||||
|
||||
assertEquals(null, request.getPathInfo());
|
||||
assertEquals(null, request.getPathTranslated());
|
||||
assertNull(request.getPathInfo());
|
||||
assertNull(request.getPathTranslated());
|
||||
assertEquals("do=assertinclude&do=more&test=1", request.getQueryString());
|
||||
assertEquals("/context/IncludeServlet", request.getRequestURI());
|
||||
assertEquals("/context", request.getContextPath());
|
||||
|
@ -1046,15 +1244,15 @@ public class DispatcherTest
|
|||
assertNotNull(incMapping);
|
||||
assertEquals("AssertForwardIncludeServlet", incMapping.getMatchValue());
|
||||
|
||||
List expectedAttributeNames = Arrays.asList(Dispatcher.FORWARD_REQUEST_URI, Dispatcher.FORWARD_CONTEXT_PATH, Dispatcher.FORWARD_SERVLET_PATH,
|
||||
List<String> expectedAttributeNames = Arrays.asList(Dispatcher.FORWARD_REQUEST_URI, Dispatcher.FORWARD_CONTEXT_PATH, Dispatcher.FORWARD_SERVLET_PATH,
|
||||
Dispatcher.FORWARD_PATH_INFO, Dispatcher.FORWARD_QUERY_STRING, Dispatcher.FORWARD_MAPPING,
|
||||
Dispatcher.INCLUDE_REQUEST_URI, Dispatcher.INCLUDE_CONTEXT_PATH, Dispatcher.INCLUDE_SERVLET_PATH,
|
||||
Dispatcher.INCLUDE_PATH_INFO, Dispatcher.INCLUDE_QUERY_STRING, Dispatcher.INCLUDE_MAPPING);
|
||||
List requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
List<String> requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
assertTrue(requestAttributeNames.containsAll(expectedAttributeNames));
|
||||
|
||||
assertEquals("/includepath", request.getPathInfo());
|
||||
assertEquals(null, request.getPathTranslated());
|
||||
assertNull(request.getPathTranslated());
|
||||
assertEquals("do=assertforwardinclude", request.getQueryString());
|
||||
assertEquals("/context/IncludeServlet/includepath", request.getRequestURI());
|
||||
assertEquals("/context", request.getContextPath());
|
||||
|
@ -1072,12 +1270,12 @@ public class DispatcherTest
|
|||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
// forward hides include
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_REQUEST_URI));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_CONTEXT_PATH));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_SERVLET_PATH));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_PATH_INFO));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_QUERY_STRING));
|
||||
assertEquals(null, request.getAttribute(Dispatcher.INCLUDE_MAPPING));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_REQUEST_URI));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_CONTEXT_PATH));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_SERVLET_PATH));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_PATH_INFO));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_QUERY_STRING));
|
||||
assertNull(request.getAttribute(Dispatcher.INCLUDE_MAPPING));
|
||||
|
||||
assertEquals("/context/IncludeServlet/includepath", request.getAttribute(Dispatcher.FORWARD_REQUEST_URI));
|
||||
assertEquals("/context", request.getAttribute(Dispatcher.FORWARD_CONTEXT_PATH));
|
||||
|
@ -1088,13 +1286,13 @@ public class DispatcherTest
|
|||
assertNotNull(fwdMapping);
|
||||
assertEquals("IncludeServlet", fwdMapping.getMatchValue());
|
||||
|
||||
List expectedAttributeNames = Arrays.asList(Dispatcher.FORWARD_REQUEST_URI, Dispatcher.FORWARD_CONTEXT_PATH, Dispatcher.FORWARD_SERVLET_PATH,
|
||||
List<String> expectedAttributeNames = Arrays.asList(Dispatcher.FORWARD_REQUEST_URI, Dispatcher.FORWARD_CONTEXT_PATH, Dispatcher.FORWARD_SERVLET_PATH,
|
||||
Dispatcher.FORWARD_PATH_INFO, Dispatcher.FORWARD_QUERY_STRING, Dispatcher.FORWARD_MAPPING);
|
||||
List requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
List<String> requestAttributeNames = Collections.list(request.getAttributeNames());
|
||||
assertTrue(requestAttributeNames.containsAll(expectedAttributeNames));
|
||||
|
||||
assertEquals("/assertpath", request.getPathInfo());
|
||||
assertEquals(null, request.getPathTranslated());
|
||||
assertNull(request.getPathTranslated());
|
||||
assertEquals("do=end", request.getQueryString());
|
||||
assertEquals("/context/AssertIncludeForwardServlet/assertpath", request.getRequestURI());
|
||||
assertEquals("/context", request.getContextPath());
|
||||
|
@ -1119,12 +1317,11 @@ public class DispatcherTest
|
|||
}
|
||||
else
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("matchValue=" + mapping.getMatchValue())
|
||||
.append(", pattern=" + mapping.getPattern())
|
||||
.append(", servletName=" + mapping.getServletName())
|
||||
.append(", mappingMatch=" + mapping.getMappingMatch());
|
||||
resp.getWriter().println(sb.toString());
|
||||
String sb = "matchValue=" + mapping.getMatchValue() +
|
||||
", pattern=" + mapping.getPattern() +
|
||||
", servletName=" + mapping.getServletName() +
|
||||
", mappingMatch=" + mapping.getMappingMatch();
|
||||
resp.getWriter().println(sb);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue