package org.stagemonitor.core.util; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; import org.junit.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class HttpClientTest { private HttpClient httpClient = new HttpClient(); private Server server; @Before public void setUp() throws Exception { server = new Server(41234); } @After public void tearDown() throws Exception { server.stop(); } @Test public void testNoNullPointerExceptionOnSend() throws IOException { try { httpClient.send("POST", "incorrect-url", null, null); } catch (NullPointerException t) { org.junit.Assert.fail("Shouldn't throw NPE"); } catch (Exception ignore) { //whatever } } @Test public void testBasicAuth() throws Exception { final boolean[] handled = {false}; server.setHandler(new AbstractHandler() { @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { baseRequest.setHandled(true); assertEquals("Basic dXNlcjpwYXNz", request.getHeader("Authorization")); handled[0] = true; } }); server.start(); assertEquals(200, httpClient.send("GET", "http://user:pass@localhost:41234/")); assertTrue(handled[0]); } }