Skip to content

Commit 4099268

Browse files
committed
Add redirect route
1 parent e21465c commit 4099268

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

src/main/java/httpserver/ResponderSupplierFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ private RouteMap getRouteMap() {
3939
new CookieResponder(),
4040
new EatCookieResponder(),
4141
new ParametersResponder(),
42-
new FormGetResponder(new PathExaminer(), new FileOperator())
42+
new FormGetResponder(new PathExaminer(), new FileOperator()),
43+
new RedirectResponder(),
4344
};
4445
return new RouteMap(responderList);
4546
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package httpserver.responder;
2+
3+
import httpserver.AppConfig;
4+
import httpserver.Request;
5+
import httpserver.response.FoundResponse;
6+
import httpserver.response.Response;
7+
8+
import java.io.IOException;
9+
10+
public class RedirectResponder implements Responder {
11+
@Override
12+
public Response respond(AppConfig appConfig, Request request) throws IOException {
13+
return new FoundResponse("/");
14+
}
15+
16+
@Override
17+
public boolean allowed(String pathString) {
18+
return pathString.equals("/redirect");
19+
}
20+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package httpserver.responder;
2+
3+
import httpserver.AppConfig;
4+
import httpserver.Request;
5+
import httpserver.response.Response;
6+
import org.junit.Test;
7+
8+
import static org.junit.Assert.*;
9+
import static org.mockito.Mockito.*;
10+
11+
public class RedirectResponderTest {
12+
13+
private final RedirectResponder redirectResponder;
14+
15+
public RedirectResponderTest() {
16+
redirectResponder = new RedirectResponder();
17+
}
18+
19+
@Test
20+
public void returnsFourEighteen() throws Exception {
21+
Response response = redirectResponder.respond(mock(AppConfig.class),
22+
mock(Request.class));
23+
24+
assertEquals(302, response.getStatusCode());
25+
assertEquals("/", response.getHeaders()[0].getValue());
26+
}
27+
28+
@Test
29+
public void redirectIsAllowed() throws Exception {
30+
assertTrue(redirectResponder.allowed("/redirect"));
31+
assertFalse(redirectResponder.allowed("/other"));
32+
}
33+
}

0 commit comments

Comments
 (0)