package com.googlecode.gwt.test; import com.google.gwt.dom.client.HeadingElement; import com.google.gwt.user.client.ui.CheckBox; import com.googlecode.gwt.test.utils.events.Browser; import com.googlecode.gwt.test.utils.events.Browser.BrowserErrorHandler; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class CheckBoxTest extends GwtTestTest { private final StringBuilder errorStringBuilder = new StringBuilder(); @Before public void beforeCheckBoxTest() { errorStringBuilder.delete(0, errorStringBuilder.length()); setBrowserErrorHandler(new BrowserErrorHandler() { public void onError(String errorMessage) { errorStringBuilder.append(errorMessage); } }); } @Test public void checked() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.getValue()).isEqualTo(false); // When cb.setValue(true); // Then assertThat(cb.getValue()).isEqualTo(true); } @Test public void click() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.getValue()).isFalse(); // When 1 Browser.click(cb); // Then 1 assertThat(cb.getValue()).isTrue(); assertThat(errorStringBuilder.toString()).isEqualTo(""); // When 2 Browser.click(cb); // Then 2 assertThat(cb.getValue()).isFalse(); assertThat(errorStringBuilder.toString()).isEqualTo(""); } @Test public void click_disabled() { // Given CheckBox cb = new CheckBox(); cb.setEnabled(false); // When Browser.click(cb); // Then assertThat(cb.getValue()).isFalse(); assertThat(errorStringBuilder).startsWith("Cannot dispatch 'mouseover' event : the targeted element has to be enabled : <span class=\"gwt-CheckBox gwt-CheckBox-disabled\"><input type=\"checkbox\""); } @Test public void formValue() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.getFormValue()).isEqualTo("on"); // When cb.setFormValue("whatever"); // Then assertThat(cb.getFormValue()).isEqualTo("whatever"); } @Test public void html() { // Given CheckBox cb = new CheckBox("<h1>foo</h1>", true); // Preconditions assertThat(cb.getHTML()).isEqualTo("<h1>foo</h1>"); // When cb.setHTML("<h1>test</h1>"); // Then assertThat(cb.getHTML()).isEqualTo("<h1>test</h1>"); assertThat(cb.getElement().getChild(1).getChildCount()).isEqualTo(1); HeadingElement h1 = cb.getElement().getChild(1).getChild(0).cast(); assertThat(h1.getTagName()).isEqualTo("H1"); assertThat(h1.getInnerText()).isEqualTo("test"); } @Test public void name() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.getName()).isEqualTo(""); // When cb.setName("name"); // Then assertThat(cb.getName()).isEqualTo("name"); } @Test public void text() { // Given CheckBox cb = new CheckBox("foo"); // Preconditions assertThat(cb.getText()).isEqualTo("foo"); // When cb.setText("text"); // Then assertThat(cb.getText()).isEqualTo("text"); } @Test public void title() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.getTitle()).isEqualTo(""); // When cb.setTitle("title"); assertThat(cb.getTitle()).isEqualTo("title"); } @Test public void visible() { // Given CheckBox cb = new CheckBox(); // Preconditions assertThat(cb.isVisible()).isEqualTo(true); // When cb.setVisible(false); // Then assertThat(cb.isVisible()).isEqualTo(false); } }