package com.google.sitebricks.acceptance.page; import com.google.inject.Guice; import com.google.sitebricks.acceptance.util.AcceptanceTest; import com.google.sitebricks.client.Web; import com.google.sitebricks.client.transport.Text; import java.util.Map; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; /** * Page object that wraps the content negotiation page. * * @author Dhanji R. Prasanna (dhanji@gmail.com) */ public class ConnegPage { private String content; private ConnegPage(String content) { try { this.content = DocumentHelper.parseText(content) .selectSingleNode("//div['content'][1]") .getText(); } catch (DocumentException e) { throw new RuntimeException(e); } } public boolean hasContent(String content) { return this.content.trim().equals(content); } public static ConnegPage openWithHeaders(Map<String, String> headers) { String content = Guice.createInjector() .getInstance(Web.class) .clientOf(AcceptanceTest.baseUrl() + "/conneg", headers) .transports(String.class) .over(Text.class) .get() .toString(); return new ConnegPage(content); } }