aboutsummaryrefslogtreecommitdiffstats
path: root/tests/testbench/com/vaadin
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testbench/com/vaadin')
-rw-r--r--tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java14
-rw-r--r--tests/testbench/com/vaadin/tests/TestBench.java6
-rw-r--r--tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java13
-rw-r--r--tests/testbench/com/vaadin/tests/TestForWindowOpen.java6
-rw-r--r--tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java3
-rw-r--r--tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.html36
-rw-r--r--tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java57
-rw-r--r--tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java6
-rw-r--r--tests/testbench/com/vaadin/tests/applicationservlet/NoApplicationClass.html26
-rw-r--r--tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.html250
-rw-r--r--tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java142
-rw-r--r--tests/testbench/com/vaadin/tests/components/TestBase.java10
-rw-r--r--tests/testbench/com/vaadin/tests/components/TouchScrollables.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.html62
-rw-r--r--tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java55
-rw-r--r--tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.html5
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java8
-rw-r--r--tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java12
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.html62
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.java46
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html37
-rw-r--r--tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.java41
-rw-r--r--tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java78
-rw-r--r--tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java (renamed from tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java)24
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/Notifications.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.html42
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java39
-rw-r--r--tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java11
-rw-r--r--tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.html32
-rw-r--r--tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.html6
-rw-r--r--tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java8
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.html32
-rw-r--r--tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java38
-rw-r--r--tests/testbench/com/vaadin/tests/components/slider/SliderOrientation.html72
-rw-r--r--tests/testbench/com/vaadin/tests/components/slider/SliderTooltip.html67
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/HorizontalSplitPanelSplitterClick.html5
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.html262
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java332
-rw-r--r--tests/testbench/com/vaadin/tests/components/splitpanel/VerticalSplitPanelSplitterClick.html5
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.html5
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ScrollCausesRequestLoop.java6
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java2
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java3
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableFirstRowFlicker.java85
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.html82
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java83
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/Tables.java11
-rw-r--r--tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.html37
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.html37
-rw-r--r--tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.java34
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java50
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java10
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/RowAnimation.html77
-rw-r--r--tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html65
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java45
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java4
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java9
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.html57
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java58
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.html11
-rw-r--r--tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java6
-rw-r--r--tests/testbench/com/vaadin/tests/containers/TableWithFileSystemContainer.java2
-rw-r--r--tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java77
-rw-r--r--tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.html.disabled0
-rw-r--r--tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java67
-rw-r--r--tests/testbench/com/vaadin/tests/debug/DebugWindowPresent.html72
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java9
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java116
-rw-r--r--tests/testbench/com/vaadin/tests/extensions/SimpleJavascriptExtensionTest.java95
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java4
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java4
-rw-r--r--tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java4
-rw-r--r--tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java11
-rw-r--r--tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java4
-rw-r--r--tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java23
-rw-r--r--tests/testbench/com/vaadin/tests/integration/PortletSizeInLiferayFreeformLayoutApplication.java31
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java8
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java4
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.html128
-rw-r--r--tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java4
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/AutoGeneratingForm.java77
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/BasicApplication.java28
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/CreatingPreserveState.java31
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/CustomConverterFactoryRoot.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/CustomConverterFactoryRoot.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/DefineRootTheme.java31
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/DifferentFeaturesForDifferentClients.java63
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/DynamicImageRoot.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java44
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormUsingExistingLayout.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/FormUsingExistingLayout.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormatTableValue.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/FormatTableValue.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldDataSource.java)13
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldStandalone.java)14
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/MultiTabApplication.java51
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyConverterFactory.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/MyConverterFactory.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyStringToDoubleConverter.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/MyStringToDoubleConverter.java)2
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java (renamed from tests/testbench/com/vaadin/tests/minitutorials/StringMyTypeConverter.java)10
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingBeanValidation.java74
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java54
-rw-r--r--tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingXyzWhenInitializing.java52
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java7
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket2998.java4
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket34.java8
-rw-r--r--tests/testbench/com/vaadin/tests/tickets/Ticket6002.java5
-rw-r--r--tests/testbench/com/vaadin/tests/util/TestUtils.java2
-rw-r--r--tests/testbench/com/vaadin/tests/validation/RequiredErrorMessage.java6
110 files changed, 3672 insertions, 326 deletions
diff --git a/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java b/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
index 33d63b0413..dd93b1a8b6 100644
--- a/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
+++ b/tests/testbench/com/vaadin/launcher/ApplicationRunnerServlet.java
@@ -9,7 +9,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.LinkedHashSet;
-import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -45,9 +44,6 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
}
}
- private static final Logger logger = Logger
- .getLogger(ApplicationRunnerServlet.class.getName());
-
/**
* The name of the application class currently used. Only valid within one
* request.
@@ -241,8 +237,10 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
// Ignore as this is expected for many packages
} catch (Exception e2) {
// TODO: handle exception
- logger.log(Level.FINE, "Failed to find application class "
- + pkg + "." + baseName, e2);
+ getLogger().log(
+ Level.FINE,
+ "Failed to find application class " + pkg + "."
+ + baseName, e2);
}
if (appClass != null) {
return appClass;
@@ -289,4 +287,8 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
};
}
+ private Logger getLogger() {
+ return Logger.getLogger(ApplicationRunnerServlet.class.getName());
+ }
+
}
diff --git a/tests/testbench/com/vaadin/tests/TestBench.java b/tests/testbench/com/vaadin/tests/TestBench.java
index c3bb24cbef..1ac497e574 100644
--- a/tests/testbench/com/vaadin/tests/TestBench.java
+++ b/tests/testbench/com/vaadin/tests/TestBench.java
@@ -16,6 +16,8 @@ import com.vaadin.Application;
import com.vaadin.data.Property;
import com.vaadin.data.util.HierarchicalContainer;
import com.vaadin.terminal.ExternalResource;
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.Page.FragmentChangedEvent;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalSplitPanel;
@@ -23,8 +25,6 @@ import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.Link;
import com.vaadin.ui.Panel;
-import com.vaadin.ui.Root;
-import com.vaadin.ui.Root.FragmentChangedEvent;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Tree;
import com.vaadin.ui.VerticalLayout;
@@ -119,7 +119,7 @@ public class TestBench extends com.vaadin.Application.LegacyApplication
VerticalLayout lo = new VerticalLayout();
lo.addComponent(menu);
- mainWindow.addListener(new Root.FragmentChangedListener() {
+ mainWindow.getPage().addListener(new Page.FragmentChangedListener() {
public void fragmentChanged(FragmentChangedEvent source) {
String fragment = source.getFragment();
if (fragment != null && !"".equals(fragment)) {
diff --git a/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java b/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
index 48eff0336e..c63c0caf16 100644
--- a/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
+++ b/tests/testbench/com/vaadin/tests/TestComponentAddAndRecursion.java
@@ -10,7 +10,6 @@ import com.vaadin.ui.GridLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
-import com.vaadin.ui.Root;
import com.vaadin.ui.VerticalLayout;
/**
@@ -92,12 +91,10 @@ public class TestComponentAddAndRecursion extends CustomComponent {
public void buttonClick(ClickEvent event) {
try {
p3.addComponent(p2);
- Root.getCurrentRoot().showNotification("ERROR",
- "This should have failed",
+ Notification.show("ERROR", "This should have failed",
Notification.TYPE_ERROR_MESSAGE);
} catch (Exception e) {
- Root.getCurrentRoot().showNotification("OK",
- "threw, as expected",
+ Notification.show("OK", "threw, as expected",
Notification.TYPE_ERROR_MESSAGE);
}
}
@@ -111,12 +108,10 @@ public class TestComponentAddAndRecursion extends CustomComponent {
p.addComponent(p2);
try {
p3.addComponent(p);
- Root.getCurrentRoot().showNotification("ERROR",
- "This should have failed",
+ Notification.show("ERROR", "This should have failed",
Notification.TYPE_ERROR_MESSAGE);
} catch (Exception e) {
- Root.getCurrentRoot().showNotification("OK",
- "threw, as expected",
+ Notification.show("OK", "threw, as expected",
Notification.TYPE_ERROR_MESSAGE);
}
}
diff --git a/tests/testbench/com/vaadin/tests/TestForWindowOpen.java b/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
index c9dbf8dabe..76154f2419 100644
--- a/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
+++ b/tests/testbench/com/vaadin/tests/TestForWindowOpen.java
@@ -24,7 +24,7 @@ public class TestForWindowOpen extends CustomComponent {
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
- Root.getCurrentRoot().open(r);
+ Root.getCurrentRoot().getPage().open(r);
}
@@ -36,7 +36,7 @@ public class TestForWindowOpen extends CustomComponent {
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
- Root.getCurrentRoot().open(r, "mytarget");
+ Root.getCurrentRoot().getPage().open(r, "mytarget");
}
@@ -48,7 +48,7 @@ public class TestForWindowOpen extends CustomComponent {
public void buttonClick(ClickEvent event) {
final ExternalResource r = new ExternalResource(
"http://www.google.com");
- Root.getCurrentRoot().open(r, "secondtarget");
+ Root.getCurrentRoot().getPage().open(r, "secondtarget");
}
diff --git a/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java b/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
index 7d5e298286..58faec35f0 100644
--- a/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
+++ b/tests/testbench/com/vaadin/tests/appengine/GAESyncTest.java
@@ -91,7 +91,8 @@ public class GAESyncTest extends Application.LegacyApplication {
public void buttonClick(ClickEvent event) {
if (getRoot() == getMainWindow()) {
- getRoot().showNotification("main");
+ getRoot().getPage().showNotification(
+ new Notification("main"));
try {
Thread.sleep((5000));
} catch (InterruptedException e) {
diff --git a/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.html b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.html
new file mode 100644
index 0000000000..f20967c8de
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.html
@@ -0,0 +1,36 @@
+<?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>TabSheetWithDisappearingContent</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetWithDisappearingContent</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.application.TerminalErrorNotification?restartApplication&amp;debug</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestsapplicationTerminalErrorNotification::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementPresent</td>
+ <td>vaadin=runcomvaadintestsapplicationTerminalErrorNotification::Root/VNotification[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationTerminalErrorNotification::Root/VNotification[0]/HTML[0]/domChild[0]</td>
+ <td>Got an exception: You asked for it</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java
new file mode 100644
index 0000000000..f2ae7a3891
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/application/TerminalErrorNotification.java
@@ -0,0 +1,57 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.tests.application;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.Root;
+
+public class TerminalErrorNotification extends TestBase {
+
+ @Override
+ protected void setup() {
+ Button button = new Button("Throw exception",
+ new Button.ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ throw new RuntimeException("You asked for it");
+ }
+ });
+
+ addComponent(button);
+ }
+
+ @Override
+ public void terminalError(com.vaadin.terminal.Terminal.ErrorEvent event) {
+ event.getThrowable().printStackTrace();
+
+ Root mainWindow = getMainWindow();
+ if (mainWindow != null) {
+ Throwable throwable = event.getThrowable();
+
+ // Find the root cause
+ while (throwable.getCause() != null) {
+ throwable = throwable.getCause();
+ }
+
+ Notification.show("Got an exception: " + throwable.getMessage(),
+ Notification.TYPE_ERROR_MESSAGE);
+ } else {
+ System.out.println("No main window found");
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Showing a notification in the terminalError method should make the notification appear in the browser.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(8778);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java b/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
index eacf2a0e53..a3f11f2cd3 100644
--- a/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
+++ b/tests/testbench/com/vaadin/tests/application/WebBrowserSizeTest.java
@@ -21,8 +21,10 @@ public class WebBrowserSizeTest extends TestBase {
public void buttonClick(ClickEvent event) {
screenSizeLabel.setValue(getBrowser().getScreenWidth() + " x "
+ getBrowser().getScreenHeight());
- browserSizeLabel.setValue(getBrowser().getClientWidth() + " x "
- + getBrowser().getClientHeight());
+ browserSizeLabel.setValue(getMainWindow()
+ .getBrowserWindowWidth()
+ + " x "
+ + getMainWindow().getBrowserWindowHeight());
}
});
diff --git a/tests/testbench/com/vaadin/tests/applicationservlet/NoApplicationClass.html b/tests/testbench/com/vaadin/tests/applicationservlet/NoApplicationClass.html
new file mode 100644
index 0000000000..70bb8cc8f3
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/applicationservlet/NoApplicationClass.html
@@ -0,0 +1,26 @@
+<?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="http://localhost:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/ClassThatIsNotPresent?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//pre[1]</td>
+ <td>java.lang.InstantiationException: Failed to load application class: ClassThatIsNotPresent</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java b/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
index fd90cf2d6e..72cbcd386e 100644
--- a/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
+++ b/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
@@ -15,7 +15,7 @@ public abstract class AbstractTestRoot extends Root {
@Override
public void init(WrappedRequest request) {
- setCaption(getClass().getName());
+ getPage().setTitle(getClass().getName());
Label label = new Label(getTestDescription(), ContentMode.XHTML);
label.setWidth("100%");
diff --git a/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.html b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.html
new file mode 100644
index 0000000000..ac3a4f0cb0
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.html
@@ -0,0 +1,250 @@
+<?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="http://localhost:8888/" />
+<title>DisableEnableCascadeStyles</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">DisableEnableCascadeStyles</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.DisableEnableCascadeStyles?restartApplication</td>
+ <td></td>
+</tr>
+<!--disable tabsheet-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--enable tabsheet-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--disable layout containing components-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--enable layout containing components-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--disable all bottom level components-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[3]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--enable all bottom level components-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VButton[3]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<!--assert css class names for bottom level components-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VNativeButton[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextField[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/VTextArea[0]</td>
+ <td>v-disabled</td>
+</tr>
+<!--assert css class name for component captions-->
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[2]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsDisableEnableCascadeStyles::/VVerticalLayout[0]/VVerticalLayout[0]/VPanel[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[3]/domChild[0]</td>
+ <td>v-disabled</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java
new file mode 100644
index 0000000000..f3391afd1f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/DisableEnableCascadeStyles.java
@@ -0,0 +1,142 @@
+package com.vaadin.tests.components;
+
+import java.util.Iterator;
+
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+
+public class DisableEnableCascadeStyles extends TestBase {
+
+ private Panel outerPanel;
+ private TabSheet innerTabsheet;
+ private Button button;
+ private TextArea textArea;
+ private TextField textField;
+ private VerticalLayout layout;
+ private NativeButton nativeButton;
+ private Button enableDisablePanelButton;
+ private Button enableDisableTabSheetButton;
+ private Button enableDisableLayoutButton;
+ private Button enableDisableComponentsButton;
+
+ @Override
+ protected void setup() {
+
+ outerPanel = new Panel("Outer panel, enabled");
+ innerTabsheet = new TabSheet();
+ innerTabsheet.setCaption("Inner Tabsheet, enabled");
+
+ button = new Button("Button, enabled");
+ nativeButton = new NativeButton("NativeButton, enabled");
+ textField = new TextField("TextField with caption and value, enabled");
+ textField.setValue("Text");
+ textArea = new TextArea("TextArea with caption and value, enabled");
+ textArea.setValue("Text");
+ layout = new VerticalLayout();
+ layout.setCaption("VerticalLayout, enabled");
+ layout.addComponent(button);
+ layout.addComponent(nativeButton);
+ layout.addComponent(textField);
+ layout.addComponent(textArea);
+
+ outerPanel.setContent(innerTabsheet);
+ innerTabsheet.addTab(layout, "Tab containing layout");
+
+ addComponent(outerPanel);
+
+ enableDisablePanelButton = new Button("Disable panel",
+ new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ enableDisable(outerPanel, enableDisablePanelButton);
+
+ }
+ });
+
+ enableDisableTabSheetButton = new Button("Disable TabSheet",
+ new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ enableDisable(innerTabsheet,
+ enableDisableTabSheetButton);
+
+ }
+ });
+
+ enableDisableLayoutButton = new Button("Disable Tab content (Layout)",
+ new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ enableDisable(layout, enableDisableLayoutButton);
+
+ }
+ });
+ enableDisableComponentsButton = new Button("Disable Layout Components",
+ new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ for (Iterator<Component> i = layout
+ .getComponentIterator(); i.hasNext();) {
+ final Component c = i.next();
+ if (c.isEnabled()) {
+ c.setEnabled(false);
+ c.setCaption(c.getCaption().replace("enabled",
+ "disabled"));
+ } else {
+ c.setEnabled(true);
+ c.setCaption(c.getCaption().replace("disabled",
+ "enabled"));
+ }
+ }
+ if (layout.getComponent(0).isEnabled()) {
+ enableDisableComponentsButton
+ .setCaption(enableDisableComponentsButton
+ .getCaption().replace("Enable",
+ "Disable"));
+ } else {
+ enableDisableComponentsButton
+ .setCaption(enableDisableComponentsButton
+ .getCaption().replace("Disable",
+ "Enable"));
+ }
+ }
+ });
+ addComponent(enableDisablePanelButton);
+ addComponent(enableDisableTabSheetButton);
+ addComponent(enableDisableLayoutButton);
+ addComponent(enableDisableComponentsButton);
+ }
+
+ protected void enableDisable(Component target, Button button) {
+ if (target.isEnabled()) {
+ target.setEnabled(false);
+ button.setCaption(button.getCaption().replace("Disable", "Enable"));
+ target.setCaption(target.getCaption()
+ .replace("enabled", "disabled"));
+ } else {
+ target.setEnabled(true);
+ button.setCaption(button.getCaption().replace("Enable", "Disable"));
+ target.setCaption(target.getCaption()
+ .replace("disabled", "enabled"));
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Tests the disable state is cascaded correctly to children components that can be disabled. The children and their captions must get the v-disabled style name.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8708;
+ }
+
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/components/TestBase.java b/tests/testbench/com/vaadin/tests/components/TestBase.java
index 6524a30fb7..b3c0f63dcb 100644
--- a/tests/testbench/com/vaadin/tests/components/TestBase.java
+++ b/tests/testbench/com/vaadin/tests/components/TestBase.java
@@ -26,6 +26,16 @@ public abstract class TestBase extends AbstractTestCase {
}
private LegacyWindow window;
+
+ @Override
+ public void setMainWindow(LegacyWindow mainWindow) {
+ if (mainWindow != window) {
+ throw new IllegalStateException(
+ "You should not set your own main window when using TestBase. If you need to use a custom Window as the main window, use AbstractTestCase instead.");
+ }
+ super.setMainWindow(mainWindow);
+ }
+
private VerticalLayout layout;
public TestBase() {
diff --git a/tests/testbench/com/vaadin/tests/components/TouchScrollables.java b/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
index 053691e738..8ad12da85f 100644
--- a/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
+++ b/tests/testbench/com/vaadin/tests/components/TouchScrollables.java
@@ -24,6 +24,7 @@ import com.vaadin.ui.CssLayout;
import com.vaadin.ui.HorizontalSplitPanel;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Table;
@@ -189,7 +190,7 @@ public class TouchScrollables extends TestBase {
}
public void handleAction(Action action, Object sender, Object target) {
- getLayout().getRoot().showNotification(action.getCaption());
+ Notification.show(action.getCaption());
}
});
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.html b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.html
new file mode 100644
index 0000000000..5ec33f09fa
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.button.ButtonEnterWithWindowShortcut?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]</td>
+ <td>enter</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::PID_SLog_row_0</td>
+ <td>1. button click listener fired</td>
+</tr>
+<tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::</td>
+ <td>enter</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::PID_SLog_row_0</td>
+ <td>2. enter pressed in window</td>
+</tr>
+<!-- Can't test using space because of #8827 -->
+<!-- <tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]</td>
+ <td>space</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::PID_SLog_row_0</td>
+ <td>3. button click listener fired</td>
+</tr>
+<tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::</td>
+ <td>space</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonEnterWithWindowShortcut::PID_SLog_row_0</td>
+ <td>4. space pressed in window</td>
+</tr> -->
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java
new file mode 100644
index 0000000000..7efd40ca5d
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/button/ButtonEnterWithWindowShortcut.java
@@ -0,0 +1,55 @@
+package com.vaadin.tests.components.button;
+
+import com.vaadin.event.Action;
+import com.vaadin.event.Action.Handler;
+import com.vaadin.event.ShortcutAction;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+
+public class ButtonEnterWithWindowShortcut extends TestBase {
+ Log log = new Log(5);
+
+ @Override
+ protected void setup() {
+ getMainWindow().addActionHandler(new Handler() {
+ private static final long serialVersionUID = -4976129418325394913L;
+
+ public void handleAction(Action action, Object sender, Object target) {
+ log.log(action.getCaption() + " pressed in window");
+ }
+
+ public Action[] getActions(Object target, Object sender) {
+ ShortcutAction enter = new ShortcutAction("enter",
+ ShortcutAction.KeyCode.ENTER, null);
+ ShortcutAction space = new ShortcutAction("space",
+ ShortcutAction.KeyCode.SPACEBAR, null);
+ return new Action[] { enter, space };
+ }
+ });
+
+ Button button = new Button("Focus me and press enter",
+ new ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ log.log("button click listener fired");
+ }
+ });
+ button.focus();
+
+ addComponent(log);
+ addComponent(button);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Pressing enter or space with the button focused should trigger the button click listener and not the shortcut action on the window.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(5433);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.html b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.html
index bbe5d5d717..1459a30985 100644
--- a/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.html
+++ b/tests/testbench/com/vaadin/tests/components/combobox/ComboBoxInvalidNullSelection.html
@@ -33,6 +33,11 @@
</tr>
<tr>
<td>click</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxInvalidNullSelection::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
<td>vaadin=runcomvaadintestscomponentscomboboxComboBoxInvalidNullSelection::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
<td></td>
</tr>
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java b/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
index 55e61e3980..02c080e8fd 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/AddressFormExample.java
@@ -4,6 +4,7 @@ import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Address;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Notification;
/**
* Demonstrate a custom field which is a form, and contains another custom field
@@ -23,10 +24,9 @@ public class AddressFormExample extends TestBase {
public void buttonClick(ClickEvent event) {
field.commit();
Address address = field.getValue();
- field.getRoot().showNotification(
- "Address saved: " + address.getStreetAddress() + ", "
- + address.getPostalCode() + ", "
- + address.getCity());
+ Notification.show("Address saved: "
+ + address.getStreetAddress() + ", "
+ + address.getPostalCode() + ", " + address.getCity());
}
});
addComponent(commitButton);
diff --git a/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java b/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
index 2f9720a1c1..694c5b54f9 100644
--- a/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
+++ b/tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
@@ -10,6 +10,7 @@ import com.vaadin.ui.Component;
import com.vaadin.ui.DefaultFieldFactory;
import com.vaadin.ui.Field;
import com.vaadin.ui.Form;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.VerticalLayout;
public class BooleanFieldExample extends TestBase {
@@ -62,13 +63,10 @@ public class BooleanFieldExample extends TestBase {
Button submit = new Button("Submit", new ClickListener() {
public void buttonClick(ClickEvent event) {
form.commit();
- layout.getRoot()
- .showNotification(
- "The custom boolean field value is "
- + data.isCustom()
- + ".<br>"
- + "The checkbox (default boolean field) value is "
- + data.isNormal() + ".");
+ Notification.show("The custom boolean field value is "
+ + data.isCustom() + ".<br>"
+ + "The checkbox (default boolean field) value is "
+ + data.isNormal() + ".");
}
});
layout.addComponent(submit);
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.html b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.html
new file mode 100644
index 0000000000..3e7a7cb0a7
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.html
@@ -0,0 +1,62 @@
+<?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>DragStartModes</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">DragStartModes</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.draganddropwrapper.DragStartModes?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::PID_SlabelCOMPONENT</td>
+ <td>50,10</td>
+</tr>
+<tr>
+ <td>mouseMoveAt</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VLabel[0]</td>
+ <td>50,10</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>drag-mode-component</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VLabel[0]</td>
+ <td>50,10</td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::PID_SlabelWRAPPER</td>
+ <td>50,10</td>
+</tr>
+<tr>
+ <td>mouseMoveAt</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VLabel[0]</td>
+ <td>50,10</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>drag-mode-wrapper</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperDragStartModes::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VLabel[0]</td>
+ <td>50,10</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.java b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.java
new file mode 100644
index 0000000000..d23c502a45
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/DragStartModes.java
@@ -0,0 +1,46 @@
+package com.vaadin.tests.components.draganddropwrapper;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.TestUtils;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.DragAndDropWrapper;
+import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
+import com.vaadin.ui.Label;
+
+public class DragStartModes extends TestBase {
+
+ @Override
+ protected void setup() {
+
+ TestUtils.injectCSS(getMainWindow(),
+ ".v-ddwrapper { background: #ACF; }");
+
+ addComponent(makeWrapper(DragStartMode.NONE));
+ addComponent(makeWrapper(DragStartMode.COMPONENT));
+ addComponent(makeWrapper(DragStartMode.WRAPPER));
+ addComponent(makeWrapper(DragStartMode.HTML5));
+
+ addComponent(new Label("Drop here"));
+ }
+
+ private Component makeWrapper(DragStartMode mode) {
+ Label label = new Label("Drag start mode: " + mode);
+ label.setDebugId("label" + mode);
+ DragAndDropWrapper wrapper = new DragAndDropWrapper(label);
+ wrapper.setHTML5DataFlavor("Text", "HTML5!");
+ wrapper.setDragStartMode(mode);
+ wrapper.setWidth("200px");
+ return wrapper;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Different drag start modes should show correct drag images";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8949;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html
new file mode 100644
index 0000000000..08dc608787
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.html
@@ -0,0 +1,37 @@
+<?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>TooltipHandlingWhenNotDefined</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TooltipHandlingWhenNotDefined</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.draganddropwrapper.TooltipHandlingWhenNotDefined?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentsdraganddropwrapperTooltipHandlingWhenNotDefined::PID_StooltipLabel</td>
+ <td></td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td></td>
+ <td>3000</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>tooltip-shown</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.java b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.java
new file mode 100644
index 0000000000..0735b3e622
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/draganddropwrapper/TooltipHandlingWhenNotDefined.java
@@ -0,0 +1,41 @@
+package com.vaadin.tests.components.draganddropwrapper;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.DragAndDropWrapper;
+import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
+import com.vaadin.ui.Label;
+
+public class TooltipHandlingWhenNotDefined extends TestBase {
+
+ @Override
+ protected void setup() {
+
+ CssLayout wrapperLayout = new CssLayout();
+ wrapperLayout.setWidth("100%");
+
+ Label label = new Label("Can I has the tooltip?", Label.CONTENT_XHTML);
+ label.setDebugId("tooltipLabel");
+ label.setDescription("Good! Tooltip works!");
+ label.setSizeUndefined();
+ wrapperLayout.addComponent(label);
+
+ DragAndDropWrapper wrapper = new DragAndDropWrapper(wrapperLayout);
+ wrapper.setWidth("100%");
+ wrapper.setDragStartMode(DragStartMode.WRAPPER);
+
+ addComponent(wrapper);
+
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Wrapper most not prevent child from showing tooltip";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7766;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java b/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java
new file mode 100644
index 0000000000..648bbd2d52
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/gridlayout/GridLayoutInForm.java
@@ -0,0 +1,78 @@
+package com.vaadin.tests.components.gridlayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.vaadin.data.util.ObjectProperty;
+import com.vaadin.data.util.PropertysetItem;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Form;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.Panel;
+
+public class GridLayoutInForm extends TestBase {
+
+ @Override
+ protected void setup() {
+ final List<String> propertyIds = new ArrayList<String>();
+ for (int i = 0; i < 50; i++) {
+ propertyIds.add("property " + i);
+ }
+
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.setSizeUndefined();
+ gridLayout.setColumns(2);
+ gridLayout.setSpacing(true);
+
+ PropertysetItem item = new PropertysetItem();
+ for (String propertyId : propertyIds) {
+ item.addItemProperty(propertyId, new ObjectProperty<String>(
+ propertyId));
+ }
+
+ final Form form = new Form(gridLayout);
+ form.setItemDataSource(item);
+
+ form.setSizeUndefined();
+
+ Panel panel = new Panel();
+ panel.addComponent(form);
+ panel.setHeight("500px");
+
+ addComponent(panel);
+
+ addComponent(new Button("Use 15 first fields",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ form.setVisibleItemProperties(propertyIds
+ .subList(0, 15));
+ }
+ }));
+ addComponent(new Button("Use 15 last fields",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ form.setVisibleItemProperties(propertyIds.subList(35,
+ 50));
+ }
+ }));
+
+ addComponent(new Button("Use all fields", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ form.setVisibleItemProperties(propertyIds);
+ }
+ }));
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Changing the number of visible fields in a Form using a GridLayout with spacing should not cause additional empty space in the end of the GridLayout";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(8855);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
index 2240fc246b..5f2f945c8b 100644
--- a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java
+++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavaScriptComponent.java
@@ -7,21 +7,24 @@ import java.util.Arrays;
import java.util.List;
import com.vaadin.annotations.LoadScripts;
+import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.ComponentState;
import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.terminal.gwt.client.ui.JavaScriptComponentState;
import com.vaadin.tests.components.AbstractTestRoot;
-import com.vaadin.ui.AbstractJavascriptComponent;
-import com.vaadin.ui.Root;
+import com.vaadin.ui.AbstractJavaScriptComponent;
+import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.Notification;
@LoadScripts({ "/statictestfiles/jsconnector.js" })
-public class BasicJavascriptComponent extends AbstractTestRoot {
+public class BasicJavaScriptComponent extends AbstractTestRoot {
public interface ExampleClickRpc extends ServerRpc {
public void onClick(String message);
}
- public static class SpecialState extends ComponentState {
+ public static class SpecialState extends JavaScriptComponentState {
private List<String> data;
public List<String> getData() {
@@ -33,12 +36,17 @@ public class BasicJavascriptComponent extends AbstractTestRoot {
}
}
- public static class ExampleWidget extends AbstractJavascriptComponent {
+ public static class ExampleWidget extends AbstractJavaScriptComponent {
public ExampleWidget() {
registerRpc(new ExampleClickRpc() {
public void onClick(String message) {
- Root.getCurrentRoot().showNotification(
- "Got a click: " + message);
+ Notification.show("Got a click: " + message);
+ }
+ });
+ registerCallback("onclick", new JavaScriptCallback() {
+ public void call(JSONArray arguments) throws JSONException {
+ Notification.show("Got a callback: "
+ + arguments.getString(0));
}
});
getState().setData(Arrays.asList("a", "b", "c"));
diff --git a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
index 27aef918d1..a36fbe3121 100644
--- a/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
+++ b/tests/testbench/com/vaadin/tests/components/notification/Notifications.java
@@ -6,7 +6,6 @@ import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.NativeSelect;
import com.vaadin.ui.Notification;
-import com.vaadin.ui.Root;
import com.vaadin.ui.TextArea;
public class Notifications extends TestBase implements ClickListener {
@@ -53,7 +52,6 @@ public class Notifications extends TestBase implements ClickListener {
public void buttonClick(ClickEvent event) {
Notification n = new Notification(tf.getValue(),
(Integer) type.getValue());
- Root.getCurrentRoot().showNotification(n);
-
+ n.show();
}
}
diff --git a/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.html b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.html
new file mode 100644
index 0000000000..35d22da46e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.html
@@ -0,0 +1,42 @@
+<?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>NotificationsAndModalWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">NotificationsAndModalWindow</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.notification.NotificationsAndModalWindow?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsnotificationNotificationsAndModalWindow::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>closeNotification</td>
+ <td>vaadin=runcomvaadintestscomponentsnotificationNotificationsAndModalWindow::Root/VNotification[1]</td>
+ <td>0,0</td>
+</tr>
+<tr>
+ <td>closeNotification</td>
+ <td>vaadin=runcomvaadintestscomponentsnotificationNotificationsAndModalWindow::Root/VNotification[0]</td>
+ <td>0,0</td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestscomponentsnotificationNotificationsAndModalWindow::Root/VNotification[0]</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java
new file mode 100644
index 0000000000..547ef3077b
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/notification/NotificationsAndModalWindow.java
@@ -0,0 +1,39 @@
+package com.vaadin.tests.components.notification;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.Window;
+
+public class NotificationsAndModalWindow extends TestBase {
+
+ @Override
+ protected void setup() {
+ getMainWindow().showNotification("Notification 1",
+ Notification.TYPE_WARNING_MESSAGE);
+ getMainWindow().showNotification("Notification 2",
+ Notification.TYPE_WARNING_MESSAGE);
+
+ Button b = new Button("Button");
+ b.addListener(new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ Window w = new Window("This is a window");
+ w.setModal(true);
+ getMainWindow().addWindow(w);
+ }
+ });
+ addComponent(b);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Press the button when both two notifications are visible to add a modal window to the app. When the modal window is visible, the notifications should disappear normally.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7136;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java b/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
index 152688d109..a16b8edcde 100644
--- a/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
+++ b/tests/testbench/com/vaadin/tests/components/notification/NotificationsHtmlAllowed.java
@@ -6,7 +6,6 @@ import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Notification;
-import com.vaadin.ui.Root;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
@@ -46,15 +45,13 @@ public class NotificationsHtmlAllowed extends TestBase implements ClickListener
public void buttonClick(ClickEvent event) {
Notification n = makeNotification();
- Root.getCurrentRoot().showNotification(n);
-
+ n.show();
}
private Notification makeNotification() {
- Notification n = new Notification((String) captionField.getValue(),
- (String) messageField.getValue(),
- Notification.TYPE_HUMANIZED_MESSAGE,
- (Boolean) htmlAllowedBox.getValue());
+ Notification n = new Notification(captionField.getValue(),
+ messageField.getValue(), Notification.TYPE_HUMANIZED_MESSAGE,
+ htmlAllowedBox.getValue());
return n;
}
}
diff --git a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.html b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.html
index ea0a039dbe..f0fd1568b1 100644
--- a/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.html
+++ b/tests/testbench/com/vaadin/tests/components/orderedlayout/LayoutClickListenerTest.html
@@ -3,7 +3,7 @@
<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="" />
+<link rel="selenium.base" href="http://localhost:8070" />
<title>LayoutClickListenerTest</title>
</head>
<body>
@@ -19,67 +19,67 @@
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[0]/VTextField[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[1]/VLink[0]/domChild[0]/domChild[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[2]/VFilterSelect[0]/domChild[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[2]/VLink[0]/domChild[0]/domChild[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/domChild[1]</td>
- <td></td>
+ <td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[3]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]</td>
+ <td>396,87</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[4]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[4]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[4]/VVerticalLayout[0]/ChildComponentContainer[2]/VLink[0]/domChild[0]/domChild[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[4]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
- <td></td>
+ <td>5,5</td>
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/domChild[0]</td>
- <td></td>
+ <td>vaadin=runcomvaadintestscomponentsorderedlayoutLayoutClickListenerTest::/VVerticalLayout[0]/VVerticalLayout[0]/VGridLayout[0]</td>
+ <td>1135,146</td>
</tr>
<tr>
<td>screenCapture</td>
diff --git a/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.html b/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.html
index eb40765d03..4b71c5a9a9 100644
--- a/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.html
+++ b/tests/testbench/com/vaadin/tests/components/panel/PanelClickListenerRelativeCoordinates.html
@@ -28,10 +28,10 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentspanelPanelClickListenerRelativeCoordinates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPanel[0]</td>
- <td>287,25</td>
+ <td>vaadin=runcomvaadintestscomponentspanelPanelClickListenerRelativeCoordinates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPanel[0]/VVerticalLayout[0]</td>
+ <td>287,6</td>
</tr>
-<!-- Should really be 287, 25 but due to v-view border-top it is not always... <tr>
+<!-- Should really be 287, 25 but due to v-view border-top it is not always... Additional differences caused by targeting the click on the child element to make it behave like a real click (#4120)<tr>
<td>assertText</td>
<td>vaadin=runcomvaadintestscomponentspanelPanelClickListenerRelativeCoordinates::Root/VNotification[0]/HTML[0]/domChild[0]</td>
<td>287, 25</td>
diff --git a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
index 95691ef9d7..98f31cd68c 100644
--- a/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
+++ b/tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
@@ -6,6 +6,7 @@ import com.vaadin.event.ShortcutAction;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Component;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
import com.vaadin.ui.RichTextArea;
import com.vaadin.ui.Window;
@@ -30,7 +31,7 @@ public class RichTextAreaWithKeyboardShortcuts extends TestBase {
String string = f.getValue().toString();
msg += " Value: " + string;
- f.getRoot().showNotification(msg);
+ Notification.show(msg);
}
diff --git a/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java b/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
index 6078161996..251672fb9a 100644
--- a/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
+++ b/tests/testbench/com/vaadin/tests/components/root/UriFragmentTest.java
@@ -1,5 +1,7 @@
package com.vaadin.tests.components.root;
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.Page.FragmentChangedEvent;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.Button;
@@ -14,7 +16,7 @@ public class UriFragmentTest extends AbstractTestRoot {
protected void setup(WrappedRequest request) {
addComponent(fragmentLabel);
updateLabel();
- addListener(new FragmentChangedListener() {
+ getPage().addListener(new Page.FragmentChangedListener() {
public void fragmentChanged(FragmentChangedEvent event) {
updateLabel();
}
@@ -22,13 +24,13 @@ public class UriFragmentTest extends AbstractTestRoot {
addComponent(new Button("Navigate to #test",
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- setFragment("test");
+ getPage().setFragment("test");
}
}));
}
private void updateLabel() {
- String fragment = getFragment();
+ String fragment = getPage().getFragment();
if (fragment == null) {
fragmentLabel.setValue("No URI fragment set");
} else {
diff --git a/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.html b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.html
new file mode 100644
index 0000000000..48adf2edfe
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.html
@@ -0,0 +1,32 @@
+<?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>StylingPopupOpener</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">StylingPopupOpener</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.select.StylingPopupOpener?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsselectStylingPopupOpener::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java
new file mode 100644
index 0000000000..b3911f19c7
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/select/StylingPopupOpener.java
@@ -0,0 +1,38 @@
+package com.vaadin.tests.components.select;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.TestUtils;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Select;
+
+public class StylingPopupOpener extends TestBase {
+
+ @Override
+ protected void setup() {
+ TestUtils
+ .injectCSS(
+ getMainWindow(),
+ ".v-filterselect-mystyle .v-filterselect-button { width: 50px; background-color: red; } ");
+
+ final Select select = new Select();
+ addComponent(select);
+
+ addComponent(new Button("Update style", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ select.setStyleName("mystyle");
+ }
+ }));
+ }
+
+ @Override
+ protected String getDescription() {
+ return "VFilterSelect popup opener width is not updated when the style or theme changes";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8801;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/slider/SliderOrientation.html b/tests/testbench/com/vaadin/tests/components/slider/SliderOrientation.html
new file mode 100644
index 0000000000..174ddca016
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/slider/SliderOrientation.html
@@ -0,0 +1,72 @@
+<?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>SliderOrientation</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">SliderOrientation</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.slider.SliderTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::PID_Smenu#item0</td>
+ <td>5,6</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[0]/VMenuBar[0]#item4</td>
+ <td>41,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[1]/VMenuBar[0]#item3</td>
+ <td>37,3</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[2]/VMenuBar[0]#item1</td>
+ <td>19,7</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>change-orientation-to-vertical</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::PID_Smenu#item0</td>
+ <td>33,1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[0]/VMenuBar[0]#item4</td>
+ <td>63,11</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[1]/VMenuBar[0]#item3</td>
+ <td>30,1</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[2]/VMenuBar[0]#item0</td>
+ <td>10,10</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>change-orientation-to-horizontal</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/slider/SliderTooltip.html b/tests/testbench/com/vaadin/tests/components/slider/SliderTooltip.html
new file mode 100644
index 0000000000..4e8296050f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/slider/SliderTooltip.html
@@ -0,0 +1,67 @@
+<?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="http://arturwin.office.itmill.com:9999/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.slider.SliderTest?debug&amp;restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::PID_Smenu#item0</td>
+ <td>24,2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[0]/VMenuBar[0]#item1</td>
+ <td>35,12</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[1]/VMenuBar[0]#item1</td>
+ <td>74,3</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VOverlay[2]/VMenuBar[0]#item2</td>
+ <td>30,6</td>
+</tr>
+<tr>
+ <td>showTooltip</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::PID_StestComponent/domChild[2]/domChild[0]</td>
+ <td>0,0</td>
+</tr>
+<tr>
+ <td>waitForElementPresent</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td>This is a semi-long text that might wrap.</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>40,16</td>
+</tr>
+<tr>
+ <td>waitForElementNotPresent</td>
+ <td>vaadin=runcomvaadintestscomponentssliderSliderTest::Root/VTooltip[0]/FlowPanel[0]/domChild[1]</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/HorizontalSplitPanelSplitterClick.html b/tests/testbench/com/vaadin/tests/components/splitpanel/HorizontalSplitPanelSplitterClick.html
index e8be62015f..d91b3d8c4a 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/HorizontalSplitPanelSplitterClick.html
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/HorizontalSplitPanelSplitterClick.html
@@ -78,18 +78,19 @@
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentssplitpanelHorizontalSplitPanels::PID_StestComponent/domChild[0]/domChild[2]/domChild[0]</td>
- <td>10,15</td>
+ <td>5,5</td>
</tr>
<tr>
<td>assertText</td>
<td>vaadin=runcomvaadintestscomponentssplitpanelHorizontalSplitPanels::PID_SLog_row_0</td>
- <td>3. SplitterClickEvent: left at 10,15</td>
+ <td>3. SplitterClickEvent: left at 5,5</td>
</tr>
<tr>
<td>screenCapture</td>
<td></td>
<td>reverseSplitterClicked</td>
</tr>
+
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.html b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.html
new file mode 100644
index 0000000000..70d619edac
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.html
@@ -0,0 +1,262 @@
+<?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>SplitPanelWithMinimumAndMaximum</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">SplitPanelWithMinimumAndMaximum</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.splitpanel.SplitPanelWithMinimumAndMaximum?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-239,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-340,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[2]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-300,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[3]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-79,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[4]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-179,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[5]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-78,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[6]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-150,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[7]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-371,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>horizontal-splits-left</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>418,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>418,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[2]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>450,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[3]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>450,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[4]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>418,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[5]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>418,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[6]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>450,0</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[7]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>450,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>horizontal-splits-right</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>44,2</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-206</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-348</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-300</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-55</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[4]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-155</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[5]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-13</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-300</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[6]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,-300</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>vertical-splits-up</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,361</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,361</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[2]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,350</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[3]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,350</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[4]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,361</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[5]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,361</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[6]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,300</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VSplitPanelVertical[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>0,300</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>vertical-splits-down</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>25,5</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-239,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>togglable-to-min-with-limit-enabled</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>-60,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>togglable-to-min-with-limit-disabled</td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>478,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>togglable-to-max-with-limit-enabled</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>dragAndDrop</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelWithMinimumAndMaximum::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[1]/ChildComponentContainer[0]/VSplitPanelHorizontal[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>113,0</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>togglable-to-max-with-limit-disabled</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java
new file mode 100644
index 0000000000..f7c3dd84e4
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/SplitPanelWithMinimumAndMaximum.java
@@ -0,0 +1,332 @@
+package com.vaadin.tests.components.splitpanel;
+
+import com.vaadin.terminal.Sizeable;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.HorizontalSplitPanel;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.VerticalSplitPanel;
+
+public class SplitPanelWithMinimumAndMaximum extends TestBase {
+
+ @Override
+ protected void setup() {
+ TabSheet tabs = new TabSheet();
+
+ VerticalLayout horizontalSplitsLayout = new VerticalLayout();
+ horizontalSplitsLayout.setCaption("Horizontal splits");
+
+ HorizontalSplitPanel percentagePositionWithPercentageLimitsHorizontal = new HorizontalSplitPanel();
+ percentagePositionWithPercentageLimitsHorizontal.setMinSplitPosition(
+ 10, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsHorizontal.setMaxSplitPosition(
+ 80, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsHorizontal
+ .setFirstComponent(new Label("Min 10 % - 50 % position"));
+ percentagePositionWithPercentageLimitsHorizontal
+ .setSecondComponent(new Label("Max 80 %"));
+ percentagePositionWithPercentageLimitsHorizontal.setSplitPosition(50,
+ Sizeable.UNITS_PERCENTAGE);
+ horizontalSplitsLayout
+ .addComponent(percentagePositionWithPercentageLimitsHorizontal);
+
+ HorizontalSplitPanel pixelPositionWithPercentageLimitsHorizontal = new HorizontalSplitPanel();
+ pixelPositionWithPercentageLimitsHorizontal.setMinSplitPosition(10,
+ Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsHorizontal.setMaxSplitPosition(80,
+ Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsHorizontal
+ .setFirstComponent(new Label("Min 10 % - 400 px position"));
+ pixelPositionWithPercentageLimitsHorizontal
+ .setSecondComponent(new Label("Max 80 %"));
+ pixelPositionWithPercentageLimitsHorizontal.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS);
+ horizontalSplitsLayout
+ .addComponent(pixelPositionWithPercentageLimitsHorizontal);
+
+ HorizontalSplitPanel pixelPositionWithPixelLimitsHorizontal = new HorizontalSplitPanel();
+ pixelPositionWithPixelLimitsHorizontal.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsHorizontal.setMaxSplitPosition(550,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsHorizontal.setFirstComponent(new Label(
+ "Min 100 px - 400 px position"));
+ pixelPositionWithPixelLimitsHorizontal.setSecondComponent(new Label(
+ "Max 550 px"));
+ pixelPositionWithPixelLimitsHorizontal.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS);
+ horizontalSplitsLayout
+ .addComponent(pixelPositionWithPixelLimitsHorizontal);
+
+ HorizontalSplitPanel percentagePositionWithPixelLimitsHorizontal = new HorizontalSplitPanel();
+ percentagePositionWithPixelLimitsHorizontal.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsHorizontal.setMaxSplitPosition(550,
+ Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsHorizontal
+ .setFirstComponent(new Label("Min 100 px - 30 % position"));
+ percentagePositionWithPixelLimitsHorizontal
+ .setSecondComponent(new Label("Max 550 px"));
+ percentagePositionWithPixelLimitsHorizontal.setSplitPosition(30,
+ Sizeable.UNITS_PERCENTAGE);
+ horizontalSplitsLayout
+ .addComponent(percentagePositionWithPixelLimitsHorizontal);
+
+ HorizontalSplitPanel percentagePositionWithPercentageLimitsHorizontalResersed = new HorizontalSplitPanel();
+ percentagePositionWithPercentageLimitsHorizontalResersed
+ .setMinSplitPosition(10, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsHorizontalResersed
+ .setMaxSplitPosition(80, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsHorizontalResersed
+ .setFirstComponent(new Label(
+ "Max 80 % - Reversed 50 % position"));
+ percentagePositionWithPercentageLimitsHorizontalResersed
+ .setSecondComponent(new Label("Min 10 %"));
+ percentagePositionWithPercentageLimitsHorizontalResersed
+ .setSplitPosition(50, Sizeable.UNITS_PERCENTAGE, true);
+ horizontalSplitsLayout
+ .addComponent(percentagePositionWithPercentageLimitsHorizontalResersed);
+
+ HorizontalSplitPanel pixelPositionWithPercentageLimitsHorizontalResersed = new HorizontalSplitPanel();
+ pixelPositionWithPercentageLimitsHorizontalResersed
+ .setMinSplitPosition(10, Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsHorizontalResersed
+ .setMaxSplitPosition(80, Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsHorizontalResersed
+ .setFirstComponent(new Label(
+ "Max 80 % - Reversed 400 px position"));
+ pixelPositionWithPercentageLimitsHorizontalResersed
+ .setSecondComponent(new Label("Min 10 %"));
+ pixelPositionWithPercentageLimitsHorizontalResersed.setSplitPosition(
+ 400, Sizeable.UNITS_PIXELS, true);
+ horizontalSplitsLayout
+ .addComponent(pixelPositionWithPercentageLimitsHorizontalResersed);
+
+ HorizontalSplitPanel pixelPositionWithPixelLimitsHorizontalResersed = new HorizontalSplitPanel();
+ pixelPositionWithPixelLimitsHorizontalResersed.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsHorizontalResersed.setMaxSplitPosition(550,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsHorizontalResersed
+ .setFirstComponent(new Label(
+ "Max 550 px - Reversed 400 px position"));
+ pixelPositionWithPixelLimitsHorizontalResersed
+ .setSecondComponent(new Label("Min 100 px"));
+ pixelPositionWithPixelLimitsHorizontalResersed.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS, true);
+ horizontalSplitsLayout
+ .addComponent(pixelPositionWithPixelLimitsHorizontalResersed);
+
+ HorizontalSplitPanel percentagePositionWithPixelLimitsHorizontalResersed = new HorizontalSplitPanel();
+ percentagePositionWithPixelLimitsHorizontalResersed
+ .setMinSplitPosition(100, Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsHorizontalResersed
+ .setMaxSplitPosition(550, Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsHorizontalResersed
+ .setFirstComponent(new Label(
+ "Max 550 px - Reversed 30 % position"));
+ percentagePositionWithPixelLimitsHorizontalResersed
+ .setSecondComponent(new Label("Min 100 px"));
+ percentagePositionWithPixelLimitsHorizontalResersed.setSplitPosition(
+ 30, Sizeable.UNITS_PERCENTAGE, true);
+ horizontalSplitsLayout
+ .addComponent(percentagePositionWithPixelLimitsHorizontalResersed);
+
+ horizontalSplitsLayout.setSizeFull();
+ tabs.addComponent(horizontalSplitsLayout);
+
+ HorizontalLayout verticalSplitsLayout = new HorizontalLayout();
+ verticalSplitsLayout.setCaption("Vertical splits");
+
+ VerticalSplitPanel percentagePositionWithPercentageLimitsVertical = new VerticalSplitPanel();
+ percentagePositionWithPercentageLimitsVertical.setMinSplitPosition(10,
+ Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsVertical.setMaxSplitPosition(80,
+ Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsVertical
+ .setFirstComponent(new Label("Min 10 % - 50 % position"));
+ percentagePositionWithPercentageLimitsVertical
+ .setSecondComponent(new Label("Max 80 %"));
+ percentagePositionWithPercentageLimitsVertical.setSplitPosition(50,
+ Sizeable.UNITS_PERCENTAGE);
+ verticalSplitsLayout
+ .addComponent(percentagePositionWithPercentageLimitsVertical);
+
+ VerticalSplitPanel pixelPositionWithPercentageLimitsVertical = new VerticalSplitPanel();
+ pixelPositionWithPercentageLimitsVertical.setMinSplitPosition(10,
+ Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsVertical.setMaxSplitPosition(80,
+ Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsVertical.setFirstComponent(new Label(
+ "Min 10 % - 400 px position"));
+ pixelPositionWithPercentageLimitsVertical.setSecondComponent(new Label(
+ "Max 80 %"));
+ pixelPositionWithPercentageLimitsVertical.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS);
+ verticalSplitsLayout
+ .addComponent(pixelPositionWithPercentageLimitsVertical);
+
+ VerticalSplitPanel pixelPositionWithPixelLimitsVertical = new VerticalSplitPanel();
+ pixelPositionWithPixelLimitsVertical.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsVertical.setMaxSplitPosition(450,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsVertical.setFirstComponent(new Label(
+ "Min 100 px - 400 px position"));
+ pixelPositionWithPixelLimitsVertical.setSecondComponent(new Label(
+ "Max 450 px"));
+ pixelPositionWithPixelLimitsVertical.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS);
+ verticalSplitsLayout.addComponent(pixelPositionWithPixelLimitsVertical);
+
+ VerticalSplitPanel percentagePositionWithPixelLimitsVertical = new VerticalSplitPanel();
+ percentagePositionWithPixelLimitsVertical.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsVertical.setMaxSplitPosition(450,
+ Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsVertical.setFirstComponent(new Label(
+ "Min 100 px - 30 % position"));
+ percentagePositionWithPixelLimitsVertical.setSecondComponent(new Label(
+ "Max 450 px"));
+ percentagePositionWithPixelLimitsVertical.setSplitPosition(30,
+ Sizeable.UNITS_PERCENTAGE);
+ verticalSplitsLayout
+ .addComponent(percentagePositionWithPixelLimitsVertical);
+
+ VerticalSplitPanel percentagePositionWithPercentageLimitsVerticalReversed = new VerticalSplitPanel();
+ percentagePositionWithPercentageLimitsVerticalReversed
+ .setMinSplitPosition(10, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsVerticalReversed
+ .setMaxSplitPosition(80, Sizeable.UNITS_PERCENTAGE);
+ percentagePositionWithPercentageLimitsVerticalReversed
+ .setFirstComponent(new Label(
+ "Max 80 % - Reversed 50 % position"));
+ percentagePositionWithPercentageLimitsVerticalReversed
+ .setSecondComponent(new Label("Min 10 %"));
+ percentagePositionWithPercentageLimitsVerticalReversed
+ .setSplitPosition(50, Sizeable.UNITS_PERCENTAGE, true);
+ verticalSplitsLayout
+ .addComponent(percentagePositionWithPercentageLimitsVerticalReversed);
+
+ VerticalSplitPanel pixelPositionWithPercentageLimitsVerticalReversed = new VerticalSplitPanel();
+ pixelPositionWithPercentageLimitsVerticalReversed.setMinSplitPosition(
+ 10, Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsVerticalReversed.setMaxSplitPosition(
+ 80, Sizeable.UNITS_PERCENTAGE);
+ pixelPositionWithPercentageLimitsVerticalReversed
+ .setFirstComponent(new Label(
+ "Max 80 % - Reversed 400 px position"));
+ pixelPositionWithPercentageLimitsVerticalReversed
+ .setSecondComponent(new Label("Min 10 %"));
+ pixelPositionWithPercentageLimitsVerticalReversed.setSplitPosition(400,
+ Sizeable.UNITS_PIXELS, true);
+ verticalSplitsLayout
+ .addComponent(pixelPositionWithPercentageLimitsVerticalReversed);
+
+ VerticalSplitPanel pixelPositionWithPixelLimitsVerticalReversed = new VerticalSplitPanel();
+ pixelPositionWithPixelLimitsVerticalReversed.setMinSplitPosition(100,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsVerticalReversed.setMaxSplitPosition(400,
+ Sizeable.UNITS_PIXELS);
+ pixelPositionWithPixelLimitsVerticalReversed
+ .setFirstComponent(new Label(
+ "Max 400 px - Reversed 300 px position"));
+ pixelPositionWithPixelLimitsVerticalReversed
+ .setSecondComponent(new Label("Min 100 px"));
+ pixelPositionWithPixelLimitsVerticalReversed.setSplitPosition(300,
+ Sizeable.UNITS_PIXELS, true);
+ verticalSplitsLayout
+ .addComponent(pixelPositionWithPixelLimitsVerticalReversed);
+
+ VerticalSplitPanel percentagePositionWithPixelLimitsVerticalReversed = new VerticalSplitPanel();
+ percentagePositionWithPixelLimitsVerticalReversed.setMinSplitPosition(
+ 100, Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsVerticalReversed.setMaxSplitPosition(
+ 400, Sizeable.UNITS_PIXELS);
+ percentagePositionWithPixelLimitsVerticalReversed
+ .setFirstComponent(new Label(
+ "Max 400 px - Reversed 30 % position"));
+ percentagePositionWithPixelLimitsVerticalReversed
+ .setSecondComponent(new Label("Min 100 px"));
+ percentagePositionWithPixelLimitsVerticalReversed.setSplitPosition(30,
+ Sizeable.UNITS_PERCENTAGE, true);
+ verticalSplitsLayout
+ .addComponent(percentagePositionWithPixelLimitsVerticalReversed);
+
+ tabs.addComponent(verticalSplitsLayout);
+ verticalSplitsLayout.setSizeFull();
+
+ final VerticalLayout togglableSplitPanelLayout = new VerticalLayout();
+ togglableSplitPanelLayout.setCaption("Togglable minimum/maximum");
+
+ final HorizontalSplitPanel togglableSplitPanel = new HorizontalSplitPanel();
+ togglableSplitPanel.setMinSplitPosition(10, Sizeable.UNITS_PERCENTAGE);
+ togglableSplitPanel.setMaxSplitPosition(80, Sizeable.UNITS_PERCENTAGE);
+ togglableSplitPanel.setFirstComponent(new Label(
+ "Min 10 % - 50 % position"));
+ togglableSplitPanel.setSecondComponent(new Label("Max 80 %"));
+ togglableSplitPanel.setSplitPosition(50, Sizeable.UNITS_PERCENTAGE);
+ togglableSplitPanel.setHeight("250px");
+ togglableSplitPanelLayout.addComponent(togglableSplitPanel);
+
+ final HorizontalLayout buttonLayout = new HorizontalLayout();
+
+ Button disableMinimum = new Button("Disable min limit",
+ new Button.ClickListener() {
+ public void buttonClick(Button.ClickEvent event) {
+ togglableSplitPanel.setMinSplitPosition(0,
+ Sizeable.UNITS_PERCENTAGE);
+
+ }
+ });
+ Button enableMinimum = new Button("Enable min limit",
+ new Button.ClickListener() {
+ public void buttonClick(Button.ClickEvent event) {
+ togglableSplitPanel.setMinSplitPosition(10,
+ Sizeable.UNITS_PERCENTAGE);
+
+ }
+ });
+ Button disableMaximum = new Button("Disable max limit",
+ new Button.ClickListener() {
+ public void buttonClick(Button.ClickEvent event) {
+ togglableSplitPanel.setMaxSplitPosition(100,
+ Sizeable.UNITS_PERCENTAGE);
+
+ }
+ });
+ Button enableMaximum = new Button("Enable max limit",
+ new Button.ClickListener() {
+ public void buttonClick(Button.ClickEvent event) {
+ togglableSplitPanel.setMaxSplitPosition(80,
+ Sizeable.UNITS_PERCENTAGE);
+
+ }
+ });
+ buttonLayout.addComponent(disableMinimum);
+ buttonLayout.addComponent(enableMinimum);
+ buttonLayout.addComponent(disableMaximum);
+ buttonLayout.addComponent(enableMaximum);
+
+ togglableSplitPanelLayout.addComponent(buttonLayout);
+ tabs.addComponent(togglableSplitPanelLayout);
+
+ addComponent(tabs);
+ tabs.setHeight("550px");
+ tabs.setWidth("600px");
+ getLayout().setSizeFull();
+ }
+
+ @Override
+ protected String getDescription() {
+ return "SplitPanel could have setMaxSplitPosition and setMinSplitPosition methods as a way to set maximum and minimum limits for the split position. This is not a very critical feature but could be useful in some situations.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 1744;
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/components/splitpanel/VerticalSplitPanelSplitterClick.html b/tests/testbench/com/vaadin/tests/components/splitpanel/VerticalSplitPanelSplitterClick.html
index d8a101b0a5..cc384b6de6 100644
--- a/tests/testbench/com/vaadin/tests/components/splitpanel/VerticalSplitPanelSplitterClick.html
+++ b/tests/testbench/com/vaadin/tests/components/splitpanel/VerticalSplitPanelSplitterClick.html
@@ -78,18 +78,19 @@
<tr>
<td>mouseClick</td>
<td>vaadin=runcomvaadintestscomponentssplitpanelVerticalSplitPanels::PID_StestComponent/domChild[0]/domChild[2]/domChild[0]</td>
- <td>12,13</td>
+ <td>5,5</td>
</tr>
<tr>
<td>assertText</td>
<td>vaadin=runcomvaadintestscomponentssplitpanelVerticalSplitPanels::PID_SLog_row_0</td>
- <td>3. SplitterClickEvent: left at 12,13</td>
+ <td>3. SplitterClickEvent: left at 5,5</td>
</tr>
<tr>
<td>screenCapture</td>
<td></td>
<td>reverseSplitterClicked</td>
</tr>
+
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
index 9178b284f3..6773f0a96c 100644
--- a/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
+++ b/tests/testbench/com/vaadin/tests/components/table/MultiSelectWithNotIdentityEqualIds.java
@@ -5,6 +5,7 @@ import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.util.IndexedContainer;
import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Table;
@SuppressWarnings("serial")
@@ -20,8 +21,7 @@ public class MultiSelectWithNotIdentityEqualIds extends TestBase {
t.setImmediate(true);
t.addListener(new Property.ValueChangeListener() {
public void valueChange(ValueChangeEvent event) {
- t.getRoot()
- .showNotification("Selected: " + event.getProperty());
+ Notification.show("Selected: " + event.getProperty());
}
});
diff --git a/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.html b/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.html
index e13aa5a3e5..65487d8fa8 100644
--- a/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.html
+++ b/tests/testbench/com/vaadin/tests/components/table/RowUpdateShouldRetainContextMenu.html
@@ -22,6 +22,11 @@
<td>10,10</td>
</tr>
<tr>
+ <td>pause</td>
+ <td>1000</td>
+ <td></td>
+</tr>
+<tr>
<td>assertText</td>
<td>vaadin=runRowUpdateShouldRetainContextMenu::Root/VContextMenu[0]#option0</td>
<td>Action 1</td>
diff --git a/tests/testbench/com/vaadin/tests/components/table/ScrollCausesRequestLoop.java b/tests/testbench/com/vaadin/tests/components/table/ScrollCausesRequestLoop.java
index c140e7e412..75468af247 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ScrollCausesRequestLoop.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ScrollCausesRequestLoop.java
@@ -4,16 +4,16 @@ import java.util.ArrayList;
import java.util.List;
import com.vaadin.data.util.BeanItemContainer;
-import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.components.AbstractTestCase;
import com.vaadin.tests.util.Person;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Table;
-public class ScrollCausesRequestLoop extends TestBase {
+public class ScrollCausesRequestLoop extends AbstractTestCase {
@Override
- protected void setup() {
+ public void init() {
setMainWindow(new LegacyWindow("", new TestView()));
}
diff --git a/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java b/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
index 3b0234d805..44367d0fe1 100644
--- a/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
+++ b/tests/testbench/com/vaadin/tests/components/table/ScrollDetachSynchronization.java
@@ -46,6 +46,7 @@ public class ScrollDetachSynchronization extends TestBase {
mainLayout.setExpandRatio(firstLayout, 1);
first.addListener(new Button.ClickListener() {
+
public void buttonClick(ClickEvent event) {
if (mainLayout.getComponent(1).equals(secondLayout)) {
mainLayout.replaceComponent(secondLayout, firstLayout);
@@ -54,6 +55,7 @@ public class ScrollDetachSynchronization extends TestBase {
}
});
second.addListener(new Button.ClickListener() {
+
public void buttonClick(ClickEvent event) {
if (mainLayout.getComponent(1).equals(firstLayout)) {
mainLayout.replaceComponent(firstLayout, secondLayout);
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
index ff5aa89d84..79a7eca852 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableClickValueChangeInteraction.java
@@ -60,6 +60,7 @@ public class TableClickValueChangeInteraction extends TestBase {
table.setHeight("100px");
if (listenClicks) {
table.addListener(new ItemClickListener() {
+
public void itemClick(ItemClickEvent event) {
table.requestRepaint();
clickLabel.setValue("Click " + event.getItemId());
@@ -68,6 +69,7 @@ public class TableClickValueChangeInteraction extends TestBase {
}
if (listenValueChanges) {
table.addListener(new ValueChangeListener() {
+
public void valueChange(ValueChangeEvent event) {
valueChangeLabel.setValue("Value "
+ event.getProperty().getValue());
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java b/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
index 16323e5024..06afd406ef 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableContextMenu.java
@@ -2,6 +2,7 @@ package com.vaadin.tests.components.table;
import com.vaadin.event.Action;
import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Table;
public class TableContextMenu extends TestBase {
@@ -16,7 +17,7 @@ public class TableContextMenu extends TestBase {
table.addActionHandler(new Action.Handler() {
public void handleAction(Action action, Object sender, Object target) {
- getLayout().getRoot().showNotification("Done that :-)");
+ Notification.show("Done that :-)");
}
public Action[] getActions(Object target, Object sender) {
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableFirstRowFlicker.java b/tests/testbench/com/vaadin/tests/components/table/TableFirstRowFlicker.java
new file mode 100644
index 0000000000..3101615cfd
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/TableFirstRowFlicker.java
@@ -0,0 +1,85 @@
+package com.vaadin.tests.components.table;
+
+import com.vaadin.Application.LegacyApplication;
+import com.vaadin.data.Container;
+import com.vaadin.data.util.IndexedContainer;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.ProgressIndicator;
+import com.vaadin.ui.Root.LegacyWindow;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.VerticalLayout;
+
+public class TableFirstRowFlicker extends LegacyApplication {
+
+ Table t;
+
+ @Override
+ public void init() {
+ LegacyWindow mainWindow = new LegacyWindow(getClass().getName());
+ setMainWindow(mainWindow);
+ mainWindow.getContent().setSizeFull();
+
+ t = new Table();
+ t.setSizeFull();
+ t.setSelectable(true);
+ t.setContainerDataSource(buildContainer());
+ mainWindow.addComponent(t);
+ ((VerticalLayout) mainWindow.getContent()).setExpandRatio(t, 1);
+
+ // Button button = new Button("Refresh");
+ // button.addListener(new Button.ClickListener() {
+ // public void buttonClick(ClickEvent event) {
+ // t.refreshRowCache();
+ // }
+ // });
+ // mainWindow.addComponent(button);
+
+ ProgressIndicator pi = new ProgressIndicator();
+ pi.setPollingInterval(1000);
+ pi.setIndeterminate(true);
+ mainWindow.addComponent(pi);
+
+ Thread r = new Thread() {
+ @Override
+ public void run() {
+ while (t != null) {
+ synchronized (t.getApplication()) {
+ int firstId = t.getCurrentPageFirstItemIndex();
+ Object selected = t.getValue();
+ t.setContainerDataSource(buildContainer());
+ t.setValue(selected);
+ t.setCurrentPageFirstItemIndex(firstId);
+ // lighter alternative for all of above
+ // t.refreshRowCache();
+ }
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ System.out.println("Table update thread stopped");
+ }
+ };
+ r.start();
+ }
+
+ @Override
+ public void close() {
+ t = null;
+ super.close();
+ }
+
+ private Container buildContainer() {
+ IndexedContainer cont = new IndexedContainer();
+ cont.addContainerProperty("name", Label.class, null);
+ for (int i = 0; i < 10000; i++) {
+ cont.addItem(i);
+ Label l = new Label("Item " + i);
+ l.setHeight("50px");
+ cont.getContainerProperty(i, "name").setValue(l);
+ }
+ return cont;
+ }
+
+} \ No newline at end of file
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java b/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
index a1686dee3f..d64bc0035d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
+++ b/tests/testbench/com/vaadin/tests/components/table/TableShouldNotEatValueChanges.java
@@ -27,10 +27,8 @@ public class TableShouldNotEatValueChanges extends TestBase {
ItemClickListener l = new ItemClickListener() {
public void itemClick(ItemClickEvent event) {
- tf.getRoot().showNotification(
- "TF Value on the server:" + tf.getValue(),
+ Notification.show("TF Value on the server:" + tf.getValue(),
Notification.TYPE_WARNING_MESSAGE);
-
}
};
t.addListener(l);
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.html b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.html
new file mode 100644
index 0000000000..e3c9a8423b
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.html
@@ -0,0 +1,82 @@
+<?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>TableWithNoncollapsibleColumns</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableWithNoncollapsibleColumns</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableWithNoncollapsibleColumns?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>column-3-collapsed</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>column-3-noncollapsible</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td>
+ <td>9,7</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>column-menu-after-collapsing-all-columns</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::Root/VContextMenu[0]#option2</td>
+ <td>93,4</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableWithNoncollapsibleColumns::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td>
+ <td>7,10</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>column-menu-after-expanding-column-2</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java
new file mode 100644
index 0000000000..404ba5d779
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/table/TableWithNoncollapsibleColumns.java
@@ -0,0 +1,83 @@
+package com.vaadin.tests.components.table;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.VerticalLayout;
+
+public class TableWithNoncollapsibleColumns extends TestBase {
+
+ @Override
+ protected void setup() {
+ VerticalLayout layout = new VerticalLayout();
+ layout.setSizeFull();
+ addComponent(layout);
+
+ final Table table = new Table();
+ table.setWidth("100%");
+ table.setHeight("300px");
+ table.setColumnCollapsingAllowed(true);
+
+ table.addContainerProperty("Column 1 - noncollapsible", String.class,
+ null);
+ table.addContainerProperty("Column 2 - collapsible", String.class, null);
+ table.addContainerProperty("Column 3 - toggle collapsing",
+ String.class, null);
+
+ table.setColumnCollapsible("Column 1 - noncollapsible", false);
+ layout.addComponent(table);
+
+ final Button button1 = new Button("Column 1: collapse/show",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ table.setColumnCollapsed(
+ "Column 1 - noncollapsible",
+ !table.isColumnCollapsed("Column 1 - noncollapsible"));
+ }
+ });
+ final Button button2 = new Button("Column 2: collapse/show",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ table.setColumnCollapsed(
+ "Column 2 - collapsible",
+ !table.isColumnCollapsed("Column 2 - collapsible"));
+ }
+ });
+
+ final Button button3 = new Button("Column 3: collapse/show",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ table.setColumnCollapsed(
+ "Column 3 - toggle collapsing",
+ !table.isColumnCollapsed("Column 3 - toggle collapsing"));
+ }
+ });
+ final Button button4 = new Button(
+ "Column 3: make noncollapsible/collapsible",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ table.setColumnCollapsible(
+ "Column 3 - toggle collapsing",
+ !table.isColumnCollapsible("Column 3 - toggle collapsing"));
+ }
+ });
+
+ layout.addComponent(button1);
+ layout.addComponent(button2);
+ layout.addComponent(button3);
+ layout.addComponent(button4);
+
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Often a table has one column that identifies the row better than any other and it would not make sense to collapse that one. Make it possible from the server side api to disable collapsing for some properties. These properties could appear as grayed out in the collapse drop down menu.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7495;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/table/Tables.java b/tests/testbench/com/vaadin/tests/components/table/Tables.java
index 47c858f441..11ffff0655 100644
--- a/tests/testbench/com/vaadin/tests/components/table/Tables.java
+++ b/tests/testbench/com/vaadin/tests/components/table/Tables.java
@@ -78,6 +78,14 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
}
};
+ private Command<T, Boolean> columnCollapsibleCommand = new Command<T, Boolean>() {
+
+ public void execute(T c, Boolean collapsible, Object propertyId) {
+ c.setColumnCollapsible(propertyId, collapsible);
+
+ }
+ };
+
protected Command<T, Boolean> columnResizeListenerCommand = new Command<T, Boolean>() {
public void execute(Table c, Boolean value, Object data) {
@@ -648,6 +656,9 @@ public class Tables<T extends Table> extends AbstractSelectTestCase<T>
createSelectAction("Expand ratio", category, expandOptions,
"- remove -", columnExpandRatioCommand, propertyId);
t.log("Expand");
+ createBooleanAction("Collapsible", category, true,
+ columnCollapsibleCommand, propertyId);
+
// Footer text (move)
// Header text (move)
diff --git a/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.html b/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.html
index ac06706aa5..451e9b9c8d 100644
--- a/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.html
+++ b/tests/testbench/com/vaadin/tests/components/table/TestCurrentPageFirstItem.html
@@ -3,7 +3,7 @@
<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="" />
+<link rel="selenium.base" href="http://localhost:8067/" />
<title>TestCurrentPageFirstItem</title>
</head>
<body>
@@ -36,6 +36,41 @@
<td></td>
<td></td>
</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runTestCurrentPageFirstItem::/VHorizontalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
</tbody></table>
</body>
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.html b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.html
new file mode 100644
index 0000000000..d61a2cbc62
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.html
@@ -0,0 +1,37 @@
+<?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="http://localhost:8070" />
+<title>TabSheetWithDisappearingContent</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetWithDisappearingContent</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabSheetWithDisappearingContent?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetWithDisappearingContent::/VVerticalLayout[0]/VVerticalLayout[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>14,7</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetWithDisappearingContent::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>Content 1</td>
+</tr>
+<tr>
+ <td>assertVisible</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetWithDisappearingContent::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.java b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.java
new file mode 100644
index 0000000000..aed273dd64
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/tabsheet/TabSheetWithDisappearingContent.java
@@ -0,0 +1,34 @@
+package com.vaadin.tests.components.tabsheet;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.TabSheet.Tab;
+import com.vaadin.ui.VerticalLayout;
+
+public class TabSheetWithDisappearingContent extends TestBase {
+
+ @Override
+ protected void setup() {
+ final TabSheet t = new TabSheet();
+
+ for (int i = 1; i < 4; i++) {
+ VerticalLayout v = new VerticalLayout();
+ v.addComponent(new Label("Content " + i));
+ Tab tab = t.addTab(v, "Tab " + i);
+ tab.setClosable(true);
+ }
+ addComponent(t);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "In some browsers, when trying to close the last tab of a tabsheet an IndexOutOfBoundException happens. After that, although an other tab is visually active, no contents are shown.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7686;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java
new file mode 100644
index 0000000000..5b7700bc6e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ComponentsInTreeTable.java
@@ -0,0 +1,50 @@
+package com.vaadin.tests.components.treetable;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Layout;
+import com.vaadin.ui.TreeTable;
+
+public class ComponentsInTreeTable extends TestBase {
+
+ @Override
+ protected void setup() {
+ TreeTable tt = new TreeTable();
+ tt.setWidth("300px");
+ addComponent(tt);
+
+ Object id, id2;
+
+ tt.addContainerProperty("foo", Component.class, "");
+ tt.addContainerProperty("bar", String.class, "bar");
+ tt.addContainerProperty("baz", String.class, "baz");
+
+ id = tt.addItem();
+ Layout l = new HorizontalLayout();
+ l.addComponent(new Label("bar"));
+ l.addComponent(new Label("bar"));
+ tt.getContainerProperty(id, "foo").setValue(l);
+
+ id = tt.addItem();
+ Label lbl = new Label("<b>foo</b><br/><i>bar</i>");
+ lbl.setContentMode(Label.CONTENT_XHTML);
+ tt.getContainerProperty(id, "foo").setValue(lbl);
+
+ id2 = tt.addItem();
+ tt.setParent(id2, id);
+ tt.getContainerProperty(id2, "foo").setValue(new Button("Test"));
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Components in TreeTable cells should be rendered inline with the expand/collapse arrow";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 7387;
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
index 2f84c8a68d..447ce6c465 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
+++ b/tests/testbench/com/vaadin/tests/components/treetable/ProgrammaticCollapse.java
@@ -4,6 +4,7 @@ import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.TreeTable;
import com.vaadin.ui.VerticalLayout;
@@ -31,8 +32,7 @@ public class ProgrammaticCollapse extends TestBase {
new ClickListener() {
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(1);
- table.getRoot().showNotification(
- "set collapsed: " + collapsed);
+ Notification.show("set collapsed: " + collapsed);
table.setCollapsed(1, collapsed);
}
}));
@@ -40,8 +40,7 @@ public class ProgrammaticCollapse extends TestBase {
new ClickListener() {
public void buttonClick(ClickEvent event) {
boolean collapsed = !table.isCollapsed(100);
- table.getRoot().showNotification(
- "set collapsed: " + collapsed);
+ Notification.show("set collapsed: " + collapsed);
table.setCollapsed(100, collapsed);
}
}));
@@ -51,8 +50,7 @@ public class ProgrammaticCollapse extends TestBase {
public void buttonClick(ClickEvent event) {
collapsed = !collapsed;
- table.getRoot().showNotification(
- "set collapsed: " + collapsed);
+ Notification.show("set collapsed: " + collapsed);
for (int i = 0; i < 50; ++i) {
table.setCollapsed(i * 2, collapsed);
}
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/RowAnimation.html b/tests/testbench/com/vaadin/tests/components/treetable/RowAnimation.html
new file mode 100644
index 0000000000..64ff061c13
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/treetable/RowAnimation.html
@@ -0,0 +1,77 @@
+<?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>TestAnimatedExpandCollapse</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TestAnimatedExpandCollapse</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.treetable.TreeTableTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_Smenu#item0</td>
+ <td>38,10</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::Root/VOverlay[0]/VMenuBar[0]#item0</td>
+ <td>35,5</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::Root/VOverlay[1]/VMenuBar[0]#item7</td>
+ <td>30,12</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>12,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>31,7</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>29,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>30,6</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td>
+ <td>Item 4,1</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td>
+ <td>Item 5,1</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[0]/domChild[0]</td>
+ <td>Item 6,1</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableTest::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[4]/domChild[0]/domChild[0]</td>
+ <td>Item 7,1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html
index b22d77a94c..499c30c86a 100644
--- a/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html
+++ b/tests/testbench/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html
@@ -238,44 +238,44 @@
<td>9,-995</td>
</tr>
<tr>
- <td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td>
- <td>93,-991</td>
+ <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>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[35]/VNativeButton[0]</td>
- <td>123,-991</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td>
+ <td>93,-991</td>
</tr>
<tr>
- <td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[44]/VNativeButton[0]</td>
- <td>114,-1000</td>
+ <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>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td>
- <td>118,-993</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[35]/VNativeButton[0]</td>
+ <td>123,-991</td>
</tr>
<tr>
<td>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td>
- <td>20. Row Item TestBean [col1=40 (children), col2=AN] expanded. Row index: 39</td>
+ <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>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td>
- <td>21. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[40]/VNativeButton[0]</td>
+ <td>114,-1000</td>
</tr>
<tr>
<td>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td>
- <td>22. Button Item TestBean [col1=40.1, col2=AN.A]/col3 clicked. Row index: 40</td>
+ <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>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td>
- <td>23. Button Item TestBean [col1=40.10, col2=AN.J]/col3 clicked. Row index: 49</td>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td>
+ <td>118,-993</td>
</tr>
<tr>
<td>assertText</td>
@@ -288,29 +288,34 @@
<td>9,-998</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>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td>
<td>42,-990</td>
</tr>
<tr>
- <td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[29]/VNativeButton[0]</td>
- <td>84,-990</td>
+ <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>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td>
- <td>98,-998</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[29]/VNativeButton[0]</td>
+ <td>84,-990</td>
</tr>
<tr>
<td>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td>
- <td>26. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td>
+ <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>assertText</td>
- <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td>
- <td>27. Button Item TestBean [col1=35, col2=AI]/col3 clicked. Row index: 34</td>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[42]/VNativeButton[0]</td>
+ <td>98,-998</td>
</tr>
<tr>
<td>assertText</td>
diff --git a/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java b/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java
new file mode 100644
index 0000000000..ca9c31513f
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/window/DownloadAndUpdate.java
@@ -0,0 +1,45 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.terminal.ExternalResource;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Table;
+
+public class DownloadAndUpdate extends TestBase {
+
+ @Override
+ protected void setup() {
+ addComponent(new Button("Download and update",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ downloadAndUpdate();
+ }
+ }));
+ }
+
+ protected void downloadAndUpdate() {
+ getMainWindow().open(
+ new ExternalResource("/statictestfiles/dummy.zip", "_new"));
+
+ // Any component sending an UIDL request when rendered will likely do
+ Table table = new Table();
+ table.addContainerProperty("A", String.class, "");
+ for (int i = 0; i < 100; i++) {
+ table.addItem(new Object[] { Integer.toString(i) },
+ Integer.valueOf(i));
+ }
+ addComponent(table);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "There should be no problems downloading a file from the same request that triggers another request, even in webkit browsers.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(8781);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java b/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
index 49da6758ea..9eaabf7340 100644
--- a/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
+++ b/tests/testbench/com/vaadin/tests/components/window/LazyWindowResize.java
@@ -2,14 +2,14 @@ package com.vaadin.tests.components.window;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.terminal.Page.BrowserWindowResizeEvent;
+import com.vaadin.terminal.Page.BrowserWindowResizeListener;
import com.vaadin.terminal.gwt.client.ui.label.ContentMode;
import com.vaadin.tests.components.AbstractTestCase;
import com.vaadin.tests.util.Log;
import com.vaadin.tests.util.LoremIpsum;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Label;
-import com.vaadin.ui.Root.BrowserWindowResizeEvent;
-import com.vaadin.ui.Root.BrowserWindowResizeListener;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Window;
import com.vaadin.ui.Window.ResizeEvent;
diff --git a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
index 988d47e29f..1e342abe01 100644
--- a/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
+++ b/tests/testbench/com/vaadin/tests/components/window/SubWindowFocusAndBlurListeners.java
@@ -10,6 +10,7 @@ import com.vaadin.event.ShortcutAction;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Root;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Window;
@@ -36,15 +37,13 @@ public class SubWindowFocusAndBlurListeners extends TestBase {
window.addComponent(new TextField());
window.addListener(new FocusListener() {
public void focus(FocusEvent event) {
- event.getComponent().getRoot()
- .showNotification("Focused window");
+ Notification.show("Focused window");
}
});
window.addListener(new BlurListener() {
public void blur(BlurEvent event) {
- event.getComponent().getRoot()
- .showNotification("Blurred window");
+ Notification.show("Blurred window");
}
});
@@ -57,7 +56,7 @@ public class SubWindowFocusAndBlurListeners extends TestBase {
}
public void handleAction(Action action, Object sender, Object target) {
- window.getRoot().showNotification("Action!");
+ Notification.show("Action!");
}
});
diff --git a/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.html b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.html
new file mode 100644
index 0000000000..a3b56cd12a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.html
@@ -0,0 +1,57 @@
+<?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>UndefinedHeightSubWindowAndContent</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">UndefinedHeightSubWindowAndContent</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.UndefinedHeightSubWindowAndContent?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentswindowUndefinedHeightSubWindowAndContent::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>52,11</td>
+</tr>
+<tr>
+ <td>enterCharacter</td>
+ <td>vaadin=runcomvaadintestscomponentswindowUndefinedHeightSubWindowAndContent::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>invalid</td>
+</tr>
+<tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentswindowUndefinedHeightSubWindowAndContent::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>enter</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>form_full_width_1_error</td>
+</tr>
+<tr>
+ <td>enterCharacter</td>
+ <td>vaadin=runcomvaadintestscomponentswindowUndefinedHeightSubWindowAndContent::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>valid</td>
+</tr>
+<tr>
+ <td>pressSpecialKey</td>
+ <td>vaadin=runcomvaadintestscomponentswindowUndefinedHeightSubWindowAndContent::/VWindow[0]/FocusableScrollPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>enter</td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>form_full_width_2_valid</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java
new file mode 100644
index 0000000000..ed259b2f4c
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/window/UndefinedHeightSubWindowAndContent.java
@@ -0,0 +1,58 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.data.Validator;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Form;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+public class UndefinedHeightSubWindowAndContent extends TestBase {
+
+ @Override
+ protected void setup() {
+ Window subWindow = new Window("No scrollbars!");
+ subWindow.setWidth("300px");
+ subWindow.center();
+ subWindow.setModal(true);
+ VerticalLayout layout = new VerticalLayout();
+ layout.setWidth("100%");
+ subWindow.setContent(layout);
+
+ final Form form = new Form();
+ form.setImmediate(true);
+ form.setValidationVisible(true);
+ form.setCaption("This is a form");
+ form.setDescription("How do you do?");
+ final TextField field1 = new TextField("Write here");
+ field1.setImmediate(true);
+ field1.addValidator(new Validator() {
+
+ public void validate(Object value) throws InvalidValueException {
+ if (!isValid(value)) {
+ throw new InvalidValueException("FAIL!");
+ }
+ }
+
+ public boolean isValid(Object value) {
+ return field1.getValue().equals("valid");
+ }
+ });
+ form.addField("Field 1", field1);
+ layout.addComponent(form);
+
+ getMainWindow().addWindow(subWindow);
+ subWindow.bringToFront();
+ }
+
+ @Override
+ protected String getDescription() {
+ return "When both window and its content have undefined height, window must not reserve space for a scroll bar when it is not needed.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8852;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.html b/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.html
index f679779d4b..af5b9ec180 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.html
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowClickEvents.html
@@ -3,13 +3,13 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="" />
-<title>New Test</title>
+<link rel="selenium.base" href="http://localhost:8070" />
+<title>WindowClickEvents</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
-<tr><td rowspan="1" colspan="3">New Test</td></tr>
+<tr><td rowspan="1" colspan="3">WindowClickEvents</td></tr>
</thead><tbody>
<tr>
<td>setSpeed</td>
@@ -23,8 +23,8 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestscomponentswindowWindowClickEvents::/VVerticalLayout[0]/domChild[0]</td>
- <td>154,150</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowClickEvents::/VVerticalLayout[0]/VLabel[0]</td>
+ <td>150,5</td>
</tr>
<tr>
<td>assertText</td>
@@ -72,6 +72,7 @@
<td>vaadin=runcomvaadintestscomponentswindowWindowClickEvents::PID_SLog_row_1</td>
<td>4. Click using left on Sub window</td>
</tr>
+
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java b/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
index c6563f200f..ac6c313d29 100644
--- a/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
+++ b/tests/testbench/com/vaadin/tests/components/window/WindowResizeListener.java
@@ -2,13 +2,13 @@ package com.vaadin.tests.components.window;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.Page.BrowserWindowResizeEvent;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
-import com.vaadin.ui.Root;
-import com.vaadin.ui.Root.BrowserWindowResizeEvent;
import com.vaadin.ui.Window;
public class WindowResizeListener extends TestBase {
@@ -33,7 +33,7 @@ public class WindowResizeListener extends TestBase {
final Label l = new Label();
getLayout().addComponent(l);
- getMainWindow().addListener(new Root.BrowserWindowResizeListener() {
+ getMainWindow().addListener(new Page.BrowserWindowResizeListener() {
public void browserWindowResized(BrowserWindowResizeEvent event) {
l.setValue("Current browser window size: "
+ getMainWindow().getBrowserWindowWidth() + " x "
diff --git a/tests/testbench/com/vaadin/tests/containers/TableWithFileSystemContainer.java b/tests/testbench/com/vaadin/tests/containers/TableWithFileSystemContainer.java
index 459c234c24..25d0053fb2 100644
--- a/tests/testbench/com/vaadin/tests/containers/TableWithFileSystemContainer.java
+++ b/tests/testbench/com/vaadin/tests/containers/TableWithFileSystemContainer.java
@@ -4,7 +4,6 @@ import java.io.File;
import com.vaadin.data.util.FilesystemContainer;
import com.vaadin.tests.components.TestBase;
-import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Table;
public class TableWithFileSystemContainer extends TestBase {
@@ -13,7 +12,6 @@ public class TableWithFileSystemContainer extends TestBase {
@Override
public void setup() {
- setMainWindow(new LegacyWindow(""));
Table table = new Table("Documents", new FilesystemContainer(new File(
testPath)));
table.setWidth("100%");
diff --git a/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java
new file mode 100644
index 0000000000..ac92193764
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/dd/NotPaintedAcceptSourceInTabSheet.java
@@ -0,0 +1,77 @@
+package com.vaadin.tests.dd;
+
+import com.vaadin.data.Item;
+import com.vaadin.event.dd.DragAndDropEvent;
+import com.vaadin.event.dd.DropHandler;
+import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
+import com.vaadin.event.dd.acceptcriteria.SourceIs;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.AbstractSelect.AbstractSelectTargetDetails;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.Table.TableDragMode;
+import com.vaadin.ui.Table.TableTransferable;
+
+public class NotPaintedAcceptSourceInTabSheet extends TestBase {
+
+ @Override
+ protected void setup() {
+ final Table source1 = createTable("Source 1");
+ final Table source2 = createTable("Source 2");
+ final Table target = createTable("Target");
+
+ source1.setDragMode(TableDragMode.ROW);
+ source2.setDragMode(TableDragMode.ROW);
+
+ target.setDropHandler(new DropHandler() {
+ public AcceptCriterion getAcceptCriterion() {
+ return new SourceIs(source1, source2);
+ }
+
+ public void drop(DragAndDropEvent event) {
+ TableTransferable transferable = (TableTransferable) event
+ .getTransferable();
+ Item item = transferable.getSourceComponent().getItem(
+ transferable.getItemId());
+ Object value = item.getItemProperty("value").getValue();
+ AbstractSelectTargetDetails targetDetails = (AbstractSelectTargetDetails) event
+ .getTargetDetails();
+ Object targetItemId = targetDetails.getItemIdOver();
+ Object addItemAfter = target.addItemAfter(targetItemId);
+ target.getItem(addItemAfter).getItemProperty("value")
+ .setValue(value);
+ transferable.getSourceComponent().removeItem(
+ transferable.getItemId());
+ }
+ });
+
+ TabSheet tabSheet = new TabSheet();
+ tabSheet.addComponent(source1);
+ tabSheet.addComponent(source2);
+
+ addComponent(tabSheet);
+ addComponent(target);
+ }
+
+ private Table createTable(String caption) {
+ Table table = new Table(caption);
+ table.addContainerProperty("value", String.class, "");
+ for (int i = 0; i < 10; i++) {
+ table.addItem(new Object[] { caption + " value " + i },
+ Integer.valueOf(i));
+ }
+ table.setWidth("300px");
+ return table;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Including a component in an accept criterion when the actual component is in a TabSheet and has not yet been painted should still allow painting the component properly when the tab is opened.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(8730);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.html.disabled b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.html.disabled
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.html.disabled
diff --git a/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java
new file mode 100644
index 0000000000..093e12f84a
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/dd/ScrolledDropTarget.java
@@ -0,0 +1,67 @@
+package com.vaadin.tests.dd;
+
+import com.vaadin.event.dd.DragAndDropEvent;
+import com.vaadin.event.dd.DropHandler;
+import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
+import com.vaadin.terminal.gwt.client.ui.dd.VerticalDropLocation;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.AbstractSelect.AbstractSelectTargetDetails;
+import com.vaadin.ui.AbstractSelect.VerticalLocationIs;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.Table.TableDragMode;
+
+public class ScrolledDropTarget extends TestBase {
+ private final Log log = new Log(5);
+
+ @Override
+ protected void setup() {
+
+ Table table = new Table();
+ table.addContainerProperty("A", String.class, "");
+ for (int i = 0; i < 100; i++) {
+ table.addItem(new Object[] { Integer.toString(i) },
+ Integer.valueOf(i));
+ }
+
+ table.setDragMode(TableDragMode.ROW);
+ table.setDropHandler(new DropHandler() {
+ public AcceptCriterion getAcceptCriterion() {
+ return VerticalLocationIs.MIDDLE;
+ }
+
+ public void drop(DragAndDropEvent event) {
+ AbstractSelectTargetDetails targetDetails = (AbstractSelectTargetDetails) event
+ .getTargetDetails();
+ VerticalDropLocation dropLocation = targetDetails
+ .getDropLocation();
+ log.log("Drop at " + dropLocation + " relative to "
+ + targetDetails.getItemIdOver());
+ }
+ });
+
+ addComponent(table);
+ addComponent(new Button("Scroll body", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ getMainWindow().executeJavaScript(
+ "document.body.style.overflow = 'auto';"
+ + "document.body.style.height = '200%';"
+ + "window.scrollTo(0,18)");
+ }
+ }));
+ addComponent(log);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Vertical location for drags should work even when the browser window is scrolled";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(6021);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/debug/DebugWindowPresent.html b/tests/testbench/com/vaadin/tests/debug/DebugWindowPresent.html
index d396c1778e..11640ef6c3 100644
--- a/tests/testbench/com/vaadin/tests/debug/DebugWindowPresent.html
+++ b/tests/testbench/com/vaadin/tests/debug/DebugWindowPresent.html
@@ -13,7 +13,17 @@
</thead><tbody>
<tr>
<td>open</td>
- <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;debug</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;debug&amp;otherparam</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?debug&amp;restartApplication</td>
<td></td>
</tr>
<tr>
@@ -31,6 +41,66 @@
<td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
<td></td>
</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;mode=debug</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?nodebug&amp;restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;nodebug</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;debug=quiet</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?debug=quiet&amp;restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.debug.DebugWindowPresent?restartApplication&amp;debug=quiet#/asdf</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertElementNotPresent</td>
+ <td>vaadin=runcomvaadintestsdebugDebugWindowPresent::Root/VDebugConsole[0]</td>
+ <td></td>
+</tr>
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java b/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
index c84d37cd0f..65f0735ab5 100644
--- a/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
+++ b/tests/testbench/com/vaadin/tests/extensions/JavascriptManagerTest.java
@@ -10,7 +10,8 @@ import com.vaadin.external.json.JSONObject;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.tests.util.Log;
-import com.vaadin.ui.JavascriptCallback;
+import com.vaadin.ui.JavaScript;
+import com.vaadin.ui.JavaScriptCallback;
public class JavascriptManagerTest extends AbstractTestRoot {
@@ -19,7 +20,8 @@ public class JavascriptManagerTest extends AbstractTestRoot {
@Override
protected void setup(WrappedRequest request) {
addComponent(log);
- getJavascriptManager().addCallback("testing", new JavascriptCallback() {
+ final JavaScript js = JavaScript.getCurrent();
+ js.addCallback("testing.doTest", new JavaScriptCallback() {
public void call(JSONArray arguments) throws JSONException {
log.log("Got " + arguments.length() + " arguments");
log.log("Argument 1 as a number: " + arguments.getInt(0));
@@ -28,9 +30,10 @@ public class JavascriptManagerTest extends AbstractTestRoot {
+ arguments.getJSONObject(2).getBoolean("p"));
log.log("Argument 4 is JSONObject.NULL: "
+ (arguments.get(3) == JSONObject.NULL));
+ js.removeCallback("testing.doTest");
}
});
- executeJavaScript("window.testing(42, 'text', {p: true}, null)");
+ js.execute("window.testing.doTest(42, 'text', {p: true}, null)");
}
@Override
diff --git a/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
new file mode 100644
index 0000000000..bbfe3f0f46
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/extensions/SimpleJavaScriptExtensionTest.java
@@ -0,0 +1,116 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.extensions;
+
+import com.vaadin.annotations.LoadScripts;
+import com.vaadin.external.json.JSONArray;
+import com.vaadin.external.json.JSONException;
+import com.vaadin.terminal.AbstractJavaScriptExtension;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.client.JavaScriptExtensionState;
+import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.JavaScriptCallback;
+import com.vaadin.ui.Notification;
+
+@LoadScripts({ "/statictestfiles/jsextension.js" })
+public class SimpleJavaScriptExtensionTest extends AbstractTestRoot {
+
+ public static class SimpleJavaScriptExtensionState extends
+ JavaScriptExtensionState {
+ private String prefix;
+
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+ }
+
+ public static interface SimpleJavaScriptExtensionClientRpc extends
+ ClientRpc {
+ public void greet(String message);
+ }
+
+ public static interface SimpleJavaScriptExtensionServerRpc extends
+ ServerRpc {
+ public void greet(String message);
+ }
+
+ public static class SimpleJavascriptExtension extends
+ AbstractJavaScriptExtension {
+
+ public SimpleJavascriptExtension() {
+ registerRpc(new SimpleJavaScriptExtensionServerRpc() {
+ public void greet(String message) {
+ Notification.show(getState().getPrefix() + message);
+ }
+ });
+ registerCallback("greetToServer", new JavaScriptCallback() {
+ public void call(JSONArray arguments) throws JSONException {
+ Notification.show(getState().getPrefix()
+ + arguments.getString(0));
+ }
+ });
+ }
+
+ @Override
+ public SimpleJavaScriptExtensionState getState() {
+ return (SimpleJavaScriptExtensionState) super.getState();
+ }
+
+ public void setPrefix(String prefix) {
+ getState().setPrefix(prefix);
+ requestRepaint();
+ }
+
+ public void greetRpc(String message) {
+ getRpcProxy(SimpleJavaScriptExtensionClientRpc.class)
+ .greet(message);
+ }
+
+ public void greetCallback(String message) {
+ invokeCallback("greetToClient", message);
+ }
+ }
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ final SimpleJavascriptExtension simpleJavascriptExtension = new SimpleJavascriptExtension();
+ simpleJavascriptExtension.setPrefix("Prefix: ");
+ addExtension(simpleJavascriptExtension);
+ addComponent(new Button("Send rpc greeting",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ simpleJavascriptExtension.greetRpc("Rpc greeting");
+ }
+ }));
+ addComponent(new Button("Send callback greeting",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ simpleJavascriptExtension
+ .greetCallback("Callback greeting");
+ }
+ }));
+ }
+
+ @Override
+ protected String getTestDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/extensions/SimpleJavascriptExtensionTest.java b/tests/testbench/com/vaadin/tests/extensions/SimpleJavascriptExtensionTest.java
deleted file mode 100644
index 92c134efb0..0000000000
--- a/tests/testbench/com/vaadin/tests/extensions/SimpleJavascriptExtensionTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-
-package com.vaadin.tests.extensions;
-
-import com.vaadin.annotations.LoadScripts;
-import com.vaadin.terminal.AbstractJavascriptExtension;
-import com.vaadin.terminal.WrappedRequest;
-import com.vaadin.terminal.gwt.client.communication.ClientRpc;
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;
-import com.vaadin.terminal.gwt.client.communication.SharedState;
-import com.vaadin.tests.components.AbstractTestRoot;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Root;
-
-@LoadScripts({ "/statictestfiles/jsextension.js" })
-public class SimpleJavascriptExtensionTest extends AbstractTestRoot {
-
- public static class SimpleJavascriptExtensionState extends SharedState {
- private String prefix;
-
- public void setPrefix(String prefix) {
- this.prefix = prefix;
- }
-
- public String getPrefix() {
- return prefix;
- }
- }
-
- public static interface SimpleJavascriptExtensionClientRpc extends
- ClientRpc {
- public void greet(String message);
- }
-
- public static interface SimpleJavascriptExtensionServerRpc extends
- ServerRpc {
- public void greet(String message);
- }
-
- public static class SimpleJavascriptExtension extends
- AbstractJavascriptExtension {
-
- public SimpleJavascriptExtension() {
- registerRpc(new SimpleJavascriptExtensionServerRpc() {
- public void greet(String message) {
- Root.getCurrentRoot().showNotification(
- getState().getPrefix() + message);
- }
- });
- }
-
- @Override
- public SimpleJavascriptExtensionState getState() {
- return (SimpleJavascriptExtensionState) super.getState();
- }
-
- public void setPrefix(String prefix) {
- getState().setPrefix(prefix);
- requestRepaint();
- }
-
- public void greet(String message) {
- getRpcProxy(SimpleJavascriptExtensionClientRpc.class)
- .greet(message);
- }
- }
-
- @Override
- protected void setup(WrappedRequest request) {
- final SimpleJavascriptExtension simpleJavascriptExtension = new SimpleJavascriptExtension();
- simpleJavascriptExtension.setPrefix("Prefix: ");
- addExtension(simpleJavascriptExtension);
- addComponent(new Button("Send greeting", new Button.ClickListener() {
- public void buttonClick(ClickEvent event) {
- simpleJavascriptExtension.greet("Greeted by button");
- }
- }));
- }
-
- @Override
- protected String getTestDescription() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- protected Integer getTicketNumber() {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java b/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
index 584ce0ec36..b73a29efea 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/AbstractBeanFieldGroupTest.java
@@ -7,7 +7,7 @@ import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.Root;
+import com.vaadin.ui.Notification;
public abstract class AbstractBeanFieldGroupTest extends TestBase {
@@ -64,7 +64,7 @@ public abstract class AbstractBeanFieldGroupTest extends TestBase {
} catch (CommitException e) {
msg = "Commit failed: " + e.getMessage();
}
- Root.getCurrentRoot().showNotification(msg);
+ Notification.show(msg);
log.log(msg);
}
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java b/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
index f95c172348..c86cb6f5e8 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/BasicPersonForm.java
@@ -18,8 +18,8 @@ import com.vaadin.tests.data.bean.Sex;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
-import com.vaadin.ui.Root;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
@@ -125,7 +125,7 @@ public class BasicPersonForm extends TestBase {
} catch (CommitException e) {
msg = "Commit failed: " + e.getMessage();
}
- Root.getCurrentRoot().showNotification(msg);
+ Notification.show(msg);
log.log(msg);
}
diff --git a/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java b/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
index 9ff553ce61..6c6cd8024b 100644
--- a/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
+++ b/tests/testbench/com/vaadin/tests/fieldgroup/FieldBinderWithBeanValidation.java
@@ -13,7 +13,7 @@ import com.vaadin.tests.data.bean.Sex;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Root;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
@@ -52,7 +52,7 @@ public class FieldBinderWithBeanValidation extends TestBase {
} catch (CommitException e) {
msg = "Commit failed: " + e.getMessage();
}
- Root.getCurrentRoot().showNotification(msg);
+ Notification.show(msg);
log.log(msg);
}
diff --git a/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java b/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
index eb26faacc0..1b6d384e70 100644
--- a/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
+++ b/tests/testbench/com/vaadin/tests/integration/EmbedSizeTest.java
@@ -2,11 +2,12 @@ package com.vaadin.tests.integration;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.Page.BrowserWindowResizeEvent;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.CheckBox;
-import com.vaadin.ui.Root;
-import com.vaadin.ui.Root.BrowserWindowResizeEvent;
+import com.vaadin.ui.Root.LegacyWindow;
public class EmbedSizeTest extends TestBase {
@@ -14,14 +15,13 @@ public class EmbedSizeTest extends TestBase {
@Override
protected void setup() {
- Root mainWindow = getMainWindow();
+ LegacyWindow mainWindow = getMainWindow();
mainWindow.setSizeUndefined();
mainWindow.getContent().setSizeUndefined();
mainWindow.setImmediate(true);
CheckBox lazyCheckBox = new CheckBox("Lazy resize");
lazyCheckBox.addListener(new ValueChangeListener() {
-
public void valueChange(ValueChangeEvent event) {
CheckBox cb = (CheckBox) event.getProperty();
Boolean resizeLazy = cb.getValue();
@@ -34,11 +34,10 @@ public class EmbedSizeTest extends TestBase {
addComponent(lazyCheckBox);
addComponent(log);
- mainWindow.addListener(new Root.BrowserWindowResizeListener() {
+ mainWindow.addListener(new Page.BrowserWindowResizeListener() {
public void browserWindowResized(BrowserWindowResizeEvent event) {
log.log("Resize event: " + event.getWidth() + " x "
+ event.getHeight());
-
}
});
}
diff --git a/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java b/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java
index e022a8bf30..913ce8f54c 100644
--- a/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java
+++ b/tests/testbench/com/vaadin/tests/integration/JSR286PortletRoot.java
@@ -86,7 +86,7 @@ public class JSR286PortletRoot extends Root {
.getContext();
ctx.addPortletListener(getApplication(), new DemoPortletListener());
} else {
- showNotification("Not inited via Portal!",
+ Notification.show("Not inited via Portal!",
Notification.TYPE_ERROR_MESSAGE);
}
@@ -109,7 +109,7 @@ public class JSR286PortletRoot extends Root {
tf.setEnabled((request.getPortletMode() == PortletMode.EDIT));
// Show notification about current mode and state
- showNotification(
+ Notification.show(
"Portlet status",
"Mode: " + request.getPortletMode() + " State: "
+ request.getWindowState(),
diff --git a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
index 0250658bc9..8b7f498b0e 100644
--- a/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
+++ b/tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
@@ -595,10 +595,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
Button show = new Button("Humanized Notification",
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- event.getButton()
- .getRoot()
- .showNotification(title.getValue(),
- message.getValue());
+ Notification.show(title.getValue(), message.getValue());
}
});
@@ -607,10 +604,8 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Warning", ContentMode.XHTML));
show = new Button("Warning Notification", new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- event.getButton()
- .getRoot()
- .showNotification(title.getValue(), message.getValue(),
- Notification.TYPE_WARNING_MESSAGE);
+ Notification.show(title.getValue(), message.getValue(),
+ Notification.TYPE_WARNING_MESSAGE);
}
});
@@ -619,10 +614,8 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Error", ContentMode.XHTML));
show = new Button("Error Notification", new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- event.getButton()
- .getRoot()
- .showNotification(title.getValue(), message.getValue(),
- Notification.TYPE_ERROR_MESSAGE);
+ Notification.show(title.getValue(), message.getValue(),
+ Notification.TYPE_ERROR_MESSAGE);
}
});
@@ -631,10 +624,8 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
l.addComponent(new Label("Tray", ContentMode.XHTML));
show = new Button("Tray Notification", new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- event.getButton()
- .getRoot()
- .showNotification(title.getValue(), message.getValue(),
- Notification.TYPE_TRAY_NOTIFICATION);
+ Notification.show(title.getValue(), message.getValue(),
+ Notification.TYPE_TRAY_NOTIFICATION);
}
});
diff --git a/tests/testbench/com/vaadin/tests/integration/PortletSizeInLiferayFreeformLayoutApplication.java b/tests/testbench/com/vaadin/tests/integration/PortletSizeInLiferayFreeformLayoutApplication.java
new file mode 100644
index 0000000000..20967203bc
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/integration/PortletSizeInLiferayFreeformLayoutApplication.java
@@ -0,0 +1,31 @@
+package com.vaadin.tests.integration;
+
+import com.vaadin.Application.LegacyApplication;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root.LegacyWindow;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * On Liferay in a freeform layout, this application should get its height from
+ * the height of the portlet container in the Liferay layout.
+ *
+ * See ticket #5521.
+ */
+public class PortletSizeInLiferayFreeformLayoutApplication extends
+ LegacyApplication {
+ @Override
+ public void init() {
+ LegacyWindow mainWindow = new LegacyWindow("Portlet5521 Application");
+ ((VerticalLayout) mainWindow.getContent()).setMargin(false);
+ ((VerticalLayout) mainWindow.getContent()).setSizeFull();
+ // ((VerticalLayout) mainWindow.getContent()).setHeight("200px");
+ Label label = new Label("Hello Vaadin user");
+ mainWindow.addComponent(label);
+ for (int i = 0; i < 50; ++i) {
+ mainWindow.addComponent(new Label("Label " + i));
+ }
+ mainWindow.setSizeFull();
+ setMainWindow(mainWindow);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
index 1fe33d62ca..9ad9adb43a 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutCaptions.java
@@ -28,6 +28,7 @@ public class GridLayoutCaptions extends TestBase {
private CssLayout wrapper2 = new CssLayout();
private FormFieldFactory fff = new FormFieldFactory() {
+
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
@@ -177,11 +178,10 @@ public class GridLayoutCaptions extends TestBase {
@Override
protected void setup() {
- LegacyWindow mainWindow = new LegacyWindow(
- "Formlayoutcaptionboom Application");
+ LegacyWindow mainWindow = getMainWindow();
+
Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
- setMainWindow(mainWindow);
DataPOJO forDemo = new DataPOJO();
@@ -194,6 +194,7 @@ public class GridLayoutCaptions extends TestBase {
mainWindow.addComponent(aFormWithGl);
Button b = new Button("Give me an error!", new Button.ClickListener() {
+
public void buttonClick(ClickEvent event) {
aFormWithGl.createErrors();
@@ -203,6 +204,7 @@ public class GridLayoutCaptions extends TestBase {
Button b2 = new Button("Get rid of an error!",
new Button.ClickListener() {
+
public void buttonClick(ClickEvent event) {
aFormWithGl.clearErrors();
diff --git a/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java b/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
index f7f4ac2d4c..314a8d7b03 100644
--- a/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
+++ b/tests/testbench/com/vaadin/tests/layouts/GridLayoutExpandRatioModification.java
@@ -21,10 +21,10 @@ public class GridLayoutExpandRatioModification extends TestBase implements
@Override
public void setup() {
- LegacyWindow main = new LegacyWindow("The Main Window");
+ LegacyWindow main = getMainWindow();
+
mainLayout = new GridLayout(3, 3);
main.setContent(mainLayout);
- setMainWindow(main);
// The upper layout
vl1 = new VerticalLayout();
diff --git a/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.html b/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.html
index 317e13ac80..2cc695e4fa 100644
--- a/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.html
+++ b/tests/testbench/com/vaadin/tests/layouts/TestLayoutClickListeners.html
@@ -59,8 +59,8 @@
</tr>
<tr>
<td>mouseClick</td>
- <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/domChild[0]</td>
- <td>87,42</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/domChild[0]/domChild[0]</td>
+ <td>491,79</td>
</tr>
<tr>
<td>waitForVaadin</td>
@@ -185,6 +185,130 @@
<td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
<td>exact:Button A button with its own click listener was clicked</td>
</tr>
+<!--Drag in GridLayout-->
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>40,8</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>40,8</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:GridLayout: left click on This is label 1</td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[0]/VLabel[0]</td>
+ <td>24,7</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[4]/VTextField[0]</td>
+ <td>46,13</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:GridLayout: left click on This is label 1</td>
+</tr>
+<!--Drag in VerticalLayout-->
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
+ <td>25,9</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td>
+ <td>25,9</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:VerticalLayout: left click on This is tf5</td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[8]/domChild[0]/domChild[0]</td>
+ <td>28,11</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VTextField[0]</td>
+ <td>39,7</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:VerticalLayout: left click on This is tf5</td>
+</tr>
+<!--Drag in AbsoluteLayout-->
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VAbsoluteLayout[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>21,9</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VAbsoluteLayout[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td>21,9</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:AbsoluteLayout: left click on This is its caption</td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VAbsoluteLayout[0]/VAbsoluteLayout$AbsoluteWrapper[0]/VTextField[0]</td>
+ <td>54,7</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VAbsoluteLayout[0]/VAbsoluteLayout$AbsoluteWrapper[1]/VTextField[0]</td>
+ <td>52,10</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:AbsoluteLayout: left click on This is its caption</td>
+</tr>
+<!--Drag in CSSLayout-->
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[3]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTextField[0]</td>
+ <td>51,7</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[3]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTextField[0]</td>
+ <td>51,7</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:CSSLayout: left click on This is its caption</td>
+</tr>
+<tr>
+ <td>drag</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[3]/VCssLayout[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]</td>
+ <td>31,7</td>
+</tr>
+<tr>
+ <td>drop</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[3]/VCssLayout[0]/VCssLayout$FlowPane[0]/VTextField[1]</td>
+ <td>33,7</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestslayoutsTestLayoutClickListeners::PID_SLog_row_0</td>
+ <td>exact:CSSLayout: left click on This is its caption</td>
+</tr>
</tbody></table>
</body>
</html>
diff --git a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
index d41b288e03..44a1e27cb8 100644
--- a/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
+++ b/tests/testbench/com/vaadin/tests/layouts/VerticalLayoutExpandRatioModification.java
@@ -20,10 +20,10 @@ public class VerticalLayoutExpandRatioModification extends TestBase implements
@Override
public void setup() {
- LegacyWindow main = new LegacyWindow("The Main Window");
+ LegacyWindow main = getMainWindow();
+
mainLayout = new VerticalLayout();
main.setContent(mainLayout);
- setMainWindow(main);
// The upper layout
vl1 = new VerticalLayout();
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/AutoGeneratingForm.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/AutoGeneratingForm.java
new file mode 100644
index 0000000000..8eef5c08e8
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/AutoGeneratingForm.java
@@ -0,0 +1,77 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.data.fieldgroup.BeanFieldGroup;
+import com.vaadin.data.fieldgroup.FieldGroup;
+import com.vaadin.data.util.BeanItem;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Root;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Auto%20generating%20
+ * a%20form%20based%20on%20a%20bean%20-%20Vaadin%206%20style%20Form
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class AutoGeneratingForm extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ FieldGroup fieldGroup = new BeanFieldGroup<Person>(Person.class);
+
+ // We need an item data source before we create the fields to be able to
+ // find the properties, otherwise we have to specify them by hand
+ fieldGroup.setItemDataSource(new BeanItem<Person>(new Person("John",
+ "Doe", 34)));
+
+ // Loop through the properties, build fields for them and add the fields
+ // to this root
+ for (Object propertyId : fieldGroup.getUnboundPropertyIds()) {
+ addComponent(fieldGroup.buildAndBind(propertyId));
+ }
+ }
+
+}
+
+class Person {
+ private String firstName, lastName;
+ private int age;
+
+ // + setters and getters
+
+ public Person(String firstName, String lastName, int age) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.age = age;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/BasicApplication.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/BasicApplication.java
new file mode 100644
index 0000000000..3907209097
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/BasicApplication.java
@@ -0,0 +1,28 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Creating%20a%20basic%20application
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class BasicApplication extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ VerticalLayout view = new VerticalLayout();
+ view.addComponent(new Label("Hello Vaadin!"));
+ setContent(view);
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/CreatingPreserveState.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/CreatingPreserveState.java
new file mode 100644
index 0000000000..c175fd6065
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/CreatingPreserveState.java
@@ -0,0 +1,31 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.TextField;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Creating%20an%20application
+ * %20that%20preserves%20state%20on%20refresh
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class CreatingPreserveState extends Root {
+ private static int windowCounter = 0;
+
+ @Override
+ public void init(WrappedRequest request) {
+ TextField tf = new TextField("Window #" + (++windowCounter));
+ tf.setImmediate(true);
+ getContent().addComponent(tf);
+ getApplication().setRootPreserved(true);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/CustomConverterFactoryRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/CustomConverterFactoryRoot.java
index de32a817a1..89b4a0f8db 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/CustomConverterFactoryRoot.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/CustomConverterFactoryRoot.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.terminal.WrappedRequest;
import com.vaadin.tests.components.AbstractTestRoot;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DefineRootTheme.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DefineRootTheme.java
new file mode 100644
index 0000000000..3bd17547fa
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DefineRootTheme.java
@@ -0,0 +1,31 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Defining%20the%20theme%20for%20a%20Root
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+@Theme("hello-theme")
+public class DefineRootTheme extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ VerticalLayout view = new VerticalLayout();
+ view.addComponent(new Label("Hello Vaadin"));
+ setContent(view);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DifferentFeaturesForDifferentClients.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DifferentFeaturesForDifferentClients.java
new file mode 100644
index 0000000000..cf4c3b9267
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DifferentFeaturesForDifferentClients.java
@@ -0,0 +1,63 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.Application;
+import com.vaadin.RootRequiresMoreInformationException;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.WrappedRequest.BrowserDetails;
+import com.vaadin.terminal.gwt.server.WebBrowser;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Creating%20an%20application
+ * %20with%20different%20features%20for%20different%20clients
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class DifferentFeaturesForDifferentClients extends Application {
+
+ @Override
+ protected Root getRoot(WrappedRequest request)
+ throws RootRequiresMoreInformationException {
+ BrowserDetails browserDetails = request.getBrowserDetails();
+ // This is a limitation of 7.0.0.alpha1 that there is no better way to
+ // check if WebBrowser has been fully initialized
+ if (browserDetails.getUriFragment() == null) {
+ throw new RootRequiresMoreInformationException();
+ }
+
+ // could also use screen size, browser version etc.
+ if (browserDetails.getWebBrowser().isTouchDevice()) {
+ return new TouchRoot();
+ } else {
+ return new DefaultRoot();
+ }
+ }
+}
+
+class DefaultRoot extends Root {
+ @Override
+ protected void init(WrappedRequest request) {
+ getContent().addComponent(
+ new Label("This browser does not support touch events"));
+ }
+}
+
+class TouchRoot extends Root {
+ @Override
+ protected void init(WrappedRequest request) {
+ WebBrowser webBrowser = request.getBrowserDetails().getWebBrowser();
+ String screenSize = "" + webBrowser.getScreenWidth() + "x"
+ + webBrowser.getScreenHeight();
+ getContent().addComponent(
+ new Label("Using a touch enabled device with screen size"
+ + screenSize));
+ }
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/DynamicImageRoot.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java
index a0e6a54c41..9ed2bd2c75 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/DynamicImageRoot.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/DynamicImageRoot.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import java.awt.image.BufferedImage;
import java.io.IOException;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java
new file mode 100644
index 0000000000..c6e609c5ee
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FindCurrentRootAndApplication.java
@@ -0,0 +1,44 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.Application;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.Root;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Finding%20the%20current
+ * %20Root%20and%20Application
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class FindCurrentRootAndApplication extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ Button helloButton = new Button("Say Hello");
+ helloButton.addListener(new ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ String msg = "Running in ";
+ msg += Application.getCurrentApplication().isProductionMode() ? "production"
+ : "debug";
+ msg += " mode in a Root with the caption "
+ + Root.getCurrentRoot().getCaption();
+
+ Notification.show(msg);
+ }
+ });
+
+ addComponent(helloButton);
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/FormUsingExistingLayout.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormUsingExistingLayout.java
index 9d20867d24..1e460b2f6e 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/FormUsingExistingLayout.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormUsingExistingLayout.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.data.fieldgroup.FieldGroup;
import com.vaadin.data.fieldgroup.PropertyId;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/FormatTableValue.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormatTableValue.java
index aba1447d2c..e487c6d3c4 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/FormatTableValue.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/FormatTableValue.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import java.text.NumberFormat;
import java.util.Locale;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldDataSource.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java
index 5c0efea3ea..dd32242062 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldDataSource.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.data.Property;
import com.vaadin.data.util.BeanItem;
@@ -8,7 +8,7 @@ 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.Root;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.TextField;
public class IntegerTextFieldDataSource extends AbstractTestRoot {
@@ -40,12 +40,9 @@ public class IntegerTextFieldDataSource extends AbstractTestRoot {
Integer propertyValue = integerProperty.getValue();
int dataModelValue = myBean.getValue();
- Root.getCurrentRoot().showNotification(
- "UI value (String): " + uiValue
- + "<br />Property value (Integer): "
- + propertyValue
- + "<br />Data model value (int): "
- + dataModelValue);
+ Notification.show("UI value (String): " + uiValue
+ + "<br />Property value (Integer): " + propertyValue
+ + "<br />Data model value (int): " + dataModelValue);
}
});
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldStandalone.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java
index 45bc49ba72..9c720e45a5 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/IntegerTextFieldStandalone.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldStandalone.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.data.util.converter.Converter.ConversionException;
import com.vaadin.data.util.converter.StringToIntegerConverter;
@@ -8,7 +8,7 @@ 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.Root;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.TextField;
public class IntegerTextFieldStandalone extends AbstractTestRoot {
@@ -24,14 +24,12 @@ public class IntegerTextFieldStandalone extends AbstractTestRoot {
try {
Integer convertedValue = (Integer) textField
.getConvertedValue();
- Root.getCurrentRoot().showNotification(
- "UI value (String): " + uiValue
- + "<br />Converted value (Integer): "
- + convertedValue);
+ Notification.show("UI value (String): " + uiValue
+ + "<br />Converted value (Integer): "
+ + convertedValue);
} catch (ConversionException e) {
e.printStackTrace();
- Root.getCurrentRoot().showNotification(
- "Could not convert value: " + uiValue);
+ Notification.show("Could not convert value: " + uiValue);
}
}
});
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MultiTabApplication.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MultiTabApplication.java
new file mode 100644
index 0000000000..89c6ef52c4
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MultiTabApplication.java
@@ -0,0 +1,51 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.terminal.ExternalResource;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Link;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Creating%20multi%20tab%20applications
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class MultiTabApplication extends Root {
+
+ private class MainView extends VerticalLayout {
+ public MainView() {
+ addComponent(new Link("Edit person 1", new ExternalResource(
+ "?editPerson=person1")));
+ addComponent(new Link("Edit person 2", new ExternalResource(
+ "?editPerson=person2")));
+ }
+ }
+
+ private class EditPersonView extends VerticalLayout {
+
+ public EditPersonView(String person) {
+ addComponent(new Label("Editor for " + person));
+ }
+
+ }
+
+ @Override
+ public void init(WrappedRequest request) {
+ String person = request.getParameter("editPerson");
+ if (person == null) {
+ setContent(new MainView());
+ } else {
+ setContent(new EditPersonView(person));
+ }
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/MyConverterFactory.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyConverterFactory.java
index 456654e10a..17c37f2115 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/MyConverterFactory.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyConverterFactory.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import com.vaadin.data.util.converter.Converter;
import com.vaadin.data.util.converter.DefaultConverterFactory;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/MyStringToDoubleConverter.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyStringToDoubleConverter.java
index 38268bdf68..483f841ce2 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/MyStringToDoubleConverter.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/MyStringToDoubleConverter.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import java.text.NumberFormat;
import java.util.Locale;
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/StringMyTypeConverter.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java
index e28788f743..4ccd73b2b3 100644
--- a/tests/testbench/com/vaadin/tests/minitutorials/StringMyTypeConverter.java
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/StringMyTypeConverter.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.minitutorials;
+package com.vaadin.tests.minitutorials.v7a1;
import java.util.Locale;
@@ -9,6 +9,7 @@ import com.vaadin.tests.components.AbstractTestRoot;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.TextField;
public class StringMyTypeConverter extends AbstractTestRoot {
@@ -26,12 +27,11 @@ public class StringMyTypeConverter extends AbstractTestRoot {
public void buttonClick(ClickEvent event) {
try {
Name name = (Name) textField.getConvertedValue();
- getRoot().showNotification(
- "First name: " + name.getFirstName()
- + "<br />Last name: " + name.getLastName());
+ Notification.show("First name: " + name.getFirstName()
+ + "<br />Last name: " + name.getLastName());
} catch (ConversionException e) {
e.printStackTrace();
- getRoot().showNotification(e.getCause().getMessage());
+ Notification.show(e.getCause().getMessage());
}
}
}));
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingBeanValidation.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingBeanValidation.java
new file mode 100644
index 0000000000..eb297ebd36
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingBeanValidation.java
@@ -0,0 +1,74 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Size;
+
+import com.vaadin.data.util.BeanItem;
+import com.vaadin.data.validator.BeanValidator;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.TextField;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Using%20Bean%20Validation
+ * %20to%20validate%20input
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class UsingBeanValidation extends Root {
+ class Person {
+
+ @Size(min = 5, max = 50)
+ private String name;
+
+ @Min(0)
+ @Max(100)
+ private int age;
+
+ // + constructor + setters + getters
+
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ private void setN() {
+ // TODO Auto-generated method stub
+
+ }
+ }
+
+ @Override
+ protected void init(WrappedRequest request) {
+ Person person = new Person("John", 26);
+ BeanItem<Person> item = new BeanItem<Person>(person);
+
+ TextField firstName = new TextField("First name",
+ item.getItemProperty("name"));
+ firstName.setImmediate(true);
+ addComponent(firstName);
+
+ firstName.addValidator(new BeanValidator(Person.class, "name"));
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java
new file mode 100644
index 0000000000..e98b698c07
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingUriFragments.java
@@ -0,0 +1,54 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.terminal.Page.FragmentChangedEvent;
+import com.vaadin.terminal.Page.FragmentChangedListener;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Using%20URI%20fragments
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class UsingUriFragments extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ Label label = new Label("Hello, your fragment is "
+ + request.getBrowserDetails().getUriFragment());
+ getContent().addComponent(label);
+
+ // React to fragment changes
+ getPage().addListener(new FragmentChangedListener() {
+ public void fragmentChanged(FragmentChangedEvent source) {
+ handleFragment(source.getFragment());
+ }
+ });
+
+ // Handle the fragment received in the initial request
+ handleFragment(request.getBrowserDetails().getUriFragment());
+
+ addComponent(new Button("Show and set fragment",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ handleFragment(getPage().getFragment());
+ getPage().setFragment("customFragment");
+ }
+ }));
+ }
+
+ private void handleFragment(String uriFragment) {
+ addComponent(new Label("Got new fragment: " + uriFragment));
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingXyzWhenInitializing.java b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingXyzWhenInitializing.java
new file mode 100644
index 0000000000..426ef3525e
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/minitutorials/v7a1/UsingXyzWhenInitializing.java
@@ -0,0 +1,52 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.minitutorials.v7a1;
+
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+
+/**
+ * Mini tutorial code for
+ * https://vaadin.com/wiki/-/wiki/Main/Using%20URI%20or%20
+ * parameters%20or%20screen%20size%20when%20initializing%20an%20application
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ */
+public class UsingXyzWhenInitializing extends Root {
+
+ @Override
+ protected void init(WrappedRequest request) {
+ String name = request.getParameter("name");
+ if (name == null) {
+ name = "Unknown";
+ }
+
+ getContent().addComponent(new Label("Hello " + name));
+
+ String pathInfo = request.getRequestPathInfo();
+ if ("/viewSource".equals(pathInfo)) {
+ getContent().addComponent(new Label("This is the source"));
+ } else {
+ getContent().addComponent(new Label("Welcome to my application"));
+ }
+
+ // WebBrowser browser = request.getBrowserDetails().getWebBrowser();
+ // String resolution = "Your browser window on startup was "
+ // + browser.getClientWidth() + "x" + browser.getClientHeight();
+ // if (browser.getClientWidth() > 1024) {
+ // getContent().addComponent(
+ // new Label("The is the large version of the application. "
+ // + resolution));
+ // } else {
+ // getContent().addComponent(
+ // new Label("This is the small version of the application. "
+ // + resolution));
+ // }
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java b/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
index 9459c7cc85..9a777d655c 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket1465ModalNotification.java
@@ -5,7 +5,6 @@ import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
import com.vaadin.ui.Notification;
-import com.vaadin.ui.Root;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Window;
@@ -25,7 +24,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- Root.getCurrentRoot().showNotification(
+ Notification.show(
"Try clicking the button in main window!",
Notification.TYPE_ERROR_MESSAGE);
@@ -37,7 +36,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- Root.getCurrentRoot().showNotification(
+ Notification.show(
"Try clicking the button in main window!",
Notification.TYPE_WARNING_MESSAGE);
}
@@ -48,7 +47,7 @@ public class Ticket1465ModalNotification extends Application.LegacyApplication {
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- Root.getCurrentRoot().showNotification(
+ Notification.show(
"Try clicking the button in main window!",
Notification.TYPE_HUMANIZED_MESSAGE);
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
index 6cf5c8f754..a3ff6808dc 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket2998.java
@@ -20,6 +20,7 @@ import com.vaadin.ui.Field;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.Layout;
import com.vaadin.ui.ListSelect;
+import com.vaadin.ui.Notification;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.Table;
@@ -181,8 +182,7 @@ public class Ticket2998 extends Application.LegacyApplication {
@SuppressWarnings("unused")
float f = Float.parseFloat((String) value);
} catch (Exception e) {
- f.getRoot()
- .showNotification("Bad number value");
+ Notification.show("Bad number value");
f.setValue(0);
}
}
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket34.java b/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
index 1c55bcbe7d..f6fbe05e38 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket34.java
@@ -4,13 +4,13 @@ import java.util.HashMap;
import java.util.Map;
import com.vaadin.Application;
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.Page.FragmentChangedEvent;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
-import com.vaadin.ui.Root;
-import com.vaadin.ui.Root.FragmentChangedEvent;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
@@ -32,7 +32,7 @@ public class Ticket34 extends Application.LegacyApplication {
"Test app for URI fragment management/reading", mainLayout);
setMainWindow(mainWin);
- mainWin.addListener(new Root.FragmentChangedListener() {
+ mainWin.getPage().addListener(new Page.FragmentChangedListener() {
public void fragmentChanged(FragmentChangedEvent event) {
getMainWindow().showNotification(
@@ -93,7 +93,7 @@ public class Ticket34 extends Application.LegacyApplication {
public void buttonClick(ClickEvent event) {
String viewName = tf.getValue().toString();
// fragmentChangedListener will change the view if possible
- event.getButton().getRoot().setFragment(viewName);
+ event.getButton().getRoot().getPage().setFragment(viewName);
}
});
diff --git a/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java b/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
index 0875e3de48..c68dc9d534 100644
--- a/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
+++ b/tests/testbench/com/vaadin/tests/tickets/Ticket6002.java
@@ -13,8 +13,7 @@ public class Ticket6002 extends TestBase {
@Override
public void setup() {
- LegacyWindow main = new LegacyWindow("The Main Window");
- setMainWindow(main);
+ LegacyWindow main = getMainWindow();
final VerticalLayout mainLayout = new VerticalLayout();
main.setContent(mainLayout);
@@ -32,6 +31,7 @@ public class Ticket6002 extends TestBase {
final TextField tf1 = new TextField(
"Changing this field modifies only the textfield", property1);
tf1.addListener(new Property.ValueChangeListener() {
+
public void valueChange(ValueChangeEvent event) {
// This value change event is called twice if the new
// input value is an integer. The second time is during
@@ -56,6 +56,7 @@ public class Ticket6002 extends TestBase {
"Changing this field modifies the layout - do it twice",
property2);
tf2.addListener(new Property.ValueChangeListener() {
+
public void valueChange(ValueChangeEvent event) {
// This value change event is called twice if the new
// input value is an integer. The second time is during
diff --git a/tests/testbench/com/vaadin/tests/util/TestUtils.java b/tests/testbench/com/vaadin/tests/util/TestUtils.java
index 551e7a7ed8..a9e1518c54 100644
--- a/tests/testbench/com/vaadin/tests/util/TestUtils.java
+++ b/tests/testbench/com/vaadin/tests/util/TestUtils.java
@@ -112,7 +112,7 @@ public class TestUtils {
+ "document.body.style.WebkitAppearance=='string') /* webkit only */ ? 'innerText' "
+ ": 'innerHTML'] = '" + cssString + "';}";
- w.executeJavaScript(script);
+ w.getPage().getJavaScript().execute(script);
}
public static IndexedContainer getISO3166Container() {
diff --git a/tests/testbench/com/vaadin/tests/validation/RequiredErrorMessage.java b/tests/testbench/com/vaadin/tests/validation/RequiredErrorMessage.java
index e18b8ffd4e..7b03bc7ec2 100644
--- a/tests/testbench/com/vaadin/tests/validation/RequiredErrorMessage.java
+++ b/tests/testbench/com/vaadin/tests/validation/RequiredErrorMessage.java
@@ -1,12 +1,12 @@
package com.vaadin.tests.validation;
-import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.components.AbstractTestCase;
import com.vaadin.ui.Form;
import com.vaadin.ui.Root.LegacyWindow;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
-public class RequiredErrorMessage extends TestBase {
+public class RequiredErrorMessage extends AbstractTestCase {
@Override
protected Integer getTicketNumber() {
@@ -19,7 +19,7 @@ public class RequiredErrorMessage extends TestBase {
}
@Override
- public void setup() {
+ public void init() {
final LegacyWindow main = new LegacyWindow(getClass().getName());
setMainWindow(main);