summaryrefslogtreecommitdiffstats
path: root/server/src/test
diff options
context:
space:
mode:
authorAleksi Hietanen <aleksi@vaadin.com>2017-08-29 11:15:33 +0300
committerHenri Sara <henri.sara@gmail.com>2017-08-29 11:15:33 +0300
commit204c5571af75c752623dd1278661c551f7e22200 (patch)
tree9a825eb601a1e2a9c92d7b1cb4a062bffc53118b /server/src/test
parent8109314f6ab0d86120b443251c9abbb335058269 (diff)
downloadvaadin-framework-204c5571af75c752623dd1278661c551f7e22200.tar.gz
vaadin-framework-204c5571af75c752623dd1278661c551f7e22200.zip
Add declarative support to Tree (#9881)
Closes #9838
Diffstat (limited to 'server/src/test')
-rw-r--r--server/src/test/java/com/vaadin/tests/server/component/abstractcomponent/AbstractComponentDeclarativeTestBase.java4
-rw-r--r--server/src/test/java/com/vaadin/tests/server/component/tree/TreeDeclarativeTest.java172
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;
+ }
+}