package org.jboss.test.faces.staging;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.matchers.JUnitMatchers.containsString;
import javax.faces.render.ResponseStateManager;
import org.jboss.test.faces.FacesEnvironment;
import org.jboss.test.faces.Threads;
import org.jboss.test.faces.ThreadsRule;
import org.jboss.test.faces.FacesEnvironment.FacesRequest;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
public class EnvironmentTest {
private FacesEnvironment environment;
@Rule
public ThreadsRule threadRule = new ThreadsRule();
@Before
public void setUp() {
environment = FacesEnvironment.createEnvironment().withContent("/test.xhtml",
"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n" +
" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n" +
" xmlns:h=\"http://java.sun.com/jsf/html\">"+
"<h:form id=\"helloForm\" >"+
" <h:outputText value=\"foo_bar\" />\n" +
"</h:form>\n" +
"</html>").start();
}
@After
public void thearDown() throws Exception{
environment.release();
environment = null;
}
@Test
public void testRequest() throws Exception {
FacesRequest request = environment.createFacesRequest("http://localhost/test.jsf?foo=bar");
assertNotNull(request.execute());
String contentAsString = request.getConnection().getContentAsString();
assertTrue(contentAsString.contains(ResponseStateManager.VIEW_STATE_PARAM));
}
@Test
public void testSubmit() throws Exception {
FacesRequest request = environment.createFacesRequest("http://localhost/test.jsf");
assertNotNull(request.execute());
FacesRequest submit = request.submit().withParameter("helloForm", "helloForm");
assertNotNull(submit.execute());
String contentAsString = submit.getConnection().getContentAsString();
assertTrue(contentAsString.contains(ResponseStateManager.VIEW_STATE_PARAM));
}
@Test
@Threads(15)
public void testConcurrentRequests() throws Exception {
// System.out.println("concurrent request");
FacesRequest request = environment.createFacesRequest("http://localhost/test.jsf");
assertNotNull(request.execute());
String contentAsString = request.getConnection().getContentAsString();
assertThat(contentAsString,containsString(ResponseStateManager.VIEW_STATE_PARAM));
}
}