|
@@ -33,6 +33,7 @@ import static org.junit.Assert.assertTrue;
|
|
|
import java.io.InputStream;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
+import java.net.URLEncoder;
|
|
|
|
|
|
import org.apache.commons.lang.ArrayUtils;
|
|
|
import org.apache.hadoop.yarn.MockApps;
|
|
@@ -260,6 +261,35 @@ public class TestWebApp {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Test public void testEncodedUrl() throws Exception {
|
|
|
+ WebApp app =
|
|
|
+ WebApps.$for("test", TestWebApp.class, this, "ws").start(new WebApp() {
|
|
|
+ @Override
|
|
|
+ public void setup() {
|
|
|
+ bind(MyTestJAXBContextResolver.class);
|
|
|
+ bind(MyTestWebService.class);
|
|
|
+
|
|
|
+ route("/:foo", FooController.class);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ String baseUrl = baseUrl(app);
|
|
|
+
|
|
|
+ try {
|
|
|
+ // Test encoded url
|
|
|
+ String rawPath = "localhost:8080";
|
|
|
+ String encodedUrl = baseUrl + "test/" +
|
|
|
+ URLEncoder.encode(rawPath, "UTF-8");
|
|
|
+ assertEquals("foo" + rawPath, getContent(encodedUrl).trim());
|
|
|
+
|
|
|
+ rawPath = "@;%$";
|
|
|
+ encodedUrl = baseUrl + "test/" +
|
|
|
+ URLEncoder.encode(rawPath, "UTF-8");
|
|
|
+ assertEquals("foo" + rawPath, getContent(encodedUrl).trim());
|
|
|
+ } finally {
|
|
|
+ app.stop();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// This is to test the GuiceFilter should only be applied to webAppContext,
|
|
|
// not to staticContext and logContext;
|
|
|
@Test public void testYARNWebAppContext() throws Exception {
|