package de.lessvoid.nifty.elements;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.easymock.ConstructorArgs;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.controls.FocusHandler;
import de.lessvoid.nifty.elements.render.ElementRenderer;
import de.lessvoid.nifty.loaderv2.types.ElementType;
import de.lessvoid.nifty.spi.time.TimeProvider;
public class ElementShowHideTest {
private Nifty niftyMock;
private Element e1;
private Element e2;
private FocusHandler focusHandler = new FocusHandler();
@Before
public void before() throws Exception {
niftyMock = createNiceMock(Nifty.class);
expect(niftyMock.getAlternateKey()).andReturn(null).times(2);
replay(niftyMock);
e1 = createMock(
Element.class,
new ConstructorArgs(
Element.class.getConstructor(
Nifty.class, ElementType.class, String.class, Element.class, FocusHandler.class, boolean.class,
TimeProvider.class, ElementRenderer[].class),
niftyMock, null, "e1", null, focusHandler, false, null, null));
e2 = createMock(
Element.class,
new ConstructorArgs(
Element.class.getConstructor(
Nifty.class, ElementType.class, String.class, Element.class, FocusHandler.class, boolean.class,
TimeProvider.class, ElementRenderer[].class),
niftyMock, null, "e1", null, focusHandler, false, null, null));
e1.addChild(e2);
replay(e1);
replay(e2);
}
@After
public void after() {
verify(niftyMock);
verify(e1);
verify(e2);
}
@Test
public void testDefaults() {
assertTrue(e1.isVisible());
assertTrue(e2.isVisible());
}
@Test
public void testSimpleShow() {
e2.show();
assertTrue(e1.isVisible());
assertTrue(e2.isVisible());
}
@Test
public void testSimpleHide() {
e2.hide();
assertTrue(e1.isVisible());
assertFalse(e2.isVisible());
}
@Test
public void testSimpleHideTwice() {
e2.hide();
e2.hide();
assertTrue(e1.isVisible());
assertFalse(e2.isVisible());
}
@Test
public void testHideMutipleAndShow() {
e2.hide();
e2.hide();
e2.hide();
e2.hide();
e2.hide();
e2.show();
assertTrue(e1.isVisible());
assertTrue(e2.isVisible());
}
@Test
public void testSimpleParentHide() {
e1.hide();
assertFalse(e1.isVisible());
assertTrue(e2.isVisible());
}
@Test
public void testSimpleParentHideWithChildHidden() {
e2.hide();
e1.hide();
assertFalse(e1.isVisible());
assertFalse(e2.isVisible());
e1.show();
assertTrue(e1.isVisible());
assertFalse(e2.isVisible());
e2.show();
assertTrue(e2.isVisible());
}
@Test
public void testChildHiddenAndParentShow() {
e2.hide();
e1.show();
assertTrue(e1.isVisible());
assertFalse(e2.isVisible());
}
}