package org.togglz.servlet.test.util;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.net.URL;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.togglz.test.Deployments;
import org.togglz.test.Packaging;
import com.gargoylesoftware.htmlunit.TextPage;
import com.gargoylesoftware.htmlunit.WebClient;
@RunWith(Arquillian.class)
public class HttpServletRequestHolderTest {
@Deployment(testable = false)
public static WebArchive createDeployment() {
return Deployments.getBasicWebArchive()
.addClass(HttpServletRequestHolderServlet.class)
// we don't need to bootstrap Togglz here as we only test the request holder
.setWebXML(Packaging.webAppDescriptor()
.contextParam("org.togglz.FEATURE_MANAGER_PROVIDED", "true")
.exportAsAsset());
}
@ArquillianResource
private URL baseUrl;
@Test
public void testRequestIsBoundToHolder() throws IOException {
// send a request to the servlet with a query string part
String url = baseUrl + HttpServletRequestHolderServlet.URL_PATTERN + "?number=42";
TextPage page = new WebClient().getPage(url);
// verify the servlet sends back the query string
assertThat(page.getWebResponse().getStatusCode()).isEqualTo(200);
assertThat(page.getContent()).contains("number=42");
}
}