View Javadoc
1   package com.atlassian.refapp.sal;
2   
3   import org.junit.Test;
4   import org.mockito.Mockito;
5   
6   import javax.servlet.http.HttpServletRequest;
7   
8   import static com.atlassian.refapp.sal.HttpServletRequestBaseUrlExtractor.extractBaseUrl;
9   import static org.junit.Assert.assertEquals;
10  
11  public class HttpServletRequestBaseUrlExtractorTest {
12      @Test(expected = NullPointerException.class)
13      public void throwsNullPointerExceptionIfRequestIsNull() {
14          extractBaseUrl(null);
15      }
16  
17      @Test
18      public void httpUrlOnDefaultPortDoesNotIncludePort() {
19          HttpServletRequest request = createMockRequest("http", 80);
20          assertEquals("http://example.com/context", extractBaseUrl(request));
21      }
22  
23      @Test
24      public void httpsUrlOnDefaultPortDoesNotIncludePort() {
25          HttpServletRequest request = createMockRequest("https", 443);
26          assertEquals("https://example.com/context", extractBaseUrl(request));
27      }
28  
29      @Test
30      public void httpUrlOnNonDefaultPortIncludesPort() {
31          HttpServletRequest request = createMockRequest("http", 8080);
32          assertEquals("http://example.com:8080/context", extractBaseUrl(request));
33      }
34  
35      @Test
36      public void httpsUrlOnNonDefaultPortIncludesPort() {
37          HttpServletRequest request = createMockRequest("https", 4433);
38          assertEquals("https://example.com:4433/context", extractBaseUrl(request));
39      }
40  
41      private HttpServletRequest createMockRequest(String scheme, int port) {
42          HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
43          Mockito.when(request.getScheme()).thenReturn(scheme);
44          Mockito.when(request.getServerName()).thenReturn("example.com");
45          Mockito.when(request.getServerPort()).thenReturn(port);
46          Mockito.when(request.getContextPath()).thenReturn("/context");
47          return request;
48      }
49  }