package com.googlecode.gwt.test; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.ToggleButton; import com.googlecode.gwt.test.utils.events.Browser; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class ToggleButtonTest extends GwtTestTest { private boolean clicked; @Test public void click() { // Given final ToggleButton toggleButton = new ToggleButton("Up", "Down"); // needs to be attached RootPanel.get().add(toggleButton); clicked = false; toggleButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { clicked = true; } }); // Preconditions assertThat(toggleButton.isDown()).as("ToggleButton should not be toggled by default").isFalse(); assertThat(toggleButton.getText()).isEqualTo("Up"); // When Browser.click(toggleButton); // Then assertThat(clicked).as("ToggleButton onClick was not triggered").isTrue(); assertThat(toggleButton.isDown()).as("ToggleButton should be toggled after being clicked once").isTrue(); assertThat(toggleButton.getText()).isEqualTo("Down"); // When 2 Browser.click(toggleButton); assertThat(toggleButton.isDown()).as("ToggleButton should not be toggled after being clicked twice").isFalse(); assertThat(toggleButton.getText()).isEqualTo("Up"); } }