summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2015-01-21 20:59:32 +0200
committerArtur Signell <artur@vaadin.com>2015-01-21 20:59:32 +0200
commitc410fa7e85e0769369cee2cebd2cea538919af2b (patch)
treec7535bd48ae9c2b221a867e47f91515e1bbc2ffa /uitest
parent74976a7ffcdd4ea3c19e799d16bf5430c6975420 (diff)
parentf818f7cb44fc77db7252e97c78608ae6c67d6ab6 (diff)
downloadvaadin-framework-c410fa7e85e0769369cee2cebd2cea538919af2b.tar.gz
vaadin-framework-c410fa7e85e0769369cee2cebd2cea538919af2b.zip
Merge remote-tracking branch 'origin/master' into grid
Conflicts: client/src/com/vaadin/client/ui/VScrollTable.java Change-Id: I79e003b2087e8e0e5c8aa6d25bdeb890ce9a60c5
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResource.java69
-rw-r--r--uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java109
-rw-r--r--uitest/src/com/vaadin/tests/components/notification/NotificationDelayTest.java27
-rw-r--r--uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZooming.java51
-rw-r--r--uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java195
-rw-r--r--uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPrompt.java72
-rw-r--r--uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPromptTest.java104
-rw-r--r--uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapper.java82
-rw-r--r--uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapperTest.java55
-rw-r--r--uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrder.java49
-rw-r--r--uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java70
-rw-r--r--uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java53
-rw-r--r--uitest/src/com/vaadin/tests/themes/valo/AlignTopIconInButtonTest.java10
-rw-r--r--uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java72
-rw-r--r--uitest/tb2/com/vaadin/tests/components/calendar/CalendarWeeklyViewNewEvents.html8
-rw-r--r--uitest/tb2/com/vaadin/tests/components/uitest/base_theme_test.html10
-rw-r--r--uitest/tb2/com/vaadin/tests/components/uitest/chameleon_theme_test.html10
-rw-r--r--uitest/tb2/com/vaadin/tests/components/uitest/liferay_theme_test.html10
-rw-r--r--uitest/tb2/com/vaadin/tests/components/uitest/reindeer_theme_test.html10
-rw-r--r--uitest/tb2/com/vaadin/tests/components/uitest/runo_theme_test.html10
-rw-r--r--uitest/tb2/com/vaadin/tests/components/window/CloseSubWindow.html2
-rw-r--r--uitest/tb2/com/vaadin/tests/components/window/SubWindowOrder.html6
-rw-r--r--uitest/tb2/com/vaadin/tests/components/window/WindowMaximizeRestoreTest.html56
-rw-r--r--uitest/tb2/com/vaadin/tests/components/window/WindowWithInvalidCloseListener.html2
24 files changed, 1038 insertions, 104 deletions
diff --git a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResource.java b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResource.java
new file mode 100644
index 0000000000..ecc746b858
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResource.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2000-2014 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.embedded;
+
+import com.vaadin.server.ThemeResource;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Embedded;
+import com.vaadin.ui.Image;
+import com.vaadin.ui.themes.Reindeer;
+
+/**
+ * Tests that {@link Embedded} uses correct theme when the theme is set with
+ * {@link #setTheme(String)}, and also updates correctly if theme is changed
+ * later. {@link Image} is used as the baseline for correct behaviour.
+ *
+ * @author Vaadin Ltd
+ */
+public class EmbeddedThemeResource extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ setTheme("tests-components");
+
+ addButton("Toggle theme", new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ if (Reindeer.THEME_NAME.equals(getTheme())) {
+ setTheme("tests-components");
+ } else {
+ setTheme(Reindeer.THEME_NAME);
+ }
+ }
+ });
+
+ // let's show a simple themeresource
+ ThemeResource logoResource = new ThemeResource("images/logo.png");
+ Embedded embedded = new Embedded("embedded:", logoResource);
+ Image image = new Image("image:", logoResource);
+
+ addComponents(embedded, image);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Tests that Embedded updates correctly when using setTheme(String)";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 15194;
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
new file mode 100644
index 0000000000..f3dca71cad
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2000-2014 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.embedded;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.support.ui.ExpectedCondition;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.EmbeddedElement;
+import com.vaadin.testbench.elements.ImageElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+import com.vaadin.ui.Embedded;
+
+/**
+ * Tests that {@link Embedded} uses correct theme when the theme is set with
+ * {@link #setTheme(String)}, and also updates correctly if theme is changed
+ * later. {@link Image} is used as the baseline for correct behaviour.
+ *
+ * @author Vaadin Ltd
+ */
+public class EmbeddedThemeResourceTest extends SingleBrowserTest {
+
+ @Override
+ public List<DesiredCapabilities> getBrowsersToTest() {
+ // Seems like stylesheet onload is not fired on PhantomJS
+ // https://github.com/ariya/phantomjs/issues/12332
+ return Arrays.asList(MultiBrowserTest.Browser.FIREFOX
+ .getDesiredCapabilities());
+ }
+
+ @Before
+ @Override
+ public void setup() throws Exception {
+ super.setup();
+ openTestURL();
+ waitForElementPresent(By.className("v-embedded"));
+ }
+
+ @Test
+ public void testInitialTheme() {
+ EmbeddedElement embedded = $(EmbeddedElement.class).first();
+ ImageElement image = $(ImageElement.class).first();
+ final String initial = image.getAttribute("src");
+
+ assertFalse(
+ "ThemeResource image source uses default theme instead of set theme.",
+ initial.contains("/reindeer/"));
+ assertThat(
+ "Embedded and Image aren't using the same source for the image despite sharing the ThemeResource.",
+ embedded.findElement(By.tagName("img")).getAttribute("src"),
+ is(initial));
+ }
+
+ @Test
+ public void testUpdatedTheme() {
+ EmbeddedElement embedded = $(EmbeddedElement.class).first();
+ final ImageElement image = $(ImageElement.class).first();
+ final String initial = image.getAttribute("src");
+
+ // update theme
+ $(ButtonElement.class).first().click();
+
+ waitUntil(new ExpectedCondition<Boolean>() {
+ @Override
+ public Boolean apply(WebDriver input) {
+ return !initial.equals(image.getAttribute("src"));
+ }
+
+ @Override
+ public String toString() {
+ // Timed out after 10 seconds waiting for ...
+ return "image source to be updated (was: " + initial + ")";
+ }
+ });
+
+ assertTrue("ThemeResource image source didn't update correctly.", image
+ .getAttribute("src").contains("/reindeer/"));
+ assertThat(
+ "Embedded and Image aren't using the same source for the image despite sharing the ThemeResource.",
+ embedded.findElement(By.tagName("img")).getAttribute("src"),
+ is(image.getAttribute("src")));
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/notification/NotificationDelayTest.java b/uitest/src/com/vaadin/tests/components/notification/NotificationDelayTest.java
index 219d44710c..903c3440cc 100644
--- a/uitest/src/com/vaadin/tests/components/notification/NotificationDelayTest.java
+++ b/uitest/src/com/vaadin/tests/components/notification/NotificationDelayTest.java
@@ -15,12 +15,13 @@
*/
package com.vaadin.tests.components.notification;
+import com.vaadin.tests.tb3.MultiBrowserTest;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
import org.openqa.selenium.interactions.Actions;
-
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import org.openqa.selenium.support.ui.ExpectedCondition;
/**
* Test to check notification delay.
@@ -34,20 +35,16 @@ public class NotificationDelayTest extends MultiBrowserTest {
openTestURL();
Assert.assertTrue("No notification found", hasNotification());
- Actions actions = new Actions(getDriver());
- actions.moveByOffset(10, 10).build().perform();
- long start = System.currentTimeMillis();
- boolean hidden = false;
- while (System.currentTimeMillis() <= start + 5000) {
- Thread.sleep(500);
- hidden = !hasNotification();
- if (hidden) {
- break;
- }
- }
- Assert.assertTrue("Notification is still visible after 5 seconds",
- hidden);
+ waitUntil(new ExpectedCondition<Boolean>() {
+
+ @Override
+ public Boolean apply(WebDriver input) {
+ new Actions(getDriver()).moveByOffset(10, 10).perform();
+
+ return !hasNotification();
+ }
+ });
}
private boolean hasNotification() {
diff --git a/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZooming.java b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZooming.java
new file mode 100644
index 0000000000..8d95261825
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZooming.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2014 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.table;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Table;
+
+public class UnnecessaryScrollbarWhenZooming extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Table table = new Table("A Table");
+ table.setId("test-table");
+ table.addContainerProperty("Text property 1", String.class, null);
+ table.addContainerProperty("Text property 2", String.class, null);
+ table.addContainerProperty("Text property 3", String.class, null);
+ table.addContainerProperty("Numeric property", Integer.class, null);
+ table.addItem(new Object[] { "Value 1 ", "Value 2", "Value 3",
+ new Integer(39) }, new Integer(1));
+ table.addItem(new Object[] { "Value 1 ", "Value 2", "Value 3",
+ new Integer(39) }, new Integer(2));
+ table.setWidth("100%");
+ table.setPageLength(0);
+ addComponent(table);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Test case for extra scrollbar being displayed in Table when browser window is zoomed (or page length is 0)";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 15164;
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
new file mode 100644
index 0000000000..df01800180
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright 2000-2014 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.table;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Arrays;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.commands.TestBenchCommandExecutor;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class UnnecessaryScrollbarWhenZoomingTest extends MultiBrowserTest {
+
+ private ZoomLevelSetter zoomSetter;
+ private int zoomOutIterations = 3;
+ private int zoomInIterations = 3;
+
+ @Before
+ public void init() {
+ testBench().resizeViewPortTo(995, 400);
+ DesiredCapabilities capabilities = getDesiredCapabilities();
+ if (BrowserUtil.isChrome(capabilities)
+ || BrowserUtil.isPhantomJS(capabilities)) {
+ zoomSetter = new ChromeZoomLevelSetter(driver);
+ } else {
+ zoomSetter = new NonChromeZoomLevelSetter(driver);
+ }
+ zoomSetter.resetZoom();
+ openTestURL();
+ // IE sometimes has trouble waiting long enough.
+ new WebDriverWait(getDriver(), 30).until(ExpectedConditions
+ .presenceOfElementLocated(By
+ .cssSelector(".v-table-body-wrapper")));
+ }
+
+ @Test
+ public void testInitial() {
+ testExtraScrollbarsNotShown();
+ }
+
+ @Test
+ public void testZoomingIn() {
+ for (int i = 0; i < zoomInIterations; i++) {
+ zoomSetter.increaseZoom();
+ testExtraScrollbarsNotShown();
+ }
+ }
+
+ @Test
+ public void testZoomingOut() throws InterruptedException {
+ for (int i = 0; i < zoomOutIterations; i++) {
+ zoomSetter.decreaseZoom();
+ testExtraScrollbarsNotShown();
+ }
+ }
+
+ @After
+ public void resetZoomLevel() {
+ zoomSetter.resetZoom();
+ }
+
+ private void testExtraScrollbarsNotShown() {
+ // wait a bit for the layout
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ Assert.fail();
+ }
+ WebElement element = findElement(By
+ .cssSelector(".v-table-body-wrapper"));
+ assertNotNull("There must be a table", element);
+ String overflow = element.getCssValue("overflow");
+ // As long as the overflow is hidden, there will not be scroll bars.
+ if (!"hidden".equals(overflow)) {
+ // compare scroll width to offset width. True if scrolling.
+ String detectHorizontalScroll = "return arguments[0].scrollWidth > arguments[0].clientWidth";
+ Boolean horizontal = (Boolean) ((TestBenchCommandExecutor) getDriver())
+ .executeScript(detectHorizontalScroll, element);
+ assertEquals("there must be no horizontal scrollbar", false,
+ horizontal);
+
+ String detectVerticalScroll = "return arguments[0].scrollHeight > arguments[0].clientHeight";
+ Boolean vertical = (Boolean) ((TestBenchCommandExecutor) getDriver())
+ .executeScript(detectVerticalScroll, element);
+ assertEquals("there must be no vertical scrollbar", false, vertical);
+ }
+ }
+
+ interface ZoomLevelSetter {
+ public void increaseZoom();
+
+ public void decreaseZoom();
+
+ public void resetZoom();
+ }
+
+ /*
+ * A class for setting the zoom levels by sending keys such as ctrl and +.
+ */
+ class NonChromeZoomLevelSetter implements ZoomLevelSetter {
+ private WebDriver driver;
+
+ public NonChromeZoomLevelSetter(WebDriver driver) {
+ this.driver = driver;
+ }
+
+ @Override
+ public void increaseZoom() {
+ getElement().sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
+ }
+
+ @Override
+ public void decreaseZoom() {
+ getElement().sendKeys(Keys.chord(Keys.CONTROL, Keys.SUBTRACT));
+ }
+
+ @Override
+ public void resetZoom() {
+ getElement().sendKeys(Keys.chord(Keys.CONTROL, "0"));
+ }
+
+ private WebElement getElement() {
+ return driver.findElement(By.tagName("html"));
+ }
+ }
+
+ /*
+ * A class for setting the zoom levels using JavaScript. This setter is used
+ * for browsers for which the method of sending the keys ctrl and + does not
+ * work.
+ */
+ class ChromeZoomLevelSetter implements ZoomLevelSetter {
+ private JavascriptExecutor js;
+ private int currentZoomIndex = 2;
+ private int[] zoomLevels = { 70, 80, 90, 100, 110, 120, 130 };
+
+ public ChromeZoomLevelSetter(WebDriver driver) {
+ js = (JavascriptExecutor) driver;
+ }
+
+ @Override
+ public void increaseZoom() {
+ currentZoomIndex++;
+ if (currentZoomIndex >= zoomLevels.length) {
+ currentZoomIndex = zoomLevels.length - 1;
+ }
+ js.executeScript("document.body.style.zoom='"
+ + zoomLevels[currentZoomIndex] + "%'");
+ }
+
+ @Override
+ public void decreaseZoom() {
+ currentZoomIndex--;
+ if (currentZoomIndex < 0) {
+ currentZoomIndex = 0;
+ }
+ js.executeScript("document.body.style.zoom='"
+ + zoomLevels[currentZoomIndex] + "%'");
+ }
+
+ @Override
+ public void resetZoom() {
+ js.executeScript("document.body.style.zoom='100%'");
+ currentZoomIndex = Arrays.binarySearch(zoomLevels, 100);
+ }
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPrompt.java b/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPrompt.java
new file mode 100644
index 0000000000..9fe18f131b
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPrompt.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2000-2014 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.textfield;
+
+import com.vaadin.event.FieldEvents;
+import com.vaadin.event.FieldEvents.TextChangeEvent;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+
+@SuppressWarnings("serial")
+public class TextFieldEmptyingPrompt extends AbstractTestUI {
+
+ final TextField textField = new TextField();
+ final Label label = new Label();
+ final static String RANDOM_PROMPT = "Some prompt here";
+
+ @Override
+ public String getTestDescription() {
+ return "Type something, then erase it, then click on the button.<br>"
+ + "Input prompt should dissapear.<br>";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 15144;
+ }
+
+ @Override
+ protected void setup(VaadinRequest request) {
+
+ addComponent(label);
+
+ textField.setInputPrompt(RANDOM_PROMPT);
+ textField.addTextChangeListener(new FieldEvents.TextChangeListener() {
+
+ @Override
+ public void textChange(TextChangeEvent event) {
+ label.setValue("Textfield value: " + event.getText());
+ }
+ });
+ addComponent(textField);
+
+ Button button = new Button("Click To Remove Prompt");
+ button.addClickListener(new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+
+ textField.setInputPrompt("");
+ }
+ });
+ addComponent(button);
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPromptTest.java b/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPromptTest.java
new file mode 100644
index 0000000000..f4fa5d0dc5
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/textfield/TextFieldEmptyingPromptTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2000-2014 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.textfield;
+
+import org.junit.Test;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.ExpectedCondition;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.LabelElement;
+import com.vaadin.testbench.elements.TextFieldElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class TextFieldEmptyingPromptTest extends MultiBrowserTest {
+
+ private String RANDOM_INPUT = "Some input here";
+
+ private TextFieldElement textfield;
+ private LabelElement label;
+ private ButtonElement button;
+
+ @Test
+ public void testInputPrompt() throws InterruptedException {
+ openTestURL();
+
+ textfield = $(TextFieldElement.class).first();
+ label = $(LabelElement.class).get(1);
+ button = $(ButtonElement.class).first();
+
+ // Write on the TextField
+ writeOnTextField();
+
+ // Make sure a complete server communication cycle happened
+ waitServerUpdate("Textfield value: " + RANDOM_INPUT);
+
+ // Empty the TextField
+ emptyTextField();
+
+ // Click attempts to remove the prompt
+ button.click();
+
+ // Assert Prompt text disappeared
+ waitServerUpdateText("");
+ }
+
+ private void waitServerUpdate(final String expectedValue) {
+ waitUntil(new ExpectedCondition<Boolean>() {
+
+ @Override
+ public Boolean apply(WebDriver input) {
+ return label.getText().equals(expectedValue);
+ }
+
+ @Override
+ public String toString() {
+ // Timed out after 10 seconds waiting for ...
+ return "the server to get updated with the entered value: '"
+ + expectedValue + "' (was: '" + label.getText() + "')";
+ }
+ });
+ }
+
+ private void waitServerUpdateText(final String expectedValue) {
+ waitUntil(new ExpectedCondition<Boolean>() {
+
+ @Override
+ public Boolean apply(WebDriver input) {
+ return textfield.getValue().equals(expectedValue);
+ }
+
+ @Override
+ public String toString() {
+ // Timed out after 10 seconds waiting for ...
+ return "the server to get updated with the entered value: '"
+ + expectedValue + "' (was: '" + textfield.getValue()
+ + "')";
+ }
+ });
+ }
+
+ private void writeOnTextField() {
+ textfield.sendKeys(RANDOM_INPUT);
+ }
+
+ private void emptyTextField() {
+ for (int i = 0; i < RANDOM_INPUT.length(); i++) {
+ textfield.sendKeys(Keys.BACK_SPACE);
+ }
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapper.java b/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapper.java
new file mode 100644
index 0000000000..95f8c54e9e
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapper.java
@@ -0,0 +1,82 @@
+package com.vaadin.tests.components.treetable;
+
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.data.util.ContainerHierarchicalWrapper;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Tree.ExpandEvent;
+import com.vaadin.ui.Tree.ExpandListener;
+import com.vaadin.ui.TreeTable;
+
+@SuppressWarnings("serial")
+public class TreeTableContainerHierarchicalWrapper extends AbstractTestUI {
+
+ TreeTable treetable = new TreeTable();
+ BeanItemContainer<Bean> beanContainer = new BeanItemContainer<Bean>(
+ Bean.class);
+ ContainerHierarchicalWrapper hierarchicalWrapper = new ContainerHierarchicalWrapper(
+ beanContainer);
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ treetable = new TreeTable();
+ treetable.setImmediate(true);
+ treetable.setWidth("100%");
+ treetable.setHeight(null);
+ treetable.setPageLength(0);
+ treetable.setContainerDataSource(hierarchicalWrapper);
+
+ treetable.addExpandListener(new ExpandListener() {
+ @Override
+ public void nodeExpand(ExpandEvent event) {
+ Bean parent = ((Bean) event.getItemId());
+ if (!hierarchicalWrapper.hasChildren(parent)) {
+ for (int i = 1; i <= 5; i++) {
+ Bean newChild = new Bean(parent.getId() + "-" + i);
+ beanContainer.addBean(newChild);
+ hierarchicalWrapper.setParent(newChild, parent);
+ }
+ }
+
+ }
+ });
+
+ for (int i = 0; i < 3; i++) {
+ beanContainer.addBean(new Bean("Item " + i));
+ }
+
+ addComponent(treetable);
+ }
+
+ public class Bean {
+ public static final String PROP_ID = "id";
+ private String id;
+
+ public Bean() {
+ // empty
+ }
+
+ public Bean(String id) {
+ this.id = id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getId() {
+ return id;
+ }
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Tests that TreeTable with ContainerHierarchicalWrapper is updated correctly when the setParent() is called for the item just added";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 15421;
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapperTest.java b/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapperTest.java
new file mode 100644
index 0000000000..f767e5fd52
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/treetable/TreeTableContainerHierarchicalWrapperTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2000-2014 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.treetable;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.TestBenchElement;
+import com.vaadin.testbench.elements.TreeTableElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+/**
+ * Tests that TreeTable with ContainerHierarchicalWrapper is updated correctly
+ * when the setParent() is called for the item just added
+ *
+ * @author Vaadin Ltd
+ */
+public class TreeTableContainerHierarchicalWrapperTest extends MultiBrowserTest {
+
+ @Test
+ public void testStructure() throws InterruptedException {
+ openTestURL();
+
+ TreeTableElement treeTable = $(TreeTableElement.class).first();
+ WebElement findElement = treeTable.getCell(0, 0).findElement(
+ By.className("v-treetable-treespacer"));
+ findElement.click();
+
+ TestBenchElement cell = treeTable.getCell(5, 0);
+ WebElement findElement2 = cell.findElement(By
+ .className("v-treetable-treespacer"));
+ assertEquals("Item 0-5", cell.getText());
+ findElement2.click();
+
+ TestBenchElement cell2 = treeTable.getCell(10, 0);
+ assertEquals("Item 0-5-5", cell2.getText());
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrder.java b/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrder.java
new file mode 100644
index 0000000000..8fe6c0ce5a
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrder.java
@@ -0,0 +1,49 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.window.WindowMode;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+public class MaximizedWindowOrder extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ addButton("Open Maximized Window", new ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ openWindow(true);
+ }
+ });
+ }
+
+ private void openWindow(boolean maximized) {
+ Window window = new Window();
+ VerticalLayout layout = new VerticalLayout();
+
+ Label label = new Label(maximized ? "Maximized" : "Normal");
+
+ layout.addComponent(label);
+ Button button = new Button("Open Normal Window");
+ button.addClickListener(new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ openWindow(false);
+ }
+
+ });
+
+ layout.addComponent(button);
+
+ window.setContent(layout);
+ window.setWindowMode(maximized ? WindowMode.MAXIMIZED : WindowMode.NORMAL);
+
+ addWindow(window);
+ }
+} \ No newline at end of file
diff --git a/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java b/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java
new file mode 100644
index 0000000000..5063c84658
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java
@@ -0,0 +1,70 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.tests.tb3.AbstractTB3Test;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.tests.tb3.newelements.WindowElement;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.junit.Assert.assertThat;
+
+public class MaximizedWindowOrderTest extends MultiBrowserTest {
+
+ private WindowElement openAnotherWindow() {
+ WindowElement maximizedWindow = getMaximizedWindow();
+ maximizedWindow.$(ButtonElement.class).first().click();
+
+ return getAnotherWindow();
+ }
+
+ private WindowElement getMaximizedWindow() {
+ return $(WindowElement.class).first();
+ }
+
+ private WindowElement getAnotherWindow() {
+ return $(WindowElement.class).get(1);
+ }
+
+ private WindowElement openMaximizedWindow() {
+ $(ButtonElement.class).first().click();
+
+ return getMaximizedWindow();
+ }
+
+ @Override
+ public void setup() throws Exception {
+ super.setup();
+ openTestURL();
+ }
+
+ @Test
+ public void newWindowOpensOnTopOfMaximizedWindow() {
+ WindowElement maximizedWindow = openMaximizedWindow();
+ WindowElement anotherWindow = openAnotherWindow();
+
+ assertThat(anotherWindow.getCssValue("z-index"),
+ is(greaterThan(maximizedWindow.getCssValue("z-index"))));
+
+ assertThat(getMaximizedWindow().getCssValue("z-index"), is("10000"));
+ assertThat(getAnotherWindow().getCssValue("z-index"), is("10001"));
+ }
+
+ @Test
+ public void backgroundWindowIsBroughtOnTopWhenMaximized() {
+ WindowElement maximizedWindow = openMaximizedWindow();
+
+ maximizedWindow.restore();
+
+ // the new window is opened on top of the original.
+ WindowElement anotherWindow = openAnotherWindow();
+
+ // move the window to make the maximize button visible.
+ anotherWindow.move(10, 20);
+ maximizedWindow.maximize();
+
+ assertThat(maximizedWindow.getCssValue("z-index"),
+ is(greaterThan(anotherWindow.getCssValue("z-index"))));
+ }
+} \ No newline at end of file
diff --git a/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java b/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java
new file mode 100644
index 0000000000..dd7cb55d01
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java
@@ -0,0 +1,53 @@
+package com.vaadin.tests.tb3.newelements;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.ServerClass;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+
+/*
+ Suggestions for new elemental api for Window
+ */
+@ServerClass("com.vaadin.ui.Window")
+public class WindowElement extends com.vaadin.testbench.elements.WindowElement {
+
+ private final String restoreBoxClass = "v-window-restorebox";
+ private final String maximizeBoxClass = "v-window-maximizebox";
+
+ public void restore() {
+ if(isMaximized()) {
+ getRestoreButton().click();
+ } else {
+ throw new AssertionError("Window is not maximized, cannot be restored.");
+ }
+ }
+
+ private boolean isMaximized() {
+ return isElementPresent(By.className(restoreBoxClass));
+ }
+
+ private WebElement getRestoreButton() {
+ return this.findElement(By.className("v-window-restorebox"));
+ }
+
+ public void maximize() {
+ if(!isMaximized()) {
+ getMaximizeButton().click();
+ } else {
+ throw new AssertionError("Window is already maximized, cannot maximize.");
+ }
+ }
+
+ private WebElement getMaximizeButton() {
+ return this.findElement(By.className(maximizeBoxClass));
+ }
+
+ public void move(int xOffset, int yOffset) {
+ Actions action = new Actions(getDriver());
+ action.moveToElement(this.findElement(org.openqa.selenium.By.className("v-window-wrap")), 5, 5);
+ action.clickAndHold();
+ action.moveByOffset(xOffset, yOffset);
+ action.release();
+ action.build().perform();
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/themes/valo/AlignTopIconInButtonTest.java b/uitest/src/com/vaadin/tests/themes/valo/AlignTopIconInButtonTest.java
index 287e25d402..02ef886721 100644
--- a/uitest/src/com/vaadin/tests/themes/valo/AlignTopIconInButtonTest.java
+++ b/uitest/src/com/vaadin/tests/themes/valo/AlignTopIconInButtonTest.java
@@ -15,7 +15,10 @@
*/
package com.vaadin.tests.themes.valo;
-import org.junit.Assert;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
@@ -30,7 +33,7 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
public class AlignTopIconInButtonTest extends MultiBrowserTest {
@Test
- public void testIconPositioninButton() {
+ public void iconIsCenteredInsideButton() {
openTestURL();
WebElement wrapper = findElement(By.className("v-button-wrap"));
@@ -41,7 +44,6 @@ public class AlignTopIconInButtonTest extends MultiBrowserTest {
+ wrapper.getSize().getWidth() - icon.getLocation().getX()
- icon.getSize().getWidth();
- Assert.assertTrue("Icon element is not centered inside button.",
- Math.abs(rightSpace - leftSpace) <= 1);
+ assertThat(Math.abs(rightSpace - leftSpace), is(lessThanOrEqualTo(2)));
}
}
diff --git a/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java b/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
index 044f76e335..87827b1358 100644
--- a/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
+++ b/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
@@ -15,9 +15,10 @@
*/
package com.vaadin.tests.themes.valo;
-import static org.hamcrest.Matchers.equalToIgnoringCase;
+import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import java.io.IOException;
import java.util.List;
import org.junit.Test;
@@ -40,34 +41,59 @@ public class ImmediateUploadTest extends MultiBrowserTest {
return getAllBrowsers();
}
- @Test
- public void fileInputShouldNotBeVisibleInImmediate()
- throws InterruptedException {
+ @Override
+ public void setup() throws Exception {
+ super.setup();
openTestURL();
+ }
+
+ private WebElement getUploadButton(String id) {
+ UploadElement normalUpload = $(UploadElement.class).id(id);
+
+ return normalUpload.findElement(By.tagName("div"));
+ }
+
+ private WebElement getUploadFileInput(String id) {
+ UploadElement normalUpload = $(UploadElement.class).id(id);
+
+ return normalUpload.findElement(By.cssSelector("input[type='file']"));
+ }
+
+ @Test
+ public void normalUploadButtonIsVisible() {
+ WebElement button = getUploadButton("upload");
- UploadElement normalUpload = $(UploadElement.class).id("upload");
- UploadElement immediateUpload = $(UploadElement.class).id(
- "immediateupload");
+ assertThat(button.getCssValue("display"), is("block"));
+ }
+
+ @Test
+ public void fileInputIsVisibleForNormalUpload() {
+ WebElement input = getUploadFileInput("upload");
- WebElement normalUploadInput = normalUpload.findElement(By
- .cssSelector("input[type='file']"));
- WebElement immediateUploadInput = immediateUpload.findElement(By
- .cssSelector("input[type='file']"));
+ assertThat(input.getCssValue("position"), is("static"));
+ }
- WebElement normalUploadButton = normalUpload.findElement(By
- .tagName("div"));
- WebElement immediateUploadButton = immediateUpload.findElement(By
- .tagName("div"));
+ @Test
+ public void immediateUploadButtonIsVisible() {
+ WebElement button = getUploadButton("immediateupload");
- assertThat(normalUploadButton.getCssValue("display"),
- equalToIgnoringCase("block"));
- assertThat(immediateUploadButton.getCssValue("display"),
- equalToIgnoringCase("block"));
+ assertThat(button.getCssValue("display"), is("block"));
+ }
- assertThat(normalUploadInput.getCssValue("position"),
- equalToIgnoringCase("static"));
- assertThat(immediateUploadInput.getCssValue("position"),
- equalToIgnoringCase("absolute"));
+ @Test
+ public void fileInputIsNotVisibleForImmediateUpload() {
+ WebElement input = getUploadFileInput("immediateupload");
+
+ assertThat(input.getCssValue("position"), is("absolute"));
+ }
+
+ @Test
+ public void fileInputIsNotClickableForImmediateUpload() throws IOException {
+ WebElement input = getUploadFileInput("immediateupload");
+ // input.click() and then verifying if the upload window is opened
+ // would be better but couldn't figure a way to do that. screenshots
+ // don't show the upload window, not at least in firefox.
+ assertThat(input.getCssValue("z-index"), is("-1"));
}
}
diff --git a/uitest/tb2/com/vaadin/tests/components/calendar/CalendarWeeklyViewNewEvents.html b/uitest/tb2/com/vaadin/tests/components/calendar/CalendarWeeklyViewNewEvents.html
index 6add1deba5..f2702420f1 100644
--- a/uitest/tb2/com/vaadin/tests/components/calendar/CalendarWeeklyViewNewEvents.html
+++ b/uitest/tb2/com/vaadin/tests/components/calendar/CalendarWeeklyViewNewEvents.html
@@ -313,7 +313,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,9</td>
</tr>
<!--Edit previously created events and change properties-->
@@ -438,7 +438,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,8</td>
</tr>
<tr>
@@ -558,7 +558,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>7,8</td>
</tr>
<tr>
@@ -583,7 +583,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentscalendarCalendarTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>12,10</td>
</tr>
<!--Go to monthly view and assert inserted events-->
diff --git a/uitest/tb2/com/vaadin/tests/components/uitest/base_theme_test.html b/uitest/tb2/com/vaadin/tests/components/uitest/base_theme_test.html
index cdbcf8bacc..a87cba69ab 100644
--- a/uitest/tb2/com/vaadin/tests/components/uitest/base_theme_test.html
+++ b/uitest/tb2/com/vaadin/tests/components/uitest/base_theme_test.html
@@ -289,7 +289,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,8</td>
</tr>
<tr>
@@ -304,7 +304,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,6</td>
</tr>
<tr>
@@ -319,7 +319,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,5</td>
</tr>
<tr>
@@ -334,7 +334,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,6</td>
</tr>
<tr>
@@ -349,7 +349,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,7</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/uitest/chameleon_theme_test.html b/uitest/tb2/com/vaadin/tests/components/uitest/chameleon_theme_test.html
index d5d70a62d2..3c3c229e97 100644
--- a/uitest/tb2/com/vaadin/tests/components/uitest/chameleon_theme_test.html
+++ b/uitest/tb2/com/vaadin/tests/components/uitest/chameleon_theme_test.html
@@ -289,7 +289,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,8</td>
</tr>
<tr>
@@ -304,7 +304,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,6</td>
</tr>
<tr>
@@ -319,7 +319,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,5</td>
</tr>
<tr>
@@ -334,7 +334,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,6</td>
</tr>
<tr>
@@ -349,7 +349,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,7</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/uitest/liferay_theme_test.html b/uitest/tb2/com/vaadin/tests/components/uitest/liferay_theme_test.html
index 783784e993..3ed5836c86 100644
--- a/uitest/tb2/com/vaadin/tests/components/uitest/liferay_theme_test.html
+++ b/uitest/tb2/com/vaadin/tests/components/uitest/liferay_theme_test.html
@@ -289,7 +289,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,8</td>
</tr>
<tr>
@@ -304,7 +304,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,6</td>
</tr>
<tr>
@@ -319,7 +319,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,5</td>
</tr>
<tr>
@@ -334,7 +334,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,6</td>
</tr>
<tr>
@@ -349,7 +349,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,7</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/uitest/reindeer_theme_test.html b/uitest/tb2/com/vaadin/tests/components/uitest/reindeer_theme_test.html
index 175def94d3..6d19f5c7a1 100644
--- a/uitest/tb2/com/vaadin/tests/components/uitest/reindeer_theme_test.html
+++ b/uitest/tb2/com/vaadin/tests/components/uitest/reindeer_theme_test.html
@@ -289,7 +289,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,8</td>
</tr>
<tr>
@@ -304,7 +304,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,6</td>
</tr>
<tr>
@@ -319,7 +319,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,5</td>
</tr>
<tr>
@@ -334,7 +334,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,6</td>
</tr>
<tr>
@@ -349,7 +349,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,7</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/uitest/runo_theme_test.html b/uitest/tb2/com/vaadin/tests/components/uitest/runo_theme_test.html
index 0db6614a9c..183854102d 100644
--- a/uitest/tb2/com/vaadin/tests/components/uitest/runo_theme_test.html
+++ b/uitest/tb2/com/vaadin/tests/components/uitest/runo_theme_test.html
@@ -289,7 +289,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,8</td>
</tr>
<tr>
@@ -304,7 +304,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,6</td>
</tr>
<tr>
@@ -319,7 +319,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>8,5</td>
</tr>
<tr>
@@ -334,7 +334,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>9,6</td>
</tr>
<tr>
@@ -349,7 +349,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runThemeTestUI::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,7</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/window/CloseSubWindow.html b/uitest/tb2/com/vaadin/tests/components/window/CloseSubWindow.html
index ae77628bff..de5a793909 100644
--- a/uitest/tb2/com/vaadin/tests/components/window/CloseSubWindow.html
+++ b/uitest/tb2/com/vaadin/tests/components/window/CloseSubWindow.html
@@ -40,7 +40,7 @@
<!--Click close in title bar-->
<tr>
<td>click</td>
- <td>vaadin=runcomvaadintestscomponentswindowCloseSubWindow::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowCloseSubWindow::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td></td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/window/SubWindowOrder.html b/uitest/tb2/com/vaadin/tests/components/window/SubWindowOrder.html
index 6fd99caa19..f0ccddcce4 100644
--- a/uitest/tb2/com/vaadin/tests/components/window/SubWindowOrder.html
+++ b/uitest/tb2/com/vaadin/tests/components/window/SubWindowOrder.html
@@ -90,7 +90,7 @@
<!--Close window 4, which is the topmost window-->
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[3]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[3]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>11,15</td>
</tr>
<tr>
@@ -101,7 +101,7 @@
<!--Close Dialog 3 (topmost)-->
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[2]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[2]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>6,8</td>
</tr>
<!--Make Dialog 5 (topmost) non-modal-->
@@ -139,7 +139,7 @@
<!--Close dialog 5-->
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[2]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowSubWindowOrder::/VWindow[2]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>10,5</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/window/WindowMaximizeRestoreTest.html b/uitest/tb2/com/vaadin/tests/components/window/WindowMaximizeRestoreTest.html
index a27963a066..65d5fd20e3 100644
--- a/uitest/tb2/com/vaadin/tests/components/window/WindowMaximizeRestoreTest.html
+++ b/uitest/tb2/com/vaadin/tests/components/window/WindowMaximizeRestoreTest.html
@@ -18,59 +18,59 @@
<!--Test maximize-restore button-->
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<tr>
<td>assertText</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td>Window 1</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>7,8</td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-restorebox</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>9,7</td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<!--test double click on header-->
<tr>
<td>doubleClickAt</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td></td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-restorebox</td>
</tr>
<tr>
<td>doubleClickAt</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td></td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<!--Resizable = false should hide max-restore button-->
<tr>
<td>assertVisible</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td></td>
</tr>
<tr>
@@ -80,7 +80,7 @@
</tr>
<tr>
<td>assertNotVisible</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td></td>
</tr>
<!--Test server side max-restore-->
@@ -91,7 +91,7 @@
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-restorebox</td>
</tr>
<tr>
@@ -101,28 +101,28 @@
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<!--test double click on header doesn't work-->
<tr>
<td>doubleClickAt</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td></td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<tr>
<td>doubleClickAt</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td></td>
</tr>
<tr>
<td>assertCSSClass</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>v-window-maximizebox</td>
</tr>
<tr>
@@ -148,7 +148,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>10,8</td>
</tr>
<tr>
@@ -174,7 +174,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>6,11</td>
</tr>
<tr>
@@ -184,7 +184,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>7,5</td>
</tr>
<tr>
@@ -209,12 +209,12 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[1]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>6,11</td>
</tr>
<tr>
<td>doubleClickAt</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td>113,10</td>
</tr>
<tr>
@@ -225,27 +225,27 @@
<!--Test that size and position is preserved when maximizing and restoring-->
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>8,4</td>
</tr>
<tr>
<td>dragAndDrop</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[2]</td>
<td>-200,-200</td>
</tr>
<tr>
<td>dragAndDrop</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[5]/domChild[0]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]/domChild[0]</td>
<td>+100,+100</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>6,5</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[2]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowMaximizeRestoreTest::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
<td>5,8</td>
</tr>
<tr>
diff --git a/uitest/tb2/com/vaadin/tests/components/window/WindowWithInvalidCloseListener.html b/uitest/tb2/com/vaadin/tests/components/window/WindowWithInvalidCloseListener.html
index 3ea1f8f732..ea4d2c3666 100644
--- a/uitest/tb2/com/vaadin/tests/components/window/WindowWithInvalidCloseListener.html
+++ b/uitest/tb2/com/vaadin/tests/components/window/WindowWithInvalidCloseListener.html
@@ -18,7 +18,7 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowWithInvalidCloseListener::/VWindow[0]/domChild[0]/domChild[0]/domChild[3]</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowWithInvalidCloseListener::/VWindow[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td>
<td>6,7</td>
</tr>
<tr>