summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorAnna Koskinen <Ansku@users.noreply.github.com>2020-03-24 11:52:43 +0200
committerGitHub <noreply@github.com>2020-03-24 11:52:43 +0200
commitee8d525974890972680c8725a1bdb1cf91764fb9 (patch)
tree62dab38605147aa63d40c13399ff28d045216caf /uitest
parente7abf49988534a231ffb5e2ed23eceb7f5f986b9 (diff)
downloadvaadin-framework-ee8d525974890972680c8725a1bdb1cf91764fb9.tar.gz
vaadin-framework-ee8d525974890972680c8725a1bdb1cf91764fb9.zip
Trigger re-measure after updating ElementResizeListeners. (#11912) (#11922)
Removing ElementResizeListeners from an element makes it unmeasurable and clears any saved measured values. Adding the listeners back makes the element measurable again but doesn't add it to measuring queue. Measuring needs to happen or any updates to expanded components within a layout (without changes that would trigger full re-measuring of the layout itself) lead to broken expand size calculations with any fixed size elements assumed to have no size. Fixes #10734
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatio.java37
-rw-r--r--uitest/src/test/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatioTest.java29
2 files changed, 66 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatio.java b/uitest/src/main/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatio.java
new file mode 100644
index 0000000000..3145f546f6
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatio.java
@@ -0,0 +1,37 @@
+package com.vaadin.tests.layouts;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.ProgressBar;
+
+public class UpdateComponentWithinExpandRatio extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ ProgressBar progress = new ProgressBar();
+ progress.setWidth(100, Unit.PERCENTAGE);
+ Button button = new Button("Progress", e -> {
+ float value = progress.getValue();
+ value = (value >= 1) ? 0 : value + 0.1f;
+ progress.setValue(value);
+ });
+
+ HorizontalLayout layout = new HorizontalLayout(progress, button);
+ layout.setExpandRatio(progress, 1);
+ layout.setWidth(100, Unit.PERCENTAGE);
+ getLayout().addComponent(layout);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Clicking the button to update the progress bar (expanded) "
+ + "shouldn't push the button (fixed width) to the right";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 10734;
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatioTest.java b/uitest/src/test/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatioTest.java
new file mode 100644
index 0000000000..5c28799ba7
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/layouts/UpdateComponentWithinExpandRatioTest.java
@@ -0,0 +1,29 @@
+package com.vaadin.tests.layouts;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.ProgressBarElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class UpdateComponentWithinExpandRatioTest extends MultiBrowserTest {
+
+ @Test
+ public void updateProgressShouldNotMoveButton() {
+ openTestURL();
+ ProgressBarElement pb = $(ProgressBarElement.class).first();
+ ButtonElement button = $(ButtonElement.class).first();
+
+ int initialX = button.getLocation().getX();
+ int initialWidth = pb.getSize().getWidth();
+
+ button.click();
+
+ assertEquals("Button's position changed unexpectedly", initialX,
+ button.getLocation().getX());
+ assertEquals("ProgressBar's width changed unexpectedly", initialWidth,
+ pb.getSize().getWidth());
+ }
+}