package com.googlecode.gwt.test; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.RootPanel; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class ComplexPanelTest extends GwtTestTest { @Test public void add() { // Given ComplexPanel panel = new FlowPanel(); RootPanel.get().add(panel); assertThat(panel.isAttached()).isTrue(); assertThat(panel.getWidgetCount()).isEqualTo(0); Button b1 = new Button(); assertThat(b1.isAttached()).isFalse(); assertThat(b1.getParent()).isNull(); // When panel.add(b1); // Then assertThat(b1.isAttached()).isTrue(); assertThat(b1.getParent()).isEqualTo(panel); assertThat(panel.getWidgetCount()).isEqualTo(1); assertThat(panel.getWidget(0)).isEqualTo(b1); assertThat(panel.getWidgetIndex(b1)).isEqualTo(0); } @Test public void count() { // Given ComplexPanel panel = new FlowPanel(); panel.add(new Button()); panel.add(new Button()); // When & Then assertThat(panel.getWidgetCount()).isEqualTo(2); } @Test public void remove() { // Given ComplexPanel panel = new FlowPanel(); Button b = new Button(); panel.add(b); // Preconditions assertThat(panel.getWidgetCount()).isEqualTo(1); assertThat(b.getParent()).isEqualTo(panel); // When panel.remove(b); // Then assertThat(panel.getWidgetCount()).isEqualTo(0); assertThat(b.getParent()).isNull(); } @Test public void remove_ByIndex() { // Given ComplexPanel panel = new FlowPanel(); Button b0 = new Button(); panel.add(b0); Button b1 = new Button(); panel.add(b1); // When panel.remove(1); // Then assertThat(panel.getWidgetCount()).isEqualTo(1); assertThat(panel.getWidget(0)).isEqualTo(b0); assertThat(b0.getParent()).isEqualTo(panel); assertThat(b1.getParent()).isNull(); } @Test public void title() { // Given ComplexPanel panel = new FlowPanel(); // When panel.setTitle("title"); // Then assertThat(panel.getTitle()).isEqualTo("title"); } @Test public void visible() { // Given ComplexPanel panel = new FlowPanel(); // Preconditions assertThat(panel.isVisible()).isEqualTo(true); // When panel.setVisible(false); // Then assertThat(panel.isVisible()).isEqualTo(false); } }