package de.flower.common.ui.markup.html.basic;
import de.flower.common.test.wicket.AbstractWicketUnitTests;
import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.testng.annotations.Test;
/**
* @author flowerrrr
*/
public class FallbackLabelTest extends AbstractWicketUnitTests {
@Test
public void testFallbackLabel() {
IModel<String> emptyModel = Model.of("");
IModel<String> defaultModel = Model.of("This is the default value");
wicketTester.startComponentInPage(new FallbackLabel("label", emptyModel, defaultModel));
wicketTester.dumpComponentWithPage();
wicketTester.assertContains(defaultModel.getObject());
}
@Test
public void testWithCompoundPropertyModel() {
IModel<String> defaultModel = Model.of("This is the default value");
wicketTester.startComponentInPage(new TestPanel(new TestEntity(), defaultModel));
wicketTester.dumpComponentWithPage();
wicketTester.assertContains(defaultModel.getObject());
}
private static class TestPanel extends Panel {
public TestPanel(TestEntity entity, final IModel<String> defaultModel) {
super("panel", new CompoundPropertyModel(entity));
add(new FallbackLabel("name", defaultModel));
}
@Override
public Markup getAssociatedMarkup() {
return Markup.of("<wicket:panel><span wicket:id='name' /></wicket:panel>");
}
}
private static class TestEntity {
private String name;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
}
}