private Object sendOptionsRequest( RequestConfigurer configurer, Method method, Builder request ) { Response response = request.options(); validateResponse( configurer, response, "OPTIONS" ); return response.readEntity( method.getReturnType() ); }
@Test public void testOptionsTimemap() { when(mockMementoService.mementos(eq(identifier))).thenReturn(completedFuture(new TreeSet<>(asList( ofEpochSecond(timestamp - 2000), ofEpochSecond(timestamp - 1000), time)))); final Response res = target(RESOURCE_PATH).queryParam("ext", "timemap").request().options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertAll("Check allowed methods", checkAllowedMethods(res, asList(GET, HEAD, OPTIONS))); assertAll("Check null headers", checkNullHeaders(res, asList(ACCEPT_POST, ACCEPT_PATCH, MEMENTO_DATETIME))); }
@Test public void testOptionsException() { when(mockResourceService.get(eq(identifier))).thenAnswer(inv -> supplyAsync(() -> { throw new RuntimeTrellisException("Expected exception"); })); final Response res = target(RESOURCE_PATH).request().options(); assertEquals(SC_INTERNAL_SERVER_ERROR, res.getStatus(), "Unexpected response code!"); }
@Test public void testOptionsLDPNR() { final Response res = target(BINARY_PATH).request().options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertEquals(APPLICATION_SPARQL_UPDATE, res.getHeaderString(ACCEPT_PATCH), "Incorrect Accept-Patch header!"); assertAll("Check allowed methods", checkAllowedMethods(res, asList(PATCH, PUT, DELETE, GET, HEAD, OPTIONS))); assertAll("Check LDP type Link headers", checkLdpTypeHeaders(res, LDP.NonRDFSource)); assertAll("Check null headers", checkNullHeaders(res, asList(ACCEPT_POST, MEMENTO_DATETIME))); }
@Test public void testOptionsLDPRS() { final Response res = target(RESOURCE_PATH).request().options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertEquals(APPLICATION_SPARQL_UPDATE, res.getHeaderString(ACCEPT_PATCH), "Incorrect Accept-Patch header!"); assertAll("Check LDP type Link headers", checkLdpTypeHeaders(res, LDP.RDFSource)); assertAll("Check allowed methods", checkAllowedMethods(res, asList(PATCH, PUT, DELETE, GET, HEAD, OPTIONS))); assertAll("Check null headers", checkNullHeaders(res, asList(MEMENTO_DATETIME))); }
@Override public <T> T options(GenericType<T> responseType) { return delegate().options(responseType); }
@Test public void testSameOriginPreflight() { Response response = target() .path("delete") .request() .header(CorsHeaders.ORIGIN, SAME_ORGIN) .header(CorsHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE) .options(); assertEquals(200, response.getStatus()); assertNoCorsHeaders(response.getHeaders()); }
@Test public void testInvalidCorsPreflightRequestByMethod() { Response response = target() .path("delete") .request() .header(CorsHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET) .header(CorsHeaders.ORIGIN, DEFAULT_ORIGIN) .options(); assertEquals(403, response.getStatus()); assertNoCorsHeaders(response.getHeaders()); }
@Test public void testOptionsPreflightInvalid2() { final Response res = target(RESOURCE_PATH).request().header("Origin", ORIGIN) .header("Access-Control-Request-Method", "PATCH") .header("Access-Control-Request-Headers", "Content-Type, Link, Bar").options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertAll("Check that there are no CORS headers", checkNoCORSHeaders(res)); }
@Test public void testOptions2() { when(mockResource.getInteractionModel()).thenReturn(LDP.Container); final Response res = target("resource").request().options(); assertAll("Check response", checkStandardResponse(res)); }
@Test public void testOptionsVersion() { final Response res = target(RESOURCE_PATH).queryParam("version", timestamp).request().options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertAll("Check allowed methods", checkAllowedMethods(res, asList(GET, HEAD, OPTIONS))); assertAll("Check null headers", checkNullHeaders(res, asList(ACCEPT_PATCH, ACCEPT_POST))); }
@Test public void testOptionsSlash() { final Response res = target(RESOURCE_PATH + "/").request().options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertEquals(APPLICATION_SPARQL_UPDATE, res.getHeaderString(ACCEPT_PATCH), "Incorrect Accept-Patch header!"); assertAll("Check allowed methods", checkAllowedMethods(res, asList(PATCH, PUT, DELETE, GET, HEAD, OPTIONS))); assertAll("Check null headers", checkNullHeaders(res, asList(ACCEPT_POST, MEMENTO_DATETIME))); }
@Test public void testInvalidCorsPreflightRequestByHeader() { Response response = target() .path("delete") .request() .header(CorsHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE) .header(CorsHeaders.ORIGIN, DEFAULT_ORIGIN) .header(CorsHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "blub") .options(); assertEquals(403, response.getStatus()); assertNoCorsHeaders(response.getHeaders()); }
@Test public void testOptionsPreflightInvalid3() { final Response res = target(RESOURCE_PATH).request().header("Origin", ORIGIN) .header("Access-Control-Request-Method", "BAR") .header("Access-Control-Request-Headers", "Content-Type, Link").options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertAll("Check that there are no CORS headers", checkNoCORSHeaders(res)); }
@Test public void testOptionsNonexistent() { final Response res = target(NON_EXISTENT_PATH).request().options(); assertEquals(SC_NOT_FOUND, res.getStatus(), "Unexpected response code!"); }
@Test public void testOptionsPreflightInvalid() { final Response res = target(RESOURCE_PATH).request().header("Origin", "http://foo.com") .header("Access-Control-Request-Method", "PUT") .header("Access-Control-Request-Headers", "Content-Type, Link").options(); assertEquals(SC_NO_CONTENT, res.getStatus(), "Unexpected response code!"); assertAll("Check that there are no CORS headers", checkNoCORSHeaders(res)); }
@Test public void testOptions2() { when(mockResource.getInteractionModel()).thenReturn(LDP.Container); final Response res = target("resource").request().options(); assertEquals(SC_FORBIDDEN, res.getStatus(), "Unexpected response code!"); }
@Test public void testOptions1() { final Response res = target("resource").request().options(); assertEquals(SC_FORBIDDEN, res.getStatus(), "Unexpected response code!"); }
@Override public Response execute(Invocation.Builder requestBuilder, Object entity, String contentType) { return requestBuilder.options(); } };
@Test public void testOptions1() { final Response res = target("resource").request().options(); assertAll("Check response", checkStandardResponse(res)); }