package io.dropwizard.metrics.servlets; import static org.assertj.core.api.Assertions.assertThat; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.servlet.ServletTester; import org.junit.Before; import org.junit.Test; import io.dropwizard.metrics.MetricRegistry; import io.dropwizard.metrics.health.HealthCheckRegistry; public class AdminServletTest extends AbstractServletTest { private final MetricRegistry registry = new MetricRegistry(); private final HealthCheckRegistry healthCheckRegistry = new HealthCheckRegistry(); @Override protected void setUp(ServletTester tester) { tester.setContextPath("/context"); tester.setAttribute("io.dropwizard.metrics.servlets.MetricsServlet.registry", registry); tester.setAttribute("io.dropwizard.metrics.servlets.HealthCheckServlet.registry", healthCheckRegistry); tester.addServlet(AdminServlet.class, "/admin"); } @Before public void setUp() throws Exception { request.setMethod("GET"); request.setURI("/context/admin"); request.setVersion("HTTP/1.0"); } @Test public void returnsA200() throws Exception { processRequest(); assertThat(response.getStatus()) .isEqualTo(200); assertThat(response.getContent()) .isEqualTo(String.format( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"%n" + " \"http://www.w3.org/TR/html4/loose.dtd\">%n" + "<html>%n" + "<head>%n" + " <title>Metrics</title>%n" + "</head>%n" + "<body>%n" + " <h1>Operational Menu</h1>%n" + " <ul>%n" + " <li><a href=\"/context/admin/metrics?pretty=true\">Metrics</a></li>%n" + " <li><a href=\"/context/admin/ping\">Ping</a></li>%n" + " <li><a href=\"/context/admin/threads\">Threads</a></li>%n" + " <li><a href=\"/context/admin/healthcheck?pretty=true\">Healthcheck</a></li>%n" + " <li><a href=\"/context/admin/pprof\">CPU Profile</a></li>%n" + " <li><a href=\"/context/admin/pprof?state=blocked\">CPU Contention</a></li>%n" + " </ul>%n" + "</body>%n" + "</html>%n" )); assertThat(response.get(HttpHeader.CONTENT_TYPE)) .isEqualTo("text/html;charset=UTF-8"); } }