package com.googlecode.gwt.test;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.MenuItemSeparator;
import com.googlecode.gwt.test.utils.events.Browser;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class MenuBarTest extends GwtTestTest {
private boolean called = false;
Command cmd = new Command() {
public void execute() {
called = true;
}
};
@Test
public void addItem() {
// Given
MenuBar bar = new MenuBar();
// When
MenuItem item0 = bar.addItem("test0", cmd);
MenuItem item1 = bar.addItem("test1", cmd);
// Then
assertThat(bar.getItemIndex(item0)).isEqualTo(0);
assertThat(bar.getItemIndex(item1)).isEqualTo(1);
assertThat(item0.getParentMenu()).isEqualTo(bar);
assertThat(item1.getParentMenu()).isEqualTo(bar);
}
@Test
public void addSeparator() {
// Given
MenuBar bar = new MenuBar();
bar.addItem("test0", cmd);
// When
MenuItemSeparator separator = bar.addSeparator();
bar.addItem("test1", cmd);
// Then
assertThat(bar.getSeparatorIndex(separator)).isEqualTo(1);
}
@Test
public void animationEnabled() {
// Given
MenuBar bar = new MenuBar();
// When
bar.setAnimationEnabled(true);
// Then
assertThat(bar.isAnimationEnabled()).isEqualTo(true);
}
@Test
public void autoOpen() {
// Given
MenuBar bar = new MenuBar();
// When
bar.setAutoOpen(false);
// Then
assertThat(bar.getAutoOpen()).isEqualTo(false);
}
@Test
public void click() {
// Given
MenuBar bar = new MenuBar();
MenuItem item = bar.addItem("item", cmd);
// Preconditions
assertThat(called).isEqualTo(false);
// When
Browser.click(bar, item);
// Then
assertThat(called).isEqualTo(true);
}
@Test
public void constructor_Complex() {
// Given
MenuBar bar = new MenuBar();
MenuBar subMenuBar = new MenuBar();
MenuItem item = new MenuItem("item", false, subMenuBar);
bar.addItem(item);
item.setCommand(cmd);
// Preconditions
assertThat(called).isEqualTo(false);
// When
Browser.click(bar, item);
// Then
assertThat(called).isEqualTo(true);
}
@Test
public void removeItem() {
// Given
MenuBar bar = new MenuBar();
MenuItem item0 = bar.addItem("test0", cmd);
MenuItem item1 = bar.addItem("test1", cmd);
// When
bar.removeItem(item0);
// Then
assertThat(bar.getItemIndex(item1)).isEqualTo(0);
}
@Test
public void title() {
// Given
MenuBar bar = new MenuBar();
// Preconditions
assertThat(bar.getTitle()).isEqualTo("");
// When
bar.setTitle("title");
// Then
assertThat(bar.getTitle()).isEqualTo("title");
}
@Test
public void visible() {
// Given
MenuBar bar = new MenuBar();
// Preconditions
assertThat(bar.isVisible()).isEqualTo(true);
// When
bar.setVisible(false);
// Then
assertThat(bar.isVisible()).isEqualTo(false);
}
}