package bvira.web;
import bvira.framework.ContextPath;
import bvira.framework.ContextRoot;
import bvira.framework.ParameterName;
import bvira.framework.Parameters;
import bvira.framework.RequestContext;
import bvira.framework.RequestUri;
import bvira.framework.ResponseContext;
import bvira.framework.TemplateWriter;
import bvira.util.DefaultContainer;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
import org.junit.Test;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class SimpleHomePageAcceptanceTests {
@Test
public void homePageTitleIsBviraHome() throws JDOMException, IOException {
RequestContext requestContext = new RequestContext() {
public ContextRoot getContextRoot() {
return null;
}
public ContextPath getContextPath() {
return null;
}
public RequestUri getRequestUri() {
return new RequestUri("/", "");
}
public Parameters getParameters() {
return null;
}
public String getParameter(ParameterName identity) {
return null;
}
};
final StringWriter writer = new StringWriter();
ResponseContext responseContext = new ResponseContext() {
public PrintWriter getWriter() {
return null;
}
public void writeTemplate(TemplateWriter template) {
template.write(writer);
}
public void redirectTo(String path) {
}
public void validateResponse() {
}
};
WebApplication webApplication = new WebApplication(HttpRequestHandler.getComponents(), new DefaultContainer(), new StringTemplateFactory(), HttpRequestHandler.services);
webApplication.executePresenter(requestContext, responseContext);
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new StringReader(writer.toString()));
Element node = (Element) XPath.selectSingleNode(document.getRootElement(), "//title");
assertThat(node.getText(), is("Home - bvira"));
}
}