diff options
author | Aleksi Hietanen <aleksi@vaadin.com> | 2017-08-29 11:15:33 +0300 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-08-29 11:15:33 +0300 |
commit | 204c5571af75c752623dd1278661c551f7e22200 (patch) | |
tree | 9a825eb601a1e2a9c92d7b1cb4a062bffc53118b /server/src/test | |
parent | 8109314f6ab0d86120b443251c9abbb335058269 (diff) | |
download | vaadin-framework-204c5571af75c752623dd1278661c551f7e22200.tar.gz vaadin-framework-204c5571af75c752623dd1278661c551f7e22200.zip |
Add declarative support to Tree (#9881)
Closes #9838
Diffstat (limited to 'server/src/test')
2 files changed, 174 insertions, 2 deletions
diff --git a/server/src/test/java/com/vaadin/tests/server/component/abstractcomponent/AbstractComponentDeclarativeTestBase.java b/server/src/test/java/com/vaadin/tests/server/component/abstractcomponent/AbstractComponentDeclarativeTestBase.java index ea7e9c77a3..84c2534f84 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/abstractcomponent/AbstractComponentDeclarativeTestBase.java +++ b/server/src/test/java/com/vaadin/tests/server/component/abstractcomponent/AbstractComponentDeclarativeTestBase.java @@ -212,7 +212,7 @@ public abstract class AbstractComponentDeclarativeTestBase<T extends AbstractCom } @Test - public void sizeUnderfinedDeserialization() + public void sizeUndefinedDeserialization() throws InstantiationException, IllegalAccessException { String design = String.format("<%s/>", getComponentTag()); @@ -237,7 +237,7 @@ public abstract class AbstractComponentDeclarativeTestBase<T extends AbstractCom } @Test - public void widthUnderfinedDeserialization() + public void widthUndefinedDeserialization() throws InstantiationException, IllegalAccessException { String design = String.format("<%s/>", getComponentTag()); diff --git a/server/src/test/java/com/vaadin/tests/server/component/tree/TreeDeclarativeTest.java b/server/src/test/java/com/vaadin/tests/server/component/tree/TreeDeclarativeTest.java new file mode 100644 index 0000000000..a8f7741f1b --- /dev/null +++ b/server/src/test/java/com/vaadin/tests/server/component/tree/TreeDeclarativeTest.java @@ -0,0 +1,172 @@ +package com.vaadin.tests.server.component.tree; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.data.TreeData; +import com.vaadin.data.provider.HierarchicalQuery; +import com.vaadin.shared.ui.ContentMode; +import com.vaadin.tests.data.bean.Person; +import com.vaadin.tests.server.component.abstractcomponent.AbstractComponentDeclarativeTestBase; +import com.vaadin.ui.Grid.SelectionMode; +import com.vaadin.ui.IconGenerator; +import com.vaadin.ui.ItemCaptionGenerator; +import com.vaadin.ui.Tree; + +public class TreeDeclarativeTest + extends AbstractComponentDeclarativeTestBase<Tree> { + + @Test + public void dataSerialization() { + Person person1 = createPerson("a"); + Person person2 = createPerson("a/a"); + Person person3 = createPerson("a/b"); + Person person4 = createPerson("a/b/c"); + Person person5 = createPerson("b"); + + TreeData<Person> data = new TreeData<>(); + data.addItems(null, person1, person5); + data.addItems(person1, person2, person3); + data.addItem(person3, person4); + + Tree<Person> tree = new Tree<>(); + tree.setTreeData(data); + tree.setItemCaptionGenerator(item -> item.getFirstName()); + + String designString = String.format("<%s>" + + "<node item='%s'>%s</node>" + + "<node item='%s' parent='%s'>%s</node>" + + "<node item='%s' parent='%s'>%s</node>" + + "<node item='%s' parent='%s'>%s</node>" + + "<node item='%s'>%s</node>" + + "</%s>", getComponentTag(), + person1.toString(), person1.getFirstName(), + person2.toString(), person1.toString(), person2.getFirstName(), + person3.toString(), person1.toString(), person3.getFirstName(), + person4.toString(), person3.toString(), person4.getFirstName(), + person5.toString(), person5.getFirstName(), + getComponentTag()); + + testWrite(designString, tree, true); + Tree<String> readTree = testRead(designString, tree); + Assert.assertEquals(2, readTree.getDataProvider() + .getChildCount(new HierarchicalQuery<>(null, null))); + Assert.assertEquals(2, readTree.getDataProvider().getChildCount( + new HierarchicalQuery<>(null, person1.toString()))); + Assert.assertEquals(1, readTree.getDataProvider().getChildCount( + new HierarchicalQuery<>(null, person3.toString()))); + } + + @Test + public void htmlContentMode() { + Person person = createPerson("A Person"); + Tree<Person> tree = new Tree<>(); + tree.setItems(person); + tree.setItemCaptionGenerator( + item -> String.format("<b>%s</b>", item.getFirstName())); + tree.setContentMode(ContentMode.HTML); + + String designString = String.format( + "<%s content-mode='html'><node item='%s'><b>%s</b></node></%s>", + getComponentTag(), person.toString(), person.getFirstName(), + getComponentTag()); + + testWrite(designString, tree, true); + testRead(designString, tree); + } + + @Test + public void selectionMode() { + Tree<Person> tree = new Tree<>(); + tree.setSelectionMode(SelectionMode.MULTI); + + String designString = String.format("<%s selection-mode='multi'></%s>", + getComponentTag(), getComponentTag()); + + testRead(designString, tree); + testWrite(designString, tree, false); + } + + @Test + @Override + public void heightFullDeserialization() + throws InstantiationException, IllegalAccessException { + // width is full by default + String design = String.format("<%s size-full/>", getComponentTag()); + + Tree<String> tree = new Tree<>(); + + tree.setHeight("100%"); + testRead(design, tree); + testWrite(design, tree); + } + + @Test + @Override + public void sizeUndefinedDeserialization() + throws InstantiationException, IllegalAccessException { + String design = String.format("<%s size-auto/>", getComponentTag()); + + Tree<String> tree = new Tree<>(); + + tree.setSizeUndefined(); + testRead(design, tree); + testWrite(design, tree); + } + + @Test + @Override + public void widthFullDeserialization() + throws InstantiationException, IllegalAccessException { + // width is full by default + String design = String.format("<%s/>", getComponentTag()); + + Tree<String> tree = new Tree<>(); + + tree.setWidth("100%"); + testRead(design, tree); + testWrite(design, tree); + } + + @Test + @Override + public void widthUndefinedDeserialization() + throws InstantiationException, IllegalAccessException { + String design = String.format("<%s size-auto/>", getComponentTag()); + + Tree<String> tree = new Tree<>(); + + tree.setWidthUndefined(); + testRead(design, tree); + testWrite(design, tree); + } + + @Override + protected String getComponentTag() { + return "vaadin-tree"; + } + + @Override + protected Class<? extends Tree> getComponentClass() { + return Tree.class; + } + + @Override + protected void assertEquals(String message, Object o1, Object o2) { + if (o1 instanceof ItemCaptionGenerator) { + Assert.assertTrue(o2 instanceof ItemCaptionGenerator); + return; + } + if (o1 instanceof IconGenerator) { + Assert.assertTrue(o2 instanceof IconGenerator); + return; + } + super.assertEquals(message, o1, o2); + } + + private Person createPerson(String name) { + Person person = new Person(); + person.setFirstName(name); + return person; + } +} |