package com.vaadin.tests.server.component.button;
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.UI;
/**
* Tests the public click() method.
*/
public class ButtonClickTest {
private boolean clicked = false;
@Test
public void clickDetachedButton() {
Button b = new Button();
AtomicInteger counter = new AtomicInteger(0);
b.addClickListener((ClickEvent event) -> {
counter.incrementAndGet();
});
b.click();
Assert.assertEquals(1, counter.get());
}
@Test
public void testClick() {
getButton().click();
Assert.assertTrue("Button doesn't fire clicks", clicked);
}
@Test
public void testClickDisabled() {
Button b = getButton();
b.setEnabled(false);
b.click();
Assert.assertFalse("Disabled button fires click events", clicked);
}
private Button getButton() {
Button b = new Button();
UI ui = createUI();
b.setParent(ui);
addClickListener(b);
return b;
}
private UI createUI() {
UI ui = new UI() {
@Override
protected void init(VaadinRequest request) {
}
};
return ui;
}
private void addClickListener(Button b) {
clicked = false;
b.addClickListener((ClickEvent ev) -> {
clicked = true;
});
}
}