diff options
8 files changed, 154 insertions, 573 deletions
diff --git a/client/src/com/vaadin/client/ui/VCalendarPanel.java b/client/src/com/vaadin/client/ui/VCalendarPanel.java index b043cd0ab7..5fbd3ec15c 100644 --- a/client/src/com/vaadin/client/ui/VCalendarPanel.java +++ b/client/src/com/vaadin/client/ui/VCalendarPanel.java @@ -888,9 +888,8 @@ public class VCalendarPanel extends FocusableFlexTable implements if (!isDateInsideRange(requestedNextMonthDate, Resolution.DAY)) { requestedNextMonthDate = adjustDateToFitInsideRange(requestedNextMonthDate); } - focusedDate.setYear(requestedNextMonthDate.getYear()); - focusedDate.setMonth(requestedNextMonthDate.getMonth()); - focusedDate.setDate(requestedNextMonthDate.getDate()); + + focusedDate.setTime(requestedNextMonthDate.getTime()); displayedMonth.setMonth(displayedMonth.getMonth() + 1); renderCalendar(); @@ -945,9 +944,7 @@ public class VCalendarPanel extends FocusableFlexTable implements if (!isDateInsideRange(requestedPreviousMonthDate, Resolution.DAY)) { requestedPreviousMonthDate = adjustDateToFitInsideRange(requestedPreviousMonthDate); } - focusedDate.setYear(requestedPreviousMonthDate.getYear()); - focusedDate.setMonth(requestedPreviousMonthDate.getMonth()); - focusedDate.setDate(requestedPreviousMonthDate.getDate()); + focusedDate.setTime(requestedPreviousMonthDate.getTime()); displayedMonth.setMonth(displayedMonth.getMonth() - 1); renderCalendar(); diff --git a/client/src/com/vaadin/client/ui/VTextField.java b/client/src/com/vaadin/client/ui/VTextField.java index da9445c811..9360a6e172 100644 --- a/client/src/com/vaadin/client/ui/VTextField.java +++ b/client/src/com/vaadin/client/ui/VTextField.java @@ -80,6 +80,9 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, private boolean prompting = false; private int lastCursorPos = -1; + // used while checking if FF has set input prompt as value + private boolean possibleInputError = false; + public VTextField() { this(DOM.createInputText()); } @@ -88,9 +91,7 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, super(node); setStyleName(CLASSNAME); addChangeHandler(this); - if (BrowserInfo.get().isIE()) { - // IE does not send change events when pressing enter in a text - // input so we handle it using a key listener instead + if (BrowserInfo.get().isIE() || BrowserInfo.get().isFirefox()) { addKeyDownHandler(this); } addFocusHandler(this); @@ -260,6 +261,9 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, if (focusedTextField == this) { focusedTextField = null; } + if (BrowserInfo.get().isFirefox()) { + removeOnInputListener(getElement()); + } } @Override @@ -268,6 +272,11 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, if (listenTextChangeEvents) { detachCutEventListener(getElement()); } + if (BrowserInfo.get().isFirefox()) { + // Workaround for FF setting input prompt as the value if esc is + // pressed while the field is focused and empty (#8051). + addOnInputListener(getElement()); + } } /** For internal use only. May be removed or replaced in the future. */ @@ -433,8 +442,17 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, @Override public void onKeyDown(KeyDownEvent event) { - if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { + if (BrowserInfo.get().isIE() + && event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { + // IE does not send change events when pressing enter in a text + // input so we handle it using a key listener instead valueChange(false); + } else if (BrowserInfo.get().isFirefox() + && event.getNativeKeyCode() == KeyCodes.KEY_ESCAPE + && getText().equals("")) { + // check after onInput event if inputPrompt has appeared as the + // value of the field + possibleInputError = true; } } @@ -450,4 +468,24 @@ public class VTextField extends TextBoxBase implements Field, ChangeHandler, String wrap = getElement().getAttribute("wrap"); return !"off".equals(wrap); } + + private native void addOnInputListener(Element el) + /*-{ + var self = this; + el.oninput = $entry(function() { + self.@com.vaadin.client.ui.VTextField::checkForInputError()(); + }); + }-*/; + + private native void removeOnInputListener(Element el) + /*-{ + el.oninput = null; + }-*/; + + private void checkForInputError() { + if (possibleInputError && getText().equals(inputPrompt)) { + setText(""); + } + possibleInputError = false; + } } diff --git a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java index 166e4b7530..92cf83d038 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java @@ -300,9 +300,9 @@ public abstract class AbstractOrderedLayoutConnector extends // remove spacing as it is exists as separate elements that cannot be // removed easily after reordering the contents - Profiler.enter("AOLC.onConnectorHierarchyChange addOrMoveSlot temporarily remove spacing"); + Profiler.enter("AOLC.onConnectorHierarchyChange temporarily remove spacing"); layout.setSpacing(false); - Profiler.leave("AOLC.onConnectorHierarchyChange addOrMoveSlot temporarily remove spacing"); + Profiler.leave("AOLC.onConnectorHierarchyChange temporarily remove spacing"); for (ComponentConnector child : getChildComponents()) { Profiler.enter("AOLC.onConnectorHierarchyChange add children"); @@ -320,12 +320,12 @@ public abstract class AbstractOrderedLayoutConnector extends } // re-add spacing for the elements that should have it - Profiler.enter("AOLC.onConnectorHierarchyChange addOrMoveSlot setSpacing"); + Profiler.enter("AOLC.onConnectorHierarchyChange setSpacing"); // spacings were removed above if (getState().spacing) { layout.setSpacing(true); } - Profiler.leave("AOLC.onConnectorHierarchyChange addOrMoveSlot setSpacing"); + Profiler.leave("AOLC.onConnectorHierarchyChange setSpacing"); for (ComponentConnector child : previousChildren) { Profiler.enter("AOLC.onConnectorHierarchyChange remove children"); @@ -335,9 +335,7 @@ public abstract class AbstractOrderedLayoutConnector extends if (slot.hasCaption()) { slot.setCaptionResizeListener(null); } - if (slot.getSpacingElement() != null) { - slot.setSpacingResizeListener(null); - } + slot.setSpacingResizeListener(null); child.removeStateChangeHandler(childStateChangeHandler); layout.removeWidget(child.getWidget()); } diff --git a/client/src/com/vaadin/client/ui/orderedlayout/Slot.java b/client/src/com/vaadin/client/ui/orderedlayout/Slot.java index 6e1e8d28eb..688853f6ec 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/Slot.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/Slot.java @@ -127,7 +127,7 @@ public final class Slot extends SimplePanel { } /** - * Attached resize listeners to the widget, caption and spacing elements + * Attaches resize listeners to the widget, caption and spacing elements */ private void attachListeners() { if (getWidget() != null && layout.getLayoutManager() != null) { @@ -166,6 +166,8 @@ public final class Slot extends SimplePanel { lm.removeElementResizeListener(getWidget().getElement(), widgetResizeListener); } + // in many cases, the listener has already been removed by + // setSpacing(false) if (getSpacingElement() != null && spacingResizeListener != null) { lm.removeElementResizeListener(getSpacingElement(), spacingResizeListener); @@ -314,6 +316,12 @@ public final class Slot extends SimplePanel { */ getElement().getParentElement().insertBefore(spacer, getElement()); } else if (!spacing && spacer != null) { + // Remove listener before spacer to avoid memory leak + LayoutManager lm = layout.getLayoutManager(); + if (lm != null && spacingResizeListener != null) { + lm.removeElementResizeListener(spacer, spacingResizeListener); + } + spacer.removeFromParent(); spacer = null; } diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java new file mode 100644 index 0000000000..647c187568 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java @@ -0,0 +1,54 @@ +package com.vaadin.tests.components.orderedlayout; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Button; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; + +/** + * HorizontalLayout and VerticalLayout should not leak .v-spacing elements via + * listeners when removing components from a layout. + * + * @since 7.1.12 + * @author Vaadin Ltd + */ +public class SpacingLeak extends UI { + + private HorizontalLayout spacingLayout; + + @Override + public void init(VaadinRequest req) { + final VerticalLayout root = new VerticalLayout(); + setContent(root); + root.setSizeUndefined(); + + final Button spacingButton = new Button("Add layout with spacing"); + spacingButton.setId("addbutton"); + root.addComponent(spacingButton); + spacingButton.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(Button.ClickEvent event) { + spacingLayout = new HorizontalLayout(); + spacingLayout.setSpacing(true); + spacingLayout.setWidth("100%"); + + for (int i = 0; i < 100; ++i) { + spacingLayout.addComponent(new Button("" + i)); + } + + root.addComponent(spacingLayout); + } + }); + + final Button removeButton = new Button("Remove layouts"); + removeButton.setId("removebutton"); + root.addComponent(removeButton); + removeButton.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(Button.ClickEvent event) { + root.removeComponent(spacingLayout); + } + }); + } +} diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java new file mode 100644 index 0000000000..3a24cb7620 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.orderedlayout; + +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class SpacingLeakTest extends MultiBrowserTest { + + @Test + public void testSpacingLeak() throws Exception { + setDebug(true); + openTestURL(); + getDriver().findElement(By.id("addbutton")).click(); + getDriver().findElement(By.xpath("//button[@title = 'Clear log']")) + .click(); + getDriver().findElement(By.id("removebutton")).click(); + + // this should be present + getDriver() + .findElement( + By.xpath("//span[text() = 'Measured 0 non connector elements']")); + } +} diff --git a/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html b/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html deleted file mode 100644 index df1656dd23..0000000000 --- a/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html +++ /dev/null @@ -1,553 +0,0 @@ -<?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>TreeTableCacheOnPartialUpdates</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr><td rowspan="1" colspan="3">TreeTableCacheOnPartialUpdates</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>cacheTestButton-1 (children)-A</td> - <td>47,5</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</td> - <td>46,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-7 (children)-G</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>cacheTestButtonToggle-1 (children)-A</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>cacheTestButton-1 (children)-A</td> - <td>81,6</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1.1-A.A</td> - <td>73,8</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>86,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1.5-A.E</td> - <td>72,2</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</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>cacheTestButtonToggle-1 (children)-A</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>cacheTestButton-1 (children)-A</td> - <td>76,5</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-3 (children)-C</td> - <td>58,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</td> - <td>69,10</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</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>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</td> - <td>53,-2462</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-93-CO</td> - <td>91,-2452</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-87-CI</td> - <td>84,-2461</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</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>1000</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>cacheTestButtonToggle-40 (children)-AN</td> - <td>9,-995</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>20. Row Item TestBean [col1=40 (children), col2=AN] expanded. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>93,-991</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>21. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40.1-AN.A</td> - <td>123,-991</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>22. Button Item TestBean [col1=40.1, col2=AN.A]/col3 clicked. Row index: 40</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40.6-AN.F</td> - <td>114,-1000</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>23. Button Item TestBean [col1=40.6, col2=AN.F]/col3 clicked. Row index: 45</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>118,-993</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>cacheTestButtonToggle-40 (children)-AN</td> - <td>9,-998</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>25. Row Item TestBean [col1=40 (children), col2=AN] collapsed. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>42,-990</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>26. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-35-AI</td> - <td>84,-990</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>27. Button Item TestBean [col1=35, col2=AI]/col3 clicked. Row index: 34</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>cacheTestButton-48-AV</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-48-AV</td> - <td>98,-998</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>cacheTestButton-41-AO</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>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-86-CH</td> - <td>136,-2447</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-98-CT</td> - <td>131,-2462</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>134,-2459</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</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>cacheTestButtonToggle-99 (children)-CU</td> - <td>10,-2461</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>cacheTestButton-99 (children)-CU</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</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>cacheTestButton-86-CH</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>cacheTestButton-99.1-CU.A</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>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>85,-2792</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-98-CT</td> - <td>101,-2788</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99.1-CU.A</td> - <td>111,-2794</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99.13-CU.M</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>cacheTestButtonToggle-99 (children)-CU</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>waitForElementPresent</td> - <td>cacheTestButton-99 (children)-CU</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</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>cacheTestButton-100-CV</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>cacheTestButton-98-CT</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>cacheTestButton-87-CI</td> - <td>86,-2462</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>46. Button Item TestBean [col1=87, col2=CI]/col3 clicked. Row index: 86</td> -</tr> -</tbody></table> -</body> -</html> diff --git a/uitest/src/com/vaadin/tests/push/PushLargeData.java b/uitest/src/com/vaadin/tests/push/PushLargeData.java index 83f573ed2c..93925ffb9f 100644 --- a/uitest/src/com/vaadin/tests/push/PushLargeData.java +++ b/uitest/src/com/vaadin/tests/push/PushLargeData.java @@ -34,8 +34,8 @@ import com.vaadin.ui.UI; public abstract class PushLargeData extends AbstractTestUIWithLog { - // 1MB - static final int DEFAULT_SIZE_BYTES = 1000 * 1000; + // 250KB + static final int DEFAULT_SIZE_BYTES = 250 * 1000; // Every other second static final int DEFAULT_DELAY_MS = 2000; |