package lt.inventi.wicket.component.breadcrumb; import static org.hamcrest.Matchers.contains; import static org.junit.Assert.assertThat; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.junit.Test; public class BreadcrumbsTitleTest extends BreadcrumbsTests { private static final Model<String> HTML_MARKUP_MODEL = Model.of("<span></span>"); @Test public void escapesMarkupByDefault() { tester.startPage(new DefaultModelPage()); assertThat(breadcrumbTitles(), contains("<span></span>")); } @Test public void escapesMarkupWhenTitleSaysSo() { tester.startPage(new EscapedModelPage()); assertThat(breadcrumbTitles(), contains("<span></span>")); } @Test public void doesNotEscapeMarkupWhenTitleSaysSo() { tester.startPage(new UnescapedModelPage()); assertThat(breadcrumbTitles(), contains("<span></span>")); } public static class DefaultModelPage extends AbstractBreadcrumbTestsPage { @Override public IModel<String> getBreadcrumbTitleModel() { return HTML_MARKUP_MODEL; } } public static class EscapedModelPage extends AbstractBreadcrumbTestsPage implements IBreadcrumbTitleProvider { @Override public BreadcrumbTitle getBreadcrumbTitle() { return new BreadcrumbTitle(HTML_MARKUP_MODEL, true); } } public static class UnescapedModelPage extends AbstractBreadcrumbTestsPage implements IBreadcrumbTitleProvider { @Override public BreadcrumbTitle getBreadcrumbTitle() { return new BreadcrumbTitle(HTML_MARKUP_MODEL, false); } } }