diff options
author | Knoobie <Knoobie@gmx.de> | 2018-12-18 14:29:59 +0100 |
---|---|---|
committer | Sun Zhe <31067185+ZheSun88@users.noreply.github.com> | 2018-12-18 15:29:59 +0200 |
commit | 353ba29cfdefddb032122cbeae5f02f6d9de76ba (patch) | |
tree | 05ee1da595faaab05976e9ab339472799648135b /server/src/test/java/com/vaadin/ui | |
parent | 9c9c962549eb04adac87b0cfe26d24b17843fb6a (diff) | |
download | vaadin-framework-353ba29cfdefddb032122cbeae5f02f6d9de76ba.tar.gz vaadin-framework-353ba29cfdefddb032122cbeae5f02f6d9de76ba.zip |
Checkbox allow customizing of input and label classNames. (#11372)
* add client side integration for custom styles for checkbox.label and checkbox.input
* add server side integration for checkbox element styling
* add server side tests
* add client side test
Diffstat (limited to 'server/src/test/java/com/vaadin/ui')
-rw-r--r-- | server/src/test/java/com/vaadin/ui/CheckBoxTest.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/server/src/test/java/com/vaadin/ui/CheckBoxTest.java b/server/src/test/java/com/vaadin/ui/CheckBoxTest.java index 042bc07482..0fbd6fa694 100644 --- a/server/src/test/java/com/vaadin/ui/CheckBoxTest.java +++ b/server/src/test/java/com/vaadin/ui/CheckBoxTest.java @@ -1,10 +1,13 @@ package com.vaadin.ui; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.concurrent.atomic.AtomicBoolean; +import org.junit.Ignore; import org.junit.Test; import com.vaadin.server.ServerRpcManager; @@ -68,4 +71,108 @@ public class CheckBoxTest { cb.setValue(null); } + @Test + public void getComboBoxInput() { + CheckBox cb = new CheckBox(); + assertNotNull("getInputElement should always return a element", cb.getInputElement()); + assertHasStyleNames(cb.getInputElement()); + } + + @Test + public void getCheckBoxLabel() { + CheckBox cb = new CheckBox(); + assertNotNull("getLabelElement should always return a element", cb.getLabelElement()); + assertHasStyleNames(cb.getLabelElement()); + } + + @Test + @Ignore("Component#setStyleName(null, false) should not throw a NPE") + public void setStyleName_null_false_throws_NPE() { + // FIXME? - Currently it throws a NPE like the implementation in Component.java + // waiting for other ticket that fixes the behaviour in Component.java before + CheckBox cb = new CheckBox(); + cb.getLabelElement().addStyleName("first"); + cb.getLabelElement().setStyleName(null, false); + assertEquals("Removing a null style should be ignored", + "first", cb.getLabelElement().getStyleName()); + } + + private void assertHasStyleNames(HasStyleNames hasStyleNames) { + assertEquals("Given element should not have a default style name", + "", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName("first"); + assertEquals("first", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName("first"); + assertEquals("Adding two times the same style should be ignored", + "first", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName(null); + assertEquals("Adding null as style should be ignored", + "first", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName(""); + assertEquals("Adding an empty string as style should be ignored", + "first", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName("second"); + assertEquals("first second", hasStyleNames.getStyleName()); + + hasStyleNames.removeStyleName("second"); + assertEquals("first", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleName("second third fourth"); + assertEquals("first second third fourth", hasStyleNames.getStyleName()); + + hasStyleNames.removeStyleName("third fourth"); + assertEquals("first second", hasStyleNames.getStyleName()); + + hasStyleNames.addStyleNames("third", "fourth"); + assertEquals("first second third fourth", hasStyleNames.getStyleName()); + + hasStyleNames.removeStyleNames("second", "fourth"); + assertEquals("first third", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName(null); + assertEquals("Setting null as style should reset them", + "", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("set-style"); + assertEquals("set-style", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName(""); + assertEquals("Setting an empty string as style should reset them", + "", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("set-style multiple values"); + assertEquals("set-style multiple values", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("set-style", false); + assertEquals("multiple values", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("", false); + assertEquals("Removing an empty style should be ignored", + "multiple values", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("", true); + assertEquals("Adding an empty style should be ignored", + "multiple values", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName(null, true); + assertEquals("Adding a null style should be ignored", + "multiple values", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("multiple values", false); + assertEquals("Removing all set style names should result in an empty style name", + "", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("set-style", true); + assertEquals("set-style", hasStyleNames.getStyleName()); + + hasStyleNames.setStyleName("multiple values", true); + assertEquals("set-style multiple values", hasStyleNames.getStyleName()); + + } + } |