diff options
author | Leif Åstrand <leif@vaadin.com> | 2011-11-08 17:28:27 +0200 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2011-11-08 17:28:27 +0200 |
commit | 2eff8c02aba3d9dc0dd74b0aff9c114a3dc29201 (patch) | |
tree | eab57b1272e486176ce348b8a067c71a17020007 /tests | |
parent | 6c78fecb9f28eb5f0f09c906199dbc4c6c55d50d (diff) | |
parent | 8c740b94ba854c2fca9e337083b72a596fe72c05 (diff) | |
download | vaadin-framework-2eff8c02aba3d9dc0dd74b0aff9c114a3dc29201.tar.gz vaadin-framework-2eff8c02aba3d9dc0dd74b0aff9c114a3dc29201.zip |
Merge remote-tracking branch 'origin/6.8' into master
Diffstat (limited to 'tests')
22 files changed, 2255 insertions, 124 deletions
diff --git a/tests/integration_base_files/base.xml b/tests/integration_base_files/base.xml index c27f3589b3..f9c2ff3d6b 100644 --- a/tests/integration_base_files/base.xml +++ b/tests/integration_base_files/base.xml @@ -58,6 +58,8 @@ <waitfor maxwait="${waitMinutes}" maxwaitunit="minute" checkevery="10000" timeoutproperty="timeout"> <http url="${waitUrl}" /> </waitfor> + <!-- Print load averages to get an indicator on whether the server still attempts to start up --> + <exec executable="uptime" /> <fail if="timeout" message="${server} failed to deploy" /> <echo message="${server}: Demo deployed successfully." /> @@ -101,7 +103,7 @@ </target> <target name="clean"> - <delete dir="${deployDir}" /> + <delete dir="${deployDir}" failonerror="false" /> </target> <target name="release-lock"> diff --git a/tests/integration_tests.xml b/tests/integration_tests.xml index 0f5f7617ac..71bd31efa6 100644 --- a/tests/integration_tests.xml +++ b/tests/integration_tests.xml @@ -348,11 +348,19 @@ <scp file="${demo.war}" todir="${user}@${target-host}:demo.war" keyfile="${sshkey.file}" trust="yes" passphrase="${passphrase}" />
<!-- timeout in 15 minutes -->
- <sshexec host="${target-host}" outputproperty="start-output" timeout="900000" username="${user}" keyfile="${sshkey.file}" trust="yes" command="ant -f deploy.xml startup-and-deploy" />
+ <sshexec host="${target-host}" outputproperty="start-output" timeout="900000" username="${user}" keyfile="${sshkey.file}" trust="yes" command="ant -f deploy.xml startup-and-deploy" failonerror="false" />
<antcall target="echo-prefix">
<param name="prefix" value="${target-server}: " />
<param name="message" value="${start-output}" />
</antcall>
+
+ <fail message="${start-output}">
+ <condition>
+ <not>
+ <contains string="${start-output}" substring="Demo deployed successfully" />
+ </not>
+ </condition>
+ </fail>
<copy file="integration-testscripts/common/integration_test.tpl" tofile="integration-testscripts/integration-test-${target-server}-servlet.html" overwrite="true" />
<antcall target="integration-test-servlet">
@@ -376,7 +384,7 @@ </catch>
<finally>
<!-- timeout in five minutes -->
- <sshexec host="${target-host}" outputproperty="stop-output" timeout="300000" username="${user}" keyfile="${sshkey.file}" trust="yes" command="ant -f deploy.xml shutdown-and-cleanup" />
+ <sshexec host="${target-host}" outputproperty="stop-output" timeout="300000" username="${user}" keyfile="${sshkey.file}" trust="yes" command="ant -f deploy.xml shutdown-and-cleanup" failonerror="false" />
<antcall target="echo-prefix">
<param name="prefix" value="${target-server}: " />
<param name="message" value="${stop-output}" />
@@ -448,4 +456,4 @@ <target name="integration-test-clean">
<sshexec host="${test.integration.server}" username="${user}" keyfile="${sshkey.file}" command="ant -f ${ant.hub} clean" />
</target>
-</project>
\ No newline at end of file +</project> diff --git a/tests/server-side/com/vaadin/data/util/FileSystemContainerTest.java b/tests/server-side/com/vaadin/data/util/FileSystemContainerTest.java new file mode 100644 index 0000000000..f4bb794e5c --- /dev/null +++ b/tests/server-side/com/vaadin/data/util/FileSystemContainerTest.java @@ -0,0 +1,16 @@ +package com.vaadin.data.util; + +import java.io.File; + +import org.junit.Assert; +import org.junit.Test; + +public class FileSystemContainerTest { + + @Test + public void nonExistingDirectory() { + FilesystemContainer fsc = new FilesystemContainer(new File( + "/non/existing")); + Assert.assertTrue(fsc.getItemIds().isEmpty()); + } +} diff --git a/tests/test.xml b/tests/test.xml index cedc3d245c..87e0040c2a 100644 --- a/tests/test.xml +++ b/tests/test.xml @@ -205,4 +205,4 @@ <target name="test-package" depends="server-start, run-and-clean-up, server-stop"> </target> -</project>
\ No newline at end of file +</project> diff --git a/tests/testbench/com/vaadin/tests/application/WebBrowserTest.html b/tests/testbench/com/vaadin/tests/application/WebBrowserTest.html index 75cd03dce1..04bdec4d48 100644 --- a/tests/testbench/com/vaadin/tests/application/WebBrowserTest.html +++ b/tests/testbench/com/vaadin/tests/application/WebBrowserTest.html @@ -39,12 +39,6 @@ <td>vaadin=runcomvaadintestsapplicationWebBrowserTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VLabel[0]</td> <td>Yes</td> </tr> -<!-- DST active? --> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsapplicationWebBrowserTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VLabel[0]</td> - <td>Yes</td> -</tr> </tbody></table> </body> </html> diff --git a/tests/testbench/com/vaadin/tests/components/combobox/fi.gif b/tests/testbench/com/vaadin/tests/components/combobox/fi.gif Binary files differindex 8d3a191828..8d3a191828 100755..100644 --- a/tests/testbench/com/vaadin/tests/components/combobox/fi.gif +++ b/tests/testbench/com/vaadin/tests/components/combobox/fi.gif diff --git a/tests/testbench/com/vaadin/tests/components/combobox/se.gif b/tests/testbench/com/vaadin/tests/components/combobox/se.gif Binary files differindex 80f6285228..80f6285228 100755..100644 --- a/tests/testbench/com/vaadin/tests/components/combobox/se.gif +++ b/tests/testbench/com/vaadin/tests/components/combobox/se.gif diff --git a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRunsOutOfBrowser.html b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRunsOutOfBrowser.html index 330a92898c..330a92898c 100755..100644 --- a/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRunsOutOfBrowser.html +++ b/tests/testbench/com/vaadin/tests/components/menubar/MenuBarRunsOutOfBrowser.html diff --git a/tests/testbench/com/vaadin/tests/components/table/fi.gif b/tests/testbench/com/vaadin/tests/components/table/fi.gif Binary files differindex 8d3a191828..8d3a191828 100755..100644 --- a/tests/testbench/com/vaadin/tests/components/table/fi.gif +++ b/tests/testbench/com/vaadin/tests/components/table/fi.gif diff --git a/tests/testbench/com/vaadin/tests/components/table/se.gif b/tests/testbench/com/vaadin/tests/components/table/se.gif Binary files differindex 80f6285228..80f6285228 100755..100644 --- a/tests/testbench/com/vaadin/tests/components/table/se.gif +++ b/tests/testbench/com/vaadin/tests/components/table/se.gif diff --git a/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.html b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.html new file mode 100644 index 0000000000..01bbb75361 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.html @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.treetable.DynamicallyModified?restartApplication</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>initial</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td> + <td>47,5</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>proj1-collapsed</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td> + <td>48,8</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>proj1-two-children</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td> + <td>49,7</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>proj2-collapsed</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td> + <td>47,7</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>proj2-three-children</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td> + <td>45,4</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td> + <td>45,4</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td> + <td>48,6</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableDynamicallyModified::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td> + <td>48,6</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>proj1-one-child-proj2-four-children</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java index db4e93b1f6..da6cccc0c8 100644 --- a/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java +++ b/tests/testbench/com/vaadin/tests/components/treetable/DynamicallyModified.java @@ -1,113 +1,125 @@ -package com.vaadin.tests.components.treetable; - -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; - -import com.vaadin.tests.components.TestBase; -import com.vaadin.ui.Tree; -import com.vaadin.ui.Tree.CollapseEvent; -import com.vaadin.ui.Tree.ExpandEvent; -import com.vaadin.ui.TreeTable; - -public class DynamicallyModified extends TestBase implements - Tree.ExpandListener, Tree.CollapseListener { - protected static final String NAME_PROPERTY = "Name"; - protected static final String HOURS_PROPERTY = "Hours done"; - protected static final String MODIFIED_PROPERTY = "Last Modified"; - - protected TreeTable treetable; - - @Override - protected void setup() { - getLayout().setWidth("100%"); - - // Calendar - Calendar cal = Calendar.getInstance(); - cal.set(2011, 10, 30, 14, 40, 26); - - // Create the treetable - treetable = new TreeTable(); - treetable.setWidth("100%"); - treetable.addListener((Tree.ExpandListener) this); - treetable.addListener((Tree.CollapseListener) this); - - addComponent(treetable); - - // Add Table columns - treetable.addContainerProperty(NAME_PROPERTY, String.class, ""); - treetable.addContainerProperty(HOURS_PROPERTY, Integer.class, 0); - treetable.addContainerProperty(MODIFIED_PROPERTY, Date.class, - cal.getTime()); - - // Populate table - Object allProjects = treetable.addItem(new Object[] { "All Projects", - 18, cal.getTime() }, null); - Object year2010 = treetable.addItem( - new Object[] { "Year 2010", 18, cal.getTime() }, null); - Object customerProject1 = treetable.addItem(new Object[] { - "Customer Project 1", 13, cal.getTime() }, null); - Object customerProject1Implementation = treetable.addItem(new Object[] { - "Implementation", 5, cal.getTime() }, null); - Object customerProject1Planning = treetable.addItem(new Object[] { - "Planning", 2, cal.getTime() }, null); - Object customerProject1Prototype = treetable.addItem(new Object[] { - "Prototype", 5, cal.getTime() }, null); - Object customerProject2 = treetable.addItem(new Object[] { - "Customer Project 2", 5, cal.getTime() }, null); - Object customerProject2Planning = treetable.addItem(new Object[] { - "Planning", 5, cal.getTime() }, null); - - // Set hierarchy - treetable.setParent(year2010, allProjects); - treetable.setParent(customerProject1, year2010); - treetable.setParent(customerProject1Implementation, customerProject1); - treetable.setParent(customerProject1Planning, customerProject1); - treetable.setParent(customerProject1Prototype, customerProject1); - treetable.setParent(customerProject2, year2010); - treetable.setParent(customerProject2Planning, customerProject2); - - // Disallow children from leaves - treetable.setChildrenAllowed(customerProject1Implementation, false); - treetable.setChildrenAllowed(customerProject1Planning, false); - treetable.setChildrenAllowed(customerProject1Prototype, false); - treetable.setChildrenAllowed(customerProject2Planning, false); - - // Expand all - treetable.setCollapsed(allProjects, false); - treetable.setCollapsed(year2010, false); - treetable.setCollapsed(customerProject1, false); - treetable.setCollapsed(customerProject2, false); - } - - @Override - protected String getDescription() { - return "Expanding and collapsing nodes should actually expand and collapse them even when modifying the container in a collapse listener."; - } - - @Override - protected Integer getTicketNumber() { - return 7780; - } - - public void nodeExpand(ExpandEvent event) { - - } - - public void nodeCollapse(CollapseEvent event) { - - Collection<Object> childs = (Collection<Object>) treetable - .getChildren(event.getItemId()); - - if (childs == null) { - return; - } - Object[] arr = childs.toArray(); - - for (Object obj : arr) { - System.out.println("remove " + obj.toString()); - treetable.removeItem(obj); - } - - } -} +package com.vaadin.tests.components.treetable;
+
+import java.util.Collection;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Tree;
+import com.vaadin.ui.Tree.CollapseEvent;
+import com.vaadin.ui.Tree.ExpandEvent;
+import com.vaadin.ui.TreeTable;
+
+public class DynamicallyModified extends TestBase implements
+ Tree.ExpandListener, Tree.CollapseListener {
+ protected static final String NAME_PROPERTY = "Name";
+ protected static final String HOURS_PROPERTY = "Hours done";
+ protected static final String MODIFIED_PROPERTY = "Last Modified";
+ private static final String DEFAULT_DATE = "Wed Nov 30 14:40:26 EET 2011";
+
+ protected TreeTable treetable;
+
+ @Override
+ protected void setup() {
+ getLayout().setWidth("100%");
+
+ // Create the treetable
+ treetable = new TreeTable();
+ treetable.setWidth("100%");
+ treetable.addListener((Tree.ExpandListener) this);
+ treetable.addListener((Tree.CollapseListener) this);
+
+ addComponent(treetable);
+
+ // Add Table columns
+ treetable.addContainerProperty(NAME_PROPERTY, String.class, "");
+ treetable.addContainerProperty(HOURS_PROPERTY, Integer.class, 0);
+ treetable.addContainerProperty(MODIFIED_PROPERTY, String.class,
+ DEFAULT_DATE);
+
+ // Populate table
+ Object allProjects = treetable.addItem(new Object[] { "All Projects",
+ 18, DEFAULT_DATE }, null);
+ Object year2010 = treetable.addItem(new Object[] { "Year 2010", 18,
+ DEFAULT_DATE }, null);
+ Object customerProject1 = treetable.addItem(new Object[] {
+ "Customer Project 1", 13, DEFAULT_DATE }, null);
+ Object customerProject1Implementation = treetable.addItem(new Object[] {
+ "Implementation", 5, DEFAULT_DATE }, null);
+ Object customerProject1Planning = treetable.addItem(new Object[] {
+ "Planning", 2, DEFAULT_DATE }, null);
+ Object customerProject1Prototype = treetable.addItem(new Object[] {
+ "Prototype", 5, DEFAULT_DATE }, null);
+ Object customerProject2 = treetable.addItem(new Object[] {
+ "Customer Project 2", 5, DEFAULT_DATE }, null);
+ Object customerProject2Planning = treetable.addItem(new Object[] {
+ "Planning", 5, DEFAULT_DATE }, null);
+
+ // Set hierarchy
+ treetable.setParent(year2010, allProjects);
+ treetable.setParent(customerProject1, year2010);
+ treetable.setParent(customerProject1Implementation, customerProject1);
+ treetable.setParent(customerProject1Planning, customerProject1);
+ treetable.setParent(customerProject1Prototype, customerProject1);
+ treetable.setParent(customerProject2, year2010);
+ treetable.setParent(customerProject2Planning, customerProject2);
+
+ // Disallow children from leaves
+ treetable.setChildrenAllowed(customerProject1Implementation, false);
+ treetable.setChildrenAllowed(customerProject1Planning, false);
+ treetable.setChildrenAllowed(customerProject1Prototype, false);
+ treetable.setChildrenAllowed(customerProject2Planning, false);
+
+ // Expand all
+ treetable.setCollapsed(allProjects, false);
+ treetable.setCollapsed(year2010, false);
+ treetable.setCollapsed(customerProject1, false);
+ treetable.setCollapsed(customerProject2, false);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Collaps 'Customer Project 1' will cause the first child if it to be removed. Expanding 'Custom Project 2' will cause a new child to be added. These events should be rendered correctly.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7780;
+ }
+
+ private int newChild = 1;
+
+ public void nodeExpand(ExpandEvent event) {
+ Object expandedItemId = event.getItemId();
+ // 7 == "Customer Project 1"
+ if (expandedItemId != Integer.valueOf(7)) {
+ return;
+ }
+ Object newChildId = treetable.addItem(new Object[] {
+ "New child " + newChild++, 5, "Fri Nov 04 10:53:16 EET 2011" },
+ null);
+ treetable.setParent(newChildId, expandedItemId);
+ treetable.setChildrenAllowed(newChildId, false);
+ }
+
+ public void nodeCollapse(CollapseEvent event) {
+
+ Object collapsedItemId = event.getItemId();
+
+ // 3 == "Customer Project 1"
+ if (collapsedItemId != Integer.valueOf(3)) {
+ return;
+ }
+ @SuppressWarnings("unchecked")
+ Collection<Object> childs = (Collection<Object>) treetable
+ .getChildren(event.getItemId());
+
+ if (childs == null) {
+ return;
+ }
+ Object[] arr = childs.toArray();
+
+ if (arr.length > 0) {
+ treetable.removeItem(arr[0]);
+ }
+
+ }
+}
\ No newline at end of file diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html new file mode 100644 index 0000000000..b22d77a94c --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html @@ -0,0 +1,528 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.treetable.TreeTableCacheOnPartialUpdates?restartApplication</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[0]/VNativeButton[0]</td> + <td>47,5</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[1]/VNativeButton[0]</td> + <td>46,7</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[6]/VNativeButton[0]</td> + <td>54,12</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>1. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>2. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 1</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>3. Button Item TestBean [col1=7 (children), col2=G]/col3 clicked. Row index: 6</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td> + <td>10,7</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>4. Row Item TestBean [col1=1 (children), col2=A] expanded. Row index: 0</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[0]/VNativeButton[0]</td> + <td>81,6</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[1]/VNativeButton[0]</td> + <td>73,8</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[0]/VNativeButton[0]</td> + <td>86,7</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[5]/VNativeButton[0]</td> + <td>72,2</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[6]/VNativeButton[0]</td> + <td>73,7</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td> + <td>5. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>6. Button Item TestBean [col1=1.1, col2=A.A]/col3 clicked. Row index: 1</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>7. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>8. Button Item TestBean [col1=1.5, col2=A.E]/col3 clicked. Row index: 5</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>9. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 6</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td> + <td>11,2</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>10. Row Item TestBean [col1=1 (children), col2=A] collapsed. Row index: 0</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[0]/VNativeButton[0]</td> + <td>76,5</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[2]/VNativeButton[0]</td> + <td>58,7</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[1]/VNativeButton[0]</td> + <td>69,10</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[0]/VNativeButton[0]</td> + <td>78,7</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td> + <td>10. Row Item TestBean [col1=1 (children), col2=A] collapsed. Row index: 0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>11. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>12. Button Item TestBean [col1=3 (children), col2=C]/col3 clicked. Row index: 2</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>13. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 1</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>14. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> +</tr> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> + <td>30000</td> +</tr> +<tr> + <td>pause</td> + <td>500</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[41]/VNativeButton[0]</td> + <td>53,-2462</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> + <td>91,-2452</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[28]/VNativeButton[0]</td> + <td>84,-2461</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[41]/VNativeButton[0]</td> + <td>102,-2452</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>15. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>16. Button Item TestBean [col1=93, col2=CO]/col3 clicked. Row index: 92</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>17. Button Item TestBean [col1=87, col2=CI]/col3 clicked. Row index: 86</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>18. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> +</tr> +<!-- This relies on the row height being the same in all browsers. --> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> + <td>990</td> +</tr> +<tr> + <td>pause</td> + <td>500</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>scrolled</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> + <td>34,-994</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[34]/domChild[0]/domChild[0]/domChild[0]</td> + <td>9,-995</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> + <td>93,-991</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[35]/VNativeButton[0]</td> + <td>123,-991</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td> + <td>114,-1000</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> + <td>118,-993</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td> + <td>20. Row Item TestBean [col1=40 (children), col2=AN] expanded. Row index: 39</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>21. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>22. Button Item TestBean [col1=40.1, col2=AN.A]/col3 clicked. Row index: 40</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>23. Button Item TestBean [col1=40.10, col2=AN.J]/col3 clicked. Row index: 49</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>24. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[34]/domChild[0]/domChild[0]/domChild[0]</td> + <td>9,-998</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> + <td>42,-990</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[29]/VNativeButton[0]</td> + <td>84,-990</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td> + <td>98,-998</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>26. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>27. Button Item TestBean [col1=35, col2=AI]/col3 clicked. Row index: 34</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>28. Button Item TestBean [col1=48, col2=AV]/col3 clicked. Row index: 47</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[35]/VNativeButton[0]</td> + <td>101,-994</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>29. Button Item TestBean [col1=41, col2=AO]/col3 clicked. Row index: 40</td> +</tr> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> + <td>2465</td> +</tr> +<tr> + <td>pause</td> + <td>500</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[30]/VNativeButton[0]</td> + <td>136,-2447</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td> + <td>131,-2462</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[43]/VNativeButton[0]</td> + <td>134,-2459</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td> + <td>144,-2454</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>30. Button Item TestBean [col1=86, col2=CH]/col3 clicked. Row index: 85</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>31. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>32. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>33. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[43]/domChild[0]/domChild[0]/domChild[0]</td> + <td>10,-2461</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[43]/VNativeButton[0]</td> + <td>65,-2456</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>34. Row Item TestBean [col1=99 (children), col2=CU] expanded. Row index: 98</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>35. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[30]/VNativeButton[0]</td> + <td>109,-2455</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>36. Button Item TestBean [col1=86, col2=CH]/col3 clicked. Row index: 85</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td> + <td>82,-2457</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>37. Button Item TestBean [col1=99.1, col2=CU.A]/col3 clicked. Row index: 99</td> +</tr> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> + <td>2800</td> +</tr> +<tr> + <td>pause</td> + <td>500</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[43]/VNativeButton[0]</td> + <td>85,-2792</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td> + <td>101,-2788</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td> + <td>111,-2794</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[56]/VNativeButton[0]</td> + <td>113,-2794</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> + <td>38. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> + <td>39. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> + <td>40. Button Item TestBean [col1=99.1, col2=CU.A]/col3 clicked. Row index: 99</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>41. Button Item TestBean [col1=99.13, col2=CU.M]/col3 clicked. Row index: 111</td> +</tr> +<!--collapse 99--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[43]/domChild[0]/domChild[0]/domChild[0]</td> + <td>11,-2792</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>42. Row Item TestBean [col1=99 (children), col2=CU] collapsed. Row index: 98</td> +</tr> +<tr> + <td>pause</td> + <td></td> + <td>300</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[43]/VNativeButton[0]</td> + <td>71,-2465</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>43. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td> + <td>81,-2459</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>44. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td> + <td>80,-2458</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>45. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[30]/VNativeButton[0]</td> + <td>86,-2462</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> + <td>46. Button Item TestBean [col1=86, col2=CH]/col3 clicked. Row index: 85</td> +</tr> +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java new file mode 100644 index 0000000000..bc1b632daf --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdates.java @@ -0,0 +1,238 @@ +package com.vaadin.tests.components.treetable;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.vaadin.data.Container;
+import com.vaadin.data.Container.Ordered;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.data.util.ContainerHierarchicalWrapper;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.NativeSelect;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.Table.ColumnGenerator;
+import com.vaadin.ui.Tree.CollapseEvent;
+import com.vaadin.ui.Tree.CollapseListener;
+import com.vaadin.ui.Tree.ExpandEvent;
+import com.vaadin.ui.Tree.ExpandListener;
+import com.vaadin.ui.TreeTable;
+
+public class TreeTableCacheOnPartialUpdates extends TestBase {
+ private Log log = new Log(5);
+
+ public class TestBean implements Serializable {
+ private String col1;
+ private String col2;
+
+ public TestBean() {
+ col1 = "";
+ col2 = "";
+ }
+
+ public TestBean(String col1, String col2) {
+ this.col1 = col1;
+ this.col2 = col2;
+ }
+
+ public String getCol1() {
+ return col1;
+ }
+
+ public void setCol1(String col1) {
+ this.col1 = col1;
+ }
+
+ public String getCol2() {
+ return col2;
+ }
+
+ public void setCol2(String col2) {
+ this.col2 = col2;
+ }
+
+ @Override
+ public String toString() {
+ return "TestBean [col1=" + col1 + ", col2=" + col2 + "]";
+ }
+
+ }
+
+ public class Col3ColumnGenerator implements ColumnGenerator {
+ public Component generateCell(final com.vaadin.ui.Table source,
+ final Object itemId, Object columnId) {
+ TestBean tb = (TestBean) itemId;
+ // if (!tb.getCol1().contains("children")) {
+ // return null;
+ // }
+ String identifier = "Item " + itemId + "/" + columnId;
+ System.out.println("Generating new Button for " + identifier);
+ Button btnCol3 = new NativeButton(identifier);
+ btnCol3.addListener(new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ log.log("Button " + event.getButton().getCaption()
+ + " clicked. Row index: "
+ + indexOfId(source, itemId));
+ }
+ });
+ return btnCol3;
+ }
+
+ }
+
+ protected int indexOfId(Table source, Object itemId) {
+ Container.Ordered c = (Ordered) source.getContainerDataSource();
+ if (c instanceof Container.Indexed) {
+ return ((Container.Indexed) source).indexOfId(itemId);
+ } else {
+ ArrayList<Object> list = new ArrayList<Object>(source.getItemIds());
+ return list.indexOf(itemId);
+
+ }
+ }
+
+ private TreeTable treeTable;
+ private BeanItemContainer<TestBean> testBeanContainer;
+ private static String[] columnHeaders = new String[] { "Col1", "Col2",
+ "Col3" };
+ private static Object[] visibleColumns = new Object[] { "col1", "col2",
+ "col3" };
+
+ @Override
+ public void setup() {
+ setTheme("reindeer-tests");
+
+ // Force row height to be the same in all browsers so scrolling based on
+ // pixels works as expected
+ Button b = new Button("Show first");
+ addComponent(b);
+ b.addListener(new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ log.log("First visible item id is: "
+ + treeTable.getCurrentPageFirstItemId());
+ }
+ });
+ NativeSelect cacheRateSelect = new NativeSelect("Cache rate");
+ cacheRateSelect.setImmediate(true);
+ cacheRateSelect.setNullSelectionAllowed(false);
+ cacheRateSelect.addItem(new Integer(0));
+ cacheRateSelect.addItem(new Integer(1));
+ cacheRateSelect.addItem(new Integer(2));
+ cacheRateSelect.setValue(2);
+ cacheRateSelect.addListener(new ValueChangeListener() {
+
+ public void valueChange(ValueChangeEvent event) {
+ treeTable
+ .setCacheRate((Integer) event.getProperty().getValue());
+ }
+ });
+ addComponent(cacheRateSelect);
+ treeTable = new TreeTable();
+ treeTable.addStyleName("table-equal-rowheight");
+ // treeTable.setPageLength(0);
+ testBeanContainer = new BeanItemContainer<TestBean>(TestBean.class);
+
+ Map<String, Integer> hasChildren = new HashMap<String, Integer>();
+ hasChildren.put("1", 5);
+ hasChildren.put("3", 10);
+ hasChildren.put("5", 20);
+ hasChildren.put("6", 7);
+ hasChildren.put("7", 1);
+ hasChildren.put("40", 20);
+ hasChildren.put("99", 20);
+ treeTable.setContainerDataSource(createContainer(100, hasChildren));
+ treeTable.addGeneratedColumn("col3", new Col3ColumnGenerator());
+ treeTable.addListener(new ExpandListener() {
+
+ public void nodeExpand(ExpandEvent event) {
+ logExpandCollapse(event.getItemId(), "expanded");
+
+ }
+ });
+ treeTable.addListener(new CollapseListener() {
+
+ public void nodeCollapse(CollapseEvent event) {
+ logExpandCollapse(event.getItemId(), "collapsed");
+
+ }
+ });
+ treeTable.setColumnHeaders(columnHeaders);
+ treeTable.setVisibleColumns(visibleColumns);
+ treeTable.setColumnWidth("col1", 150);
+ treeTable.setColumnWidth("col2", 50);
+ treeTable.setHeight("430px");
+ // treeTable.setColumnWidth("col3", 150);
+ addComponent(log);
+ addComponent(treeTable);
+ }
+
+ protected void logExpandCollapse(Object itemId, String operation) {
+ String identifier = "Item " + itemId;
+ log.log("Row " + identifier + " " + operation + ". Row index: "
+ + indexOfId(treeTable, itemId));
+
+ }
+
+ private Container createContainer(int items,
+ Map<String, Integer> hasChildren) {
+ ContainerHierarchicalWrapper container;
+
+ container = new ContainerHierarchicalWrapper(testBeanContainer);
+ populate(container, items, hasChildren);
+ return container;
+ }
+
+ private void populate(Container.Hierarchical container, int items,
+ Map<String, Integer> children) {
+
+ for (int i = 0; i < items; i++) {
+ String row = String.valueOf(i + 1);
+ String rowText = stringForInt(i);
+
+ TestBean itemId = new TestBean(row, rowText);
+ container.addItem(itemId);
+ if (children.containsKey(row)) {
+ itemId.setCol1(itemId.getCol1() + " (children)");
+ for (int j = 0; j < children.get(row); j++) {
+ TestBean childItemId = new TestBean(row + "." + (j + 1),
+ rowText + "." + stringForInt(j));
+ container.addItem(childItemId);
+ container.setParent(childItemId, itemId);
+ }
+ }
+
+ }
+ }
+
+ private String stringForInt(int i) {
+ int charsAllowed = 26; // a-z
+ if (i >= charsAllowed) {
+ return stringForInt(i / charsAllowed - 1)
+ + stringForInt(i % charsAllowed);
+ } else {
+ return String.valueOf((char) (i + 'A'));
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
\ No newline at end of file diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html new file mode 100644 index 0000000000..2e69052162 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableNegativeArraySize.html @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.treetable.TreeTablePartialUpdates?restartApplication</td> + <td></td> +</tr> +<!--expand root1--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td> + <td>12,4</td> +</tr> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]</td> + <td>3969</td> +</tr> +<tr> + <td>pause</td> + <td>300</td> + <td></td> +</tr> +<!--expand root2--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[42]/domChild[0]/domChild[0]/domChild[0]</td> + <td>9,-183</td> +</tr> +<!--collapse root2--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[42]/domChild[0]/domChild[0]/domChild[0]</td> + <td>11,-182</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>root1-expanded-scrolled-to-end</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.html b/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.html new file mode 100644 index 0000000000..645135575d --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.html @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>DisappearingComponents</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">DisappearingComponents</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.treetable.TreeTablePartialUpdatesPageLength0?restartApplication</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdatesPageLength0::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td> + <td>10,2</td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>root1-expanded-10-items</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdatesPageLength0::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[12]/domChild[0]/domChild[0]/domChild[0]</td> + <td>11,3</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdatesPageLength0::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTreeTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[11]/domChild[0]/domChild[0]/domChild[0]</td> + <td>9,7</td> +</tr> +<tr> + <td>scroll</td> + <td>vaadin=runcomvaadintestscomponentstreetableTreeTablePartialUpdatesPageLength0::</td> + <td>11771</td> +</tr> +<tr> + <td>pause</td> + <td>300</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>all-expanded-bottom</td> +</tr> +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.java b/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.java new file mode 100644 index 0000000000..20412bf0e2 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTablePartialUpdatesPageLength0.java @@ -0,0 +1,68 @@ +package com.vaadin.tests.components.treetable; + +import com.vaadin.data.Container.Hierarchical; +import com.vaadin.data.util.HierarchicalContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.TreeTable; + +public class TreeTablePartialUpdatesPageLength0 extends TestBase { + + @Override + protected void setup() { + setTheme("reindeer-tests"); + TreeTable tt = new TreeTable(); + tt.addStyleName("table-equal-rowheight"); + tt.setPageLength(0); + tt.setContainerDataSource(makeHierarchicalContainer()); + tt.setWidth("300px"); + addComponent(tt); + tt.getParent().setHeight(null); + tt.getParent().getParent().setHeight(null); + } + + private Hierarchical makeHierarchicalContainer() { + HierarchicalContainer hc = new HierarchicalContainer(); + hc.addContainerProperty("p1", String.class, ""); + hc.addContainerProperty("p2", String.class, ""); + + Object r1 = hc.addItem(); + hc.getItem(r1).getItemProperty("p1").setValue("root1"); + hc.getItem(r1).getItemProperty("p2").setValue("root1"); + + Object r2 = hc.addItem(); + hc.getItem(r2).getItemProperty("p1").setValue("root2"); + hc.getItem(r2).getItemProperty("p2").setValue("root2"); + + Object r3 = hc.addItem(); + hc.getItem(r3).getItemProperty("p1").setValue("root3"); + hc.getItem(r3).getItemProperty("p2").setValue("root3"); + + Object r4 = hc.addItem(); + hc.getItem(r4).getItemProperty("p1").setValue("END"); + hc.setChildrenAllowed(r4, false); + + addNodesToRoot(hc, r1, 10); + addNodesToRoot(hc, r2, 200); + addNodesToRoot(hc, r3, 200); + return hc; + } + + private void addNodesToRoot(HierarchicalContainer hc, Object root, int count) { + for (int ix = 0; ix < count; ix++) { + Object id = hc.addItem(); + hc.getItem(id).getItemProperty("p1").setValue(String.valueOf(ix)); + hc.setParent(id, root); + } + } + + @Override + protected String getDescription() { + return ""; + } + + @Override + protected Integer getTicketNumber() { + return 6722; + } + +} diff --git a/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java b/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java new file mode 100644 index 0000000000..10f54e9ce6 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/upload/TestFileUpload.java @@ -0,0 +1,58 @@ +package com.vaadin.tests.components.upload;
+
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+
+import org.apache.commons.codec.digest.DigestUtils;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Upload;
+import com.vaadin.ui.Upload.FinishedEvent;
+import com.vaadin.ui.Upload.Receiver;
+
+public class TestFileUpload extends TestBase implements Receiver {
+
+ private Log log = new Log(5);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ @Override
+ protected void setup() {
+ Upload u = new Upload("Upload", new Upload.Receiver() {
+
+ public OutputStream receiveUpload(String filename, String mimeType) {
+ return baos;
+ }
+ });
+ u.setDebugId("UPL");
+ u.addListener(new Upload.FinishedListener() {
+
+ public void uploadFinished(FinishedEvent event) {
+ String hash = DigestUtils.md5Hex(baos.toByteArray());
+ log.log("Upload finished. Name: " + event.getFilename()
+ + ", Size: " + baos.size() + ", md5: " + hash);
+ baos.reset();
+ }
+ });
+
+ addComponent(log);
+ addComponent(u);
+ }
+
+ public OutputStream receiveUpload(String filename, String MIMEType) {
+ getMainWindow().showNotification("Receiving upload");
+ return new ByteArrayOutputStream();
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 6465;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Creates and prints an MD5 hash of any uploaded file.";
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/upload/file-binary-cb4a65687deb859957ad4b0fd9d67eac.png b/tests/testbench/com/vaadin/tests/components/upload/file-binary-cb4a65687deb859957ad4b0fd9d67eac.png Binary files differnew file mode 100644 index 0000000000..39daa93ea5 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/upload/file-binary-cb4a65687deb859957ad4b0fd9d67eac.png diff --git a/tests/testbench/com/vaadin/tests/components/upload/file-text-6ebed606225d0b6254d45f51aa2dfe9f b/tests/testbench/com/vaadin/tests/components/upload/file-text-6ebed606225d0b6254d45f51aa2dfe9f new file mode 100644 index 0000000000..584a249bba --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/upload/file-text-6ebed606225d0b6254d45f51aa2dfe9f @@ -0,0 +1,1004 @@ +2d98e3c544 +e44d0744f9 +d401ad4c60 +dec8a7e883 +e072cc8f1c +71b9a95d2c +83a23581a1 +3f413b230e +d401ad4c60 +2ace3efb39 +1813c3df93 +b0abbecb03 +c7fa6a137a +76ea0e980d +f2c23a3d97 +b6b8a08ae0 +6fde57d313 +ae70ad98c3 +1ba2d1cde8 +086275ada6 +5afe48f17a +ddbae4b1ee +c87e15e907 +9ceeb040b1 +1ba2d1cde8 +086275ada6 +5afe48f17a +ddbae4b1ee +c87e15e907 +9ceeb040b1 +1ba2d1cde8 +086275ada6 +5afe48f17a +ddbae4b1ee +c87e15e907 +9ceeb040b1 +c39a8209ce +c67c11239a +2d1f563d42 +412578d786 +06bc1fbde7 +6c4593da6b +b669dd2697 +848019e837 +b2f59a63a6 +32e6573a2c +f457b990e5 +fc8ea59ac7 +1ada24fa8d +6573207a6b +6573207a6b +5a4f083e75 +6803cab5e4 +65888eb7c5 +0879a46081 +5b205244ff +bd0a2772c3 +42868f6d11 +2e7afa75bc +c5d7b0707e +9631778b8c +6f07248648 +40e91dbf16 +f96be9a8f7 +a88a1854cb +2fa7fa7d66 +60a35fd7cb +8b372da985 +6a6c67346d +188ce6eb1f +d1c9a169a1 +0bd87a214d +83f053f7a5 +3358a180cb +41ed082e91 +2912187c1d +a0214bceec +f85481335c +f5a142812b +1c14f51af6 +160530c5ad +2912187c1d +8a450f235a +96c5a6946a +6af236ba57 +4d90960935 +f4a5b490e0 +1dd5de37e2 +6650e7ffe2 +e58283083c +fb1fb27b05 +4d90960935 +f4a5b490e0 +1dd5de37e2 +6650e7ffe2 +e58283083c +fb1fb27b05 +f634aced5e +8da7aee58e +929579022b +9eed7a35b7 +3a32cc5d98 +6cff1af7f8 +8065e24c9e +2c31da84c2 +71f40f5448 +d05937e031 +5663969a56 +78b0f40acd +cd6ed372f4 +2479efdeb1 +562cc4ebea +07d606333d +84e4cea4e9 +f634aced5e +8da7aee58e +929579022b +9eed7a35b7 +285b2fdf28 +6cff1af7f8 +8065e24c9e +2c31da84c2 +71f40f5448 +d05937e031 +5663969a56 +78b0f40acd +84f15af378 +2479efdeb1 +562cc4ebea +07d606333d +84e4cea4e9 +6b8fc7e946 +13f6121fd5 +c8b447662b +c85b30a05a +d38a970f96 +961c7e7e21 +642d8c593e +9ad9bff4d5 +3d75060729 +f1ace1aba1 +495a2264fb +38edd8b721 +ae6e3ac06e +5e1474df47 +e8cdf3eb7a +1f980543ec +e278f03128 +59dc7d1abd +4871dc42a3 +eb4182001c +02c2586dfa +38cf0d6100 +21edf67587 +ede8b24dbb +dedacf4a28 +6c3eb4312c +511611906b +5abf574c72 +71cbddf866 +3d391b10ba +4278538caf +9b9ffe9f3d +dc167930ac +7241dffcc7 +59dc7d1abd +4871dc42a3 +eb4182001c +02c2586dfa +83029e8b20 +21edf67587 +ede8b24dbb +dedacf4a28 +6c3eb4312c +511611906b +5abf574c72 +71cbddf866 +3d391b10ba +4278538caf +cd9e816357 +dc167930ac +7241dffcc7 +6b752db85c +a24c73b0ba +bc7770b7d9 +1cceae80cb +3ef6f1e899 +0a5ea8e97a +7ae77759a3 +f9173f3473 +7aca7ef5e3 +349e099e0b +ac9adf6eed +6ef7d70057 +f3c6e5a866 +74c19964ef +212ef0ef42 +f2f6e1ad5b +9f09674473 +1fc5f2ebe3 +f2fb3765b7 +5c8341d0cc +9d3dbf8019 +a5f6722a12 +17d90bca3e +ba58c17074 +5d0a3e0b1e +713f3d8b8f +9b34d18e95 +546ebab2d6 +91ec0af834 +243b879760 +c5875221dd +e8c01b499f +83597d45fe +246870f81c +439e999ef3 +ceda80311c +ea0f2e49bf +8ac9a9bdb8 +4e42ad4ee1 +037d20073d +7585490fd8 +022279d5a5 +b74d7d6726 +f8cfa14fb6 +b01bbf48c9 +7643dc4f96 +6a62a66614 +4a5eb8443b +f2e2d6c15a +0be7b171e7 +204db3a3ca +621b5af801 +81ae7fb274 +3a9f328a17 +f185d2b8b3 +12cb0c8fd6 +805969d565 +4d7bbe799f +7f03271cfc +8e97c9d08d +f8348ce65d +9a65a91b00 +ecc3b9208a +c23fea33d5 +aff2f77e97 +982394c754 +ffe13626d6 +ab071b2cf8 +c43cdb7d85 +48a65d3bc2 +060d9c83dd +2db9573403 +96a6383b79 +7edf1bee25 +b766d4a101 +944bbd16e5 +a51ec022c4 +ea35502afa +83a7178024 +ceb9a449ab +46f9a23ad4 +b44b6830f1 +e59415a949 +a2f8e57e49 +dce3561540 +5982e0753a +42f0eb1795 +8e59741ba7 +3749cc8930 +748979cc52 +5a7864ad06 +1896805fdf +f4649a7cea +c0c9cfd55f +9b0bd0436d +699019ebba +f81fb0687c +bcf3cd73c1 +03a20a0f93 +f785f8cf3a +66bc2b49de +1a2d41b167 +d78605805f +4887353981 +bffd374058 +52f780e615 +5d1ba0c537 +769d29e16a +4793a4ab95 +03abfc1a8b +5f8fe69826 +af7358b342 +39ceafda86 +c9ba8b10d3 +dcd4f8ff63 +cd07265a21 +b3d6f1529c +6da4a60ce7 +db38838b25 +8ae38fe0b2 +27bcf61389 +ab74a0be6e +836655e45e +aa76686f5c +b6b754b376 +cf43cdacab +272bbafa15 +37362cf847 +70d61316c6 +d53aac3273 +f5f0f28ab7 +0b6ccb5dfe +3334d541f0 +a3d97554fa +a643aabf00 +f20ee7c9df +df45121225 +27bcf61389 +ab74a0be6e +836655e45e +aa76686f5c +b6b754b376 +cf43cdacab +272bbafa15 +37362cf847 +70d61316c6 +d53aac3273 +f5f0f28ab7 +0b6ccb5dfe +3334d541f0 +a3d97554fa +a643aabf00 +f20ee7c9df +df45121225 +a69cabd52d +2038bdbfb5 +e1967907e5 +76e579bfe8 +436747ad98 +6f918c8a96 +6fa98bb176 +f059540405 +e4962285ae +bb1a40f77f +1067626ae7 +a52f5910a4 +57f1bccafd +c03c5ddaa0 +0ac1251539 +a69cabd52d +2038bdbfb5 +e1967907e5 +76e579bfe8 +436747ad98 +6f918c8a96 +6fa98bb176 +f059540405 +e4962285ae +bb1a40f77f +1067626ae7 +bc72da3822 +774666adc0 +c03c5ddaa0 +0ac1251539 +3472eda9d1 +5114a311d2 +4c279ac052 +847545f73c +46ecbaddb5 +a2063362d7 +4696f19810 +2e308c8ce7 +e4962285ae +9a1eb4a96f +6b2f6354f0 +a2014ad127 +b10a228fa2 +e879abb300 +65c52dd261 +ae41b2a68a +e969d259f8 +68108671a3 +be768fb98f +94b1c1eec3 +40ec416d24 +509a8791d2 +507b237f3f +24494b5d9c +541692d3be +47a053595e +bd72a3d9de +fa971ab11d +fa64db3c15 +98061c5f66 +ae41b2a68a +e969d259f8 +68108671a3 +be768fb98f +94b1c1eec3 +40ec416d24 +509a8791d2 +507b237f3f +24494b5d9c +541692d3be +47a053595e +bd72a3d9de +fa971ab11d +fa64db3c15 +13a23ac4c8 +ae41b2a68a +e969d259f8 +68108671a3 +be768fb98f +94b1c1eec3 +40ec416d24 +509a8791d2 +507b237f3f +24494b5d9c +541692d3be +47a053595e +bd72a3d9de +fa971ab11d +fa64db3c15 +35769491af +557f4b4038 +7d56c0d312 +7d56c0d312 +5eb479cf57 +1500d72b55 +0cd45baec6 +d739b3fa7c +d739b3fa7c +ea2d10ab74 +638678bf65 +638678bf65 +8482dd6858 +038129579b +038129579b +3adac692b6 +8a6b501d89 +8a6b501d89 +80a95844ff +207d6b8a50 +584c797a5a +3afe807989 +3afe807989 +75504d8e30 +018ff25eaa +018ff25eaa +ec600b6fa1 +4e1235ac36 +2484cac133 +d57528a526 +d57528a526 +a0a2bd8aba +7ef7d97a3e +0b0492597a +57196e9d75 +c4cee1b488 +04891e7670 +3be27be6d6 +46d7cffe93 +7da93b0ce1 +240d2f2b34 +702266d813 +d021601e98 +d320900bd0 +d7553dc537 +0512ac8f5e +d27184f7c9 +866bd94eb1 +c6e2029f12 +5f5ff20ecb +5b27389dbd +9e1adc7ffe +1216b50b12 +b870941c7e +807349164a +c439b0a04d +b746137770 +e8a4112f53 +37a9a41f5f +f8836c7f22 +5accf3b3bd +3cb1baeee9 +cae97cc6d7 +e1327b5dc7 +aa1621c6d2 +519627e8bb +955aec0c93 +e718b14224 +533e0b64e3 +8f4b1713a4 +e3f0346b4b +85e33ed9fa +73ae0f68d5 +a61be1e943 +8386ab637c +c244361db7 +9c720f3b0c +201499c852 +2803e3fb25 +7937932e65 +2ee0f9c250 +e00af0b5d5 +7cc6f2ed15 +3f96b342ab +091a289c02 +a181764387 +844dde0796 +d8d90540f0 +a0f7900589 +f00a677a31 +5990b96022 +ccc53dab0c +3449cc9953 +e4962285ae +7c8c4052d6 +8401ac8bb3 +b83a7b237e +1f348eac96 +bd9d71d01f +8f0bc29b79 +a181764387 +844dde0796 +d8d90540f0 +a0f7900589 +f00a677a31 +5990b96022 +ccc53dab0c +3449cc9953 +e4962285ae +7c8c4052d6 +8401ac8bb3 +8be5cd4017 +185447a319 +bd9d71d01f +8f0bc29b79 +b726adbb26 +cb9733729b +e1967907e5 +797b50f7c5 +69690f6e8c +e1b8425ce3 +6861d192cf +f059540405 +e4962285ae +cd9765c4b2 +36275b4d01 +d2b2c8eb7f +eab16b53cd +9795ae7f99 +1f6a527e64 +b726adbb26 +cb9733729b +e1967907e5 +797b50f7c5 +69690f6e8c +e1b8425ce3 +6861d192cf +f059540405 +e4962285ae +cd9765c4b2 +36275b4d01 +794f7dfe01 +eab16b53cd +9795ae7f99 +1f6a527e64 +60b3d17c20 +a623f84526 +f1989db382 +88aeb0a398 +ec5d693c10 +9abe7fc421 +13fd434f4c +bd00c3df0f +e6e9e0f657 +bbc4ad07dd +ef1abbbd28 +a52f5910a4 +b6ba6b9ef1 +27012d6cb1 +1a91270ad6 +6eb6ae051d +ad112b7063 +783095acbd +691bc6266a +b258b372d9 +662d9ba5aa +159dbebe91 +a26c9dd02f +10227c973c +0ea945e177 +bc72da3822 +27251f2307 +958305b181 +7dda498f11 +387ff50d16 +cfc72207b0 +0710287d3d +dcc8515fe7 +d760df602e +cb1158e54b +1097dbafc6 +3a8f065c79 +3eefb05112 +5cb26a7ecb +d0d2443a6f +6ff92edcfe +16206969f9 +290a1537cb +22320897cd +fa66d2dacb +2f2151d093 +5bc6f9f6dc +1fb093aeb0 +03db1d3acf +0ed4df2b97 +63eb3599ef +82cb8afa50 +717b067a83 +bd72a3d9de +fab07c0332 +467ef61bdb +290a1537cb +2cfd7895d5 +fa66d2dacb +2f2151d093 +5bc6f9f6dc +1fb093aeb0 +03db1d3acf +0ed4df2b97 +63eb3599ef +82cb8afa50 +717b067a83 +bd72a3d9de +fab07c0332 +467ef61bdb +290a1537cb +2cfd7895d5 +fa66d2dacb +2f2151d093 +5bc6f9f6dc +1fb093aeb0 +03db1d3acf +0ed4df2b97 +63eb3599ef +82cb8afa50 +717b067a83 +bd72a3d9de +fab07c0332 +467ef61bdb +7524eb46ab +0c9f478fd5 +7d0f40d76f +c982554bf3 +91bc364a07 +ebc8679b90 +6c8372a5a2 +b76c6bcedb +89f7a43d19 +b2582b3dd7 +867d282139 +c376c14dd9 +8c3c3d6a8d +553ee176a5 +407b1efa9a +c6127c0781 +6db03534f2 +4e6a182635 +b72f894865 +1f5d054542 +25c994409f +484ac441be +5446a48b0e +59590990d7 +4bc3b1bba2 +d320900bd0 +b7fa156d23 +6c43aaf031 +75ea15f150 +bab2a9ac58 +25c1743c3a +a56530a02d +fd80f8cbe8 +727541e3a3 +11af44923f +1f6f5fbffb +792115827d +e8f9201149 +be5a971e4b +bf56d74dc3 +6e455b254a +ceae74e4a7 +57cc64e0be +082cd5e73d +2cad0a8a32 +cf6cd7ec64 +36138417d3 +05352d6cb3 +5e24336f83 +829043273f +16f783ae6f +ab8217a637 +ed4d4cd26e +e00af0b5d5 +f52dd45e7b +e0479138f2 +c17c0ec2b9 +10453f00d1 +b39886c519 +8c7ee78a0f +7e82f87a35 +420d717205 +e51cf16f3c +bd73d44128 +f6bca33fdd +912f780953 +51db8aae6d +de64bbce3c +bfb5f61977 +871700efd5 +c17c0ec2b9 +10453f00d1 +b39886c519 +8c7ee78a0f +7e82f87a35 +420d717205 +e51cf16f3c +bd73d44128 +f6bca33fdd +912f780953 +67b468ba8b +04cbbfca0d +6fec0d4cda +871700efd5 +219a751d31 +b234ceccbb +4d0b8f5b38 +cdec12c44b +f55dea12c8 +eba2c2eed9 +69d83d02eb +2dc33a7b3b +f2e0a28533 +3a6ae4b7e8 +753dba2d02 +d2b2c8eb7f +c052c450d5 +703a1831d0 +945f002006 +1069d9d086 +ebc4023a1e +865103f032 +052010ede4 +eba2c2eed9 +49b9f56b8e +fd65329414 +e67b8e5f1e +ac96e078fa +d89ebad9f4 +794f7dfe01 +9cc98c81f5 +c28bb4aed3 +ccccf6b944 +28c32dc265 +7c2faedec3 +0ce386c764 +50858772d9 +d47d6d0bcf +262fcf273c +76fb8c4083 +7308092f23 +af6c1110a1 +9c0138a1a1 +1d97bd3bcc +34ddf6c714 +93baa8603e +60e4bad93c +14001068f1 +57f1bccafd +b74d53a8cd +b43c894dfd +294a499739 +072610023b +c7ef61051d +f675213593 +e652f6d0c0 +ab4330cc0d +f21aa6de4d +4de9d6b91b +e6a0c14e84 +7dc7772e2a +c75f7d225a +3134500dfd +2e2108dd6a +581fdec789 +d147b32c60 +ff514ac88c +db6c4dc283 +17ff24959a +a665df8dde +eb140cea50 +cf5527376d +ac87a3bdeb +35ef1aa4ca +d484e53c7a +e6c3a4a4f2 +5485e805cd +f4b010a5ec +598dd253ee +b2c27be259 +8bfb764fed +3de481cf0d +b10a228fa2 +95b256ec4a +e70b3dbd59 +a3898c0e6d +4e026c5d2c +17aff60dee +493cc1dd5d +4e0fd44faa +7e5d01a386 +359736c8a8 +216c5acbda +9d99772f35 +6e1b79c64a +c476a6f14f +fd82b868d9 +5f7e638b53 +9c6fd6576b +fa971ab11d +95b256ec4a +e70b3dbd59 +a3898c0e6d +4e026c5d2c +8ab1c97d26 +493cc1dd5d +4e0fd44faa +7e5d01a386 +359736c8a8 +216c5acbda +9d99772f35 +6e1b79c64a +c476a6f14f +fd82b868d9 +5f7e638b53 +9c6fd6576b +fa971ab11d +95b256ec4a +e70b3dbd59 +a3898c0e6d +4e026c5d2c +8ab1c97d26 +493cc1dd5d +4e0fd44faa +7e5d01a386 +359736c8a8 +216c5acbda +9d99772f35 +6e1b79c64a +c476a6f14f +fd82b868d9 +5f7e638b53 +9c6fd6576b +fa971ab11d +4a956faa36 +bb55b3160c +5af6ffef6d +bf3dc62fcb +3b2e22298f +efd580c008 +89385e6cf6 +8922e86a9a +f7dca83f80 +0c10532047 +5db9836d63 +9e5798dc30 +9b7405896d +ab6d82f202 +065da8661b +1166faab0a +4e1235ac36 +6baecac87b +1db20adf2f +24ffb91b69 +c625bf279c +72f7d62113 +49d89ceeda +b2cb43e87a +5171db444c +f49540eb79 +d02fd1e54e +ec132f51cb +c1bd4a5224 +6a5acd847b +43b9b0e006 +76fead51d7 +3137d7e735 +d7553dc537 +6d76d063f4 +a34b400d26 +18f1ac2e67 +4bf79e2811 +7de6f597a6 +7c212aa108 +9dd3b9cd5c +bfe8aa3b09 +3cd63fc1a8 +46cc394aba +17d242d235 +5b09bf443d +cd08b3ffae +fac4569273 +6835dc2ebf +acff901709 +955aec0c93 +c00ea6c82d +8ee7938a98 +b9d18ecceb +4d32ab4cac +61caef0535 +59ba4105c7 +028ce52827 +d7faa1d04b +1e837de27f +dbd78e0841 +2e7b7c56e5 +c18f3ce65c +1b93551234 +a739efda67 +539dd782c8 +28f297cb24 +134e5f40ba +64b7df73b1 +9df5187e93 +333ebb1236 +3c7e60faa4 +52433c2d4d +7756d5f7b1 +f180ba36a6 +9ff38e05c4 +ee74d614ad +b428eb40c6 +a51e528b99 +db1f269799 +bd618d7051 +f9600044c6 +fcc320dc0d +a62b02637a +1f348eac96 +58605611e9 +5bfe081a2b +88faf04a42 +6b88a36c06 +4b771216e4 +18c3e648ad +d4f656c2d2 +d94fd46324 +1f5629925e +ad9d67fada +79df1af7a3 +6d6552a9b5 +62c4e3409c +737afa1bf5 +7321011f8f +86bb9008fb +185447a319 +aec6461e28 +eb39563180 +151217dabb +97f011da49 +6a46617336 +68bd97857d +a55d6d008d +01addfbdd1 +e7999669a4 +fa0a6ab715 +233b4172a5 +b6fce096fc +f7e664f9c9 +2d9bbfed7c +c57d5a5dbd +58e2ae1c5e +eab16b53cd +aec6461e28 +eb39563180 +151217dabb +b70ae742d0 +b74a4186e9 +68bd97857d +a55d6d008d +52880a6232 +e7999669a4 +91650fc43d +233b4172a5 +b6fce096fc +f7e664f9c9 +2d9bbfed7c +b211c84fa4 +58e2ae1c5e +eab16b53cd diff --git a/tests/testbench/com/vaadin/tests/integration/fi.gif b/tests/testbench/com/vaadin/tests/integration/fi.gif Binary files differindex 8d3a191828..8d3a191828 100755..100644 --- a/tests/testbench/com/vaadin/tests/integration/fi.gif +++ b/tests/testbench/com/vaadin/tests/integration/fi.gif diff --git a/tests/testbench/com/vaadin/tests/integration/se.gif b/tests/testbench/com/vaadin/tests/integration/se.gif Binary files differindex 80f6285228..80f6285228 100755..100644 --- a/tests/testbench/com/vaadin/tests/integration/se.gif +++ b/tests/testbench/com/vaadin/tests/integration/se.gif |