diff options
author | John Ahlroos <john@vaadin.com> | 2016-01-04 14:42:05 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2016-01-05 11:48:19 +0000 |
commit | 47b7f536b28305914d40812e2a97eb99ec836eef (patch) | |
tree | a45a6129eceb65dd9301539945ef0ddfc171f224 /server/tests | |
parent | 9e359afb598beefd18ac8ea67262ef19a290c8e0 (diff) | |
download | vaadin-framework-47b7f536b28305914d40812e2a97eb99ec836eef.tar.gz vaadin-framework-47b7f536b28305914d40812e2a97eb99ec836eef.zip |
Fix NPE in Label.writeDesign with NULL values #19434
Change-Id: If3628bc655d6cd58ab51b7400af808bdbca3dc91
Diffstat (limited to 'server/tests')
-rw-r--r-- | server/tests/src/com/vaadin/tests/server/component/label/LabelDeclarativeTest.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/server/tests/src/com/vaadin/tests/server/component/label/LabelDeclarativeTest.java b/server/tests/src/com/vaadin/tests/server/component/label/LabelDeclarativeTest.java index f911aab779..7a7f4bd844 100644 --- a/server/tests/src/com/vaadin/tests/server/component/label/LabelDeclarativeTest.java +++ b/server/tests/src/com/vaadin/tests/server/component/label/LabelDeclarativeTest.java @@ -18,6 +18,7 @@ package com.vaadin.tests.server.component.label; import org.jsoup.nodes.Element; import org.jsoup.parser.Tag; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import com.vaadin.shared.ui.label.ContentMode; @@ -112,6 +113,38 @@ public class LabelDeclarativeTest extends DeclarativeTestBase<Label> { Assert.assertEquals("& Test", root.html()); } + @Test + public void testNullValue() { + Label label = new Label(); + label.setValue(null); + + label.setContentMode(ContentMode.TEXT); + Element root = new Element(Tag.valueOf("vaadin-label"), ""); + label.writeDesign(root, new DesignContext()); + Assert.assertEquals("", root.html()); + + label.setContentMode(ContentMode.HTML); + root = new Element(Tag.valueOf("vaadin-label"), ""); + label.writeDesign(root, new DesignContext()); + Assert.assertEquals("", root.html()); + } + + /** + * FIXME Using another content mode than TEXT OR HTML is currently not + * supported and will cause the content mode to fallback without the users + * knowledge to HTML. This test can be enabled when + * https://dev.vaadin.com/ticket/19435 is fixed. + */ + @Test + @Ignore("Test ignored due to https://dev.vaadin.com/ticket/19435") + public void testContentModes() { + String design = "<vaadin-label caption='This\n is a label' />"; + Label l = createLabel(null, "This\n is a label", true); + l.setContentMode(ContentMode.PREFORMATTED); + testRead(design, l); + testWrite(design, l); + } + private Label createLabel(String content, String caption, boolean html) { Label label = new Label(); label.setContentMode(html ? ContentMode.HTML : ContentMode.TEXT); |