public static String testQueryParam(String requestMethod, String override) { OverrideMethodFilter filter = new OverrideMethodFilter(); ContainerRequest request = new ContainerRequest( URI.create("http://www.example.com/"), URI.create(String.format("http://www.example.com/?_method=%s", override)), requestMethod, new MockSecurityContext(), new MockPropertiesDelegate()); filter.filter(request); return request.getMethod(); }
@Test(dataProvider = "methods") public void testRequestUnmodifiedWithNoOverride(String method) { OverrideMethodFilter filter = new OverrideMethodFilter(); ContainerRequest request = new ContainerRequest( URI.create("http://www.example.com/"), URI.create("http://www.example.com/"), method, new MockSecurityContext(), new MockPropertiesDelegate()); filter.filter(request); assertEqualsIgnoreCase(request.getMethod(), method); }
@Test public void testHeaderHasPrecedenceOverQueryParam() { OverrideMethodFilter filter = new OverrideMethodFilter(); ContainerRequest request = new ContainerRequest( URI.create("http://www.example.com/"), URI.create("http://www.example.com/?_method=PUT"), "POST", new MockSecurityContext(), new MockPropertiesDelegate()); request.header(OverrideMethodFilter.HEADER, "DELETE"); filter.filter(request); assertEqualsIgnoreCase(request.getMethod(), "DELETE"); }
private static String testHeader(String requestMethod, String override) { OverrideMethodFilter filter = new OverrideMethodFilter(); ContainerRequest request = new ContainerRequest( URI.create("http://www.example.com/"), URI.create("http://www.example.com/"), requestMethod, new MockSecurityContext(), new MockPropertiesDelegate()); request.header("X-HTTP-Method-Override", override); filter.filter(request); return request.getMethod(); }