package samplest.core; import com.github.kevinsawicki.http.HttpRequest; import org.junit.ClassRule; import org.junit.Test; import restx.tests.RestxServerRule; import static org.assertj.core.api.Assertions.assertThat; /** * @see samplest.core.ContextParamsResource */ public class ContextParamsTest { @ClassRule public static RestxServerRule server = new RestxServerRule(); @Test public void should_access_base_uri() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/baseUri"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo(server.getServer().baseUrl() + "/api"); } @Test public void should_use_proxy_headers_for_base_uri() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/baseUri") .header("Via", "HTTPS/1.1 proxy") .header("X-Forwarded-Host", "www.example.com"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo("https://www.example.com/api"); } @Test public void should_use_proxy_headers_proto_for_base_uri() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/baseUri") .header("X-Forwarded-Proto", "https") .header("X-Forwarded-Host", "www.example.com"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo("https://www.example.com/api"); } @Test public void should_access_client_address() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/clientAddress"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).contains("127.0.0.1"); } @Test public void should_use_x_forwarded_for_client_address() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/clientAddress").header("X-Forwarded-For", "10.0.10.1"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).contains("10.0.10.1"); } @Test public void should_access_request() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/request"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo("[RESTX REQUEST] GET /contextParams/request"); } @Test public void should_access_locale() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/locale").header("Accept-Language", "fr-FR"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo("fr-FR"); } @Test public void should_access_locales() throws Exception { HttpRequest httpRequest = server.client().GET( "/api/contextParams/locales").header("Accept-Language", "fr-FR, en-US"); assertThat(httpRequest.code()).isEqualTo(200); assertThat(httpRequest.body().trim()).isEqualTo("[fr_FR, en_US]"); } }