blob: b96e43d24ddda06f0f5af01d4ca1a29f2d20de74 [file] [log] [blame]
package com.google.gitiles;
import static com.google.common.truth.Truth.assertThat;
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
import com.google.gitiles.GitilesRequestFailureException.FailureReason;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.http.server.glue.MetaFilter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class DefaultErrorHandlingFilterTest {
private final MetaFilter mf = new MetaFilter();
@Before
public void setUp() {
mf.serve("*").through(new DefaultErrorHandlingFilter()).with(new TestServlet());
}
@Test
public void renderError() throws Exception {
FakeHttpServletRequest req = FakeHttpServletRequest.newRequest();
req.setPathInfo("/");
FakeHttpServletResponse resp = new FakeHttpServletResponse();
mf.doFilter(req, resp, (unusedReq, unusedResp) -> {});
assertThat(resp.getStatus()).isEqualTo(SC_BAD_REQUEST);
assertThat(resp.getHeader(DefaultErrorHandlingFilter.GITILES_ERROR))
.isEqualTo("INCORECT_PARAMETER");
}
private static class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
throw new GitilesRequestFailureException(FailureReason.INCORECT_PARAMETER);
}
}
}