@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(); } }
@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(); } }
@Test public void testRobotsText() throws Exception { WebApp app = WebApps.$for("test", TestWebApp.class, this, "ws").start(new WebApp() { @Override public void setup() { bind(MyTestJAXBContextResolver.class); bind(MyTestWebService.class); } }); String baseUrl = baseUrl(app); try { //using system line separator here since that is what // TextView (via PrintWriter) seems to use. String[] robotsTxtOutput = getContent(baseUrl + RobotsTextPage.ROBOTS_TXT).trim().split(System.getProperty("line" + ".separator")); assertEquals(2, robotsTxtOutput.length); assertEquals("User-agent: *", robotsTxtOutput[0]); assertEquals("Disallow: /", robotsTxtOutput[1]); } finally { app.stop(); } }
@Test public void testDefaultRoutes() throws Exception { WebApp app = WebApps.$for("test", this).start(); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl +"test/foo").trim()); assertEquals("foo", getContent(baseUrl +"test/foo/index").trim()); assertEquals("bar", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default", getContent(baseUrl +"test").trim()); assertEquals("default", getContent(baseUrl +"test/").trim()); assertEquals("default", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testDefaultRoutes() throws Exception { WebApp app = WebApps.$for("test", this).start(); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl +"test/foo").trim()); assertEquals("foo", getContent(baseUrl +"test/foo/index").trim()); assertEquals("bar", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default", getContent(baseUrl +"test").trim()); assertEquals("default", getContent(baseUrl +"test/").trim()); assertEquals("default", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testDefaultRoutes() throws Exception { WebApp app = WebApps.$for("test", this).start(); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl +"test/foo").trim()); assertEquals("foo", getContent(baseUrl +"test/foo/index").trim()); assertEquals("bar", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default", getContent(baseUrl +"test").trim()); assertEquals("default", getContent(baseUrl +"test/").trim()); assertEquals("default", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testYARNWebAppContext() throws Exception { // setting up the log context System.setProperty("hadoop.log.dir", "/Not/Existing/dir"); WebApp app = WebApps.$for("test", this).start(new WebApp() { @Override public void setup() { route("/", FooController.class); } }); String baseUrl = baseUrl(app); try { // should not redirect to foo assertFalse("foo".equals(getContent(baseUrl +"static").trim())); // Not able to access a non-existing dir, should not redirect to foo. assertEquals(404, getResponseCode(baseUrl +"logs")); // should be able to redirect to foo. assertEquals("foo", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testYARNWebAppContext() throws Exception { // setting up the log context System.setProperty("hadoop.log.dir", "/Not/Existing/dir"); WebApp app = WebApps.$for("test", this).start(new WebApp() { @Override public void setup() { route("/", FooController.class); } }); String baseUrl = baseUrl(app); try { // Not able to access a non-existing dir, should not redirect to foo. assertEquals(404, getResponseCode(baseUrl +"logs")); // should be able to redirect to foo. assertEquals("foo", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testRobotsText() throws Exception { WebApp app = WebApps.$for("test", TestWebApp.class, this, "ws").start(new WebApp() { @Override public void setup() { bind(MyTestJAXBContextResolver.class); bind(MyTestWebService.class); } }); String baseUrl = baseUrl(app); try { //using system line separator here since that is what // TextView (via PrintWriter) seems to use. String[] robotsTxtOutput = getContent(baseUrl + RobotsTextPage.ROBOTS_TXT).trim().split(System.getProperty("line" + ".separator")); assertEquals(2, robotsTxtOutput.length); assertEquals("User-agent: *", robotsTxtOutput[0]); assertEquals("Disallow: /", robotsTxtOutput[1]); } finally { app.stop(); } }
@Test public void testYARNWebAppContext() throws Exception { // setting up the log context System.setProperty("hadoop.log.dir", "/Not/Existing/dir"); WebApp app = WebApps.$for("test", this).start(new WebApp() { @Override public void setup() { route("/", FooController.class); } }); String baseUrl = baseUrl(app); try { // Not able to access a non-existing dir, should not redirect to foo. assertEquals(404, getResponseCode(baseUrl +"logs")); // should be able to redirect to foo. assertEquals("foo", getContent(baseUrl).trim()); } finally { app.stop(); } }
@Test public void testCustomRoutes() 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); route("/bar/foo", FooController.class, "bar"); route("/foo/:foo", DefaultController.class); route("/foo/bar/:foo", DefaultController.class, "index"); } }); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl).trim()); assertEquals("foo", getContent(baseUrl +"test").trim()); assertEquals("foo1", getContent(baseUrl +"test/1").trim()); assertEquals("bar", getContent(baseUrl +"test/bar/foo").trim()); assertEquals("default", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default1", getContent(baseUrl +"test/foo/1").trim()); assertEquals("default2", getContent(baseUrl +"test/foo/bar/2").trim()); assertEquals(404, getResponseCode(baseUrl +"test/goo")); assertEquals(200, getResponseCode(baseUrl +"ws/v1/test")); assertTrue(getContent(baseUrl +"ws/v1/test").contains("myInfo")); } finally { app.stop(); } }
@Test public void testCustomRoutes() 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); route("/bar/foo", FooController.class, "bar"); route("/foo/:foo", DefaultController.class); route("/foo/bar/:foo", DefaultController.class, "index"); } }); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl).trim()); assertEquals("foo", getContent(baseUrl +"test").trim()); assertEquals("foo1", getContent(baseUrl +"test/1").trim()); assertEquals("bar", getContent(baseUrl +"test/bar/foo").trim()); assertEquals("default", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default1", getContent(baseUrl +"test/foo/1").trim()); assertEquals("default2", getContent(baseUrl +"test/foo/bar/2").trim()); assertEquals(404, getResponseCode(baseUrl +"test/goo")); assertEquals(200, getResponseCode(baseUrl +"ws/v1/test")); assertTrue(getContent(baseUrl +"ws/v1/test").contains("myInfo")); } finally { app.stop(); } }
@Test public void testCustomRoutes() 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); route("/bar/foo", FooController.class, "bar"); route("/foo/:foo", DefaultController.class); route("/foo/bar/:foo", DefaultController.class, "index"); } }); String baseUrl = baseUrl(app); try { assertEquals("foo", getContent(baseUrl).trim()); assertEquals("foo", getContent(baseUrl +"test").trim()); assertEquals("foo1", getContent(baseUrl +"test/1").trim()); assertEquals("bar", getContent(baseUrl +"test/bar/foo").trim()); assertEquals("default", getContent(baseUrl +"test/foo/bar").trim()); assertEquals("default1", getContent(baseUrl +"test/foo/1").trim()); assertEquals("default2", getContent(baseUrl +"test/foo/bar/2").trim()); assertEquals(404, getResponseCode(baseUrl +"test/goo")); assertEquals(200, getResponseCode(baseUrl +"ws/v1/test")); assertTrue(getContent(baseUrl +"ws/v1/test").contains("myInfo")); } finally { app.stop(); } }
@Test public void testPortRanges() throws Exception { WebApp app = WebApps.$for("test", this).start(); String baseUrl = baseUrl(app); WebApp app1 = null; WebApp app2 = null;