aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin')
-rw-r--r--src/com/vaadin/Application.java11
-rw-r--r--src/com/vaadin/data/util/HierarchicalContainer.java36
-rw-r--r--src/com/vaadin/data/util/IndexedContainer.java17
-rw-r--r--src/com/vaadin/demo/sampler/SamplerApplication.java55
-rw-r--r--src/com/vaadin/demo/sampler/features/notifications/NotificationCustomExample.java2
-rwxr-xr-xsrc/com/vaadin/terminal/gwt/client/ApplicationConnection.java4
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VForm.java3
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VTextField.java8
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java2
-rw-r--r--src/com/vaadin/terminal/gwt/server/CommunicationManager.java7
-rw-r--r--src/com/vaadin/tests/applicationservlet/NoMainWindow.java22
-rw-r--r--src/com/vaadin/tests/components/HierarchicalContainerSorting.java97
-rw-r--r--src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutClipping.html27
-rw-r--r--src/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.html72
-rw-r--r--src/com/vaadin/tests/components/accordion/RemoveTabs.html122
-rw-r--r--src/com/vaadin/tests/components/beanitemcontainer/TestBeanItemContainerUsage.html37
-rw-r--r--src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html82
-rw-r--r--src/com/vaadin/tests/components/button/DisabledButtons.html32
-rw-r--r--src/com/vaadin/tests/components/button/IE7ButtonWithIcon.html32
-rw-r--r--src/com/vaadin/tests/components/button/TooltipForDisabledButton.html92
-rw-r--r--src/com/vaadin/tests/components/caption/LargeCaptionIcon.html37
-rw-r--r--src/com/vaadin/tests/components/checkbox/CheckboxCaptionWrapping.html32
-rw-r--r--src/com/vaadin/tests/components/checkbox/CheckboxIcon.html62
-rw-r--r--src/com/vaadin/tests/components/checkbox/CheckboxIcon.java2
-rw-r--r--src/com/vaadin/tests/components/combobox/ComboBoxItemIcon.html57
-rw-r--r--src/com/vaadin/tests/components/combobox/ComboBoxNavigation.html82
-rw-r--r--src/com/vaadin/tests/components/datefield/DateFieldReadOnly.html77
-rw-r--r--src/com/vaadin/tests/components/datefield/DateFieldReadOnly.java6
-rw-r--r--src/com/vaadin/tests/components/datefield/TestDatefieldYear.html92
-rw-r--r--src/com/vaadin/tests/components/embedded/EmbeddedTooltip.html42
-rw-r--r--src/com/vaadin/tests/components/form/FormCommitWithInvalidValues.html112
-rw-r--r--src/com/vaadin/tests/components/form/FormNotGettingSmaller.java51
-rw-r--r--src/com/vaadin/tests/components/form/FormRenderingFlicker.html42
-rw-r--r--src/com/vaadin/tests/components/label/HundredPercentWideLabelResize.html62
-rw-r--r--src/com/vaadin/tests/components/label/LabelWrapping.html62
-rw-r--r--src/com/vaadin/tests/components/link/LinkIcon.html27
-rw-r--r--src/com/vaadin/tests/components/link/LinkIcon.java2
-rw-r--r--src/com/vaadin/tests/components/link/LinkTargetSize.html42
-rw-r--r--src/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.html47
-rw-r--r--src/com/vaadin/tests/components/popupview/PopupViewOffScreen.html47
-rw-r--r--src/com/vaadin/tests/components/richtextarea/RichTextAreaSize.html32
-rw-r--r--src/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.html47
-rw-r--r--src/com/vaadin/tests/components/table/ClippedComponentsInTable.html32
-rw-r--r--src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html57
-rw-r--r--src/com/vaadin/tests/components/table/ColumnExpandRatio.html32
-rw-r--r--src/com/vaadin/tests/components/table/ColumnExpandWithFixedColumns.html32
-rw-r--r--src/com/vaadin/tests/components/table/ContainerSizeChange.html82
-rw-r--r--src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html52
-rw-r--r--src/com/vaadin/tests/components/table/MissingScrollbar.html57
-rw-r--r--src/com/vaadin/tests/components/table/ModifyContainerProperty.java57
-rw-r--r--src/com/vaadin/tests/components/table/PropertyValueChange.html87
-rw-r--r--src/com/vaadin/tests/components/table/RowAdditionTest.html157
-rw-r--r--src/com/vaadin/tests/components/table/TableLastRowMissing.html32
-rw-r--r--src/com/vaadin/tests/components/table/TablePageLengthUpdate.html127
-rw-r--r--src/com/vaadin/tests/components/table/TableRowHeight.html32
-rw-r--r--src/com/vaadin/tests/components/table/TableRowHeight2.html57
-rw-r--r--src/com/vaadin/tests/components/table/TableRowHeight3.html27
-rw-r--r--src/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.html77
-rw-r--r--src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html57
-rw-r--r--src/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.html117
-rw-r--r--src/com/vaadin/tests/components/tabsheet/PreventTabChange.html77
-rw-r--r--src/com/vaadin/tests/components/tabsheet/RemoveTabsTabsheet.html112
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.html77
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java12
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetDisabling.html162
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetIcons.html27
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetIcons.java4
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabSheetWithoutTabCaption.html32
-rw-r--r--src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html82
-rw-r--r--src/com/vaadin/tests/components/tabsheet/VerticalScrollbarPosition.html77
-rw-r--r--src/com/vaadin/tests/components/textfield/IE6Cursor.java27
-rw-r--r--src/com/vaadin/tests/components/tree/TreeNodeCaptionWrapping.html37
-rw-r--r--src/com/vaadin/tests/components/window/CenteredWindowWithUndefinedSize.html32
-rw-r--r--src/com/vaadin/tests/components/window/EmbeddedInSubWindow.html32
-rw-r--r--src/com/vaadin/tests/components/window/SubWindowOrder.java28
-rw-r--r--src/com/vaadin/tests/components/window/SubwindowInvalidLayout.html32
-rw-r--r--src/com/vaadin/tests/components/window/TestTooSmallSubwindowSize.html32
-rw-r--r--src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html32
-rw-r--r--src/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.html107
-rw-r--r--src/com/vaadin/ui/Window.java34
80 files changed, 3976 insertions, 72 deletions
diff --git a/src/com/vaadin/Application.java b/src/com/vaadin/Application.java
index c87f50c2e7..ca86467e04 100644
--- a/src/com/vaadin/Application.java
+++ b/src/com/vaadin/Application.java
@@ -1328,10 +1328,13 @@ public abstract class Application implements URIHandler,
* Contains the system messages used to notify the user about various
* critical situations that can occur.
* <p>
- * Customize by overriding the static Application.getSystemMessages() and
- * returning CustomizedSystemMessages. Note that getSystemMessages() is
- * static - changing the system messages will by default change the message
- * for all users of the application.
+ * Vaadin gets the SystemMessages from your application by calling a static
+ * getSystemMessages() method. By default the
+ * Application.getSystemMessages() is used. Your can customize this by
+ * defining the a static MyApplication.getSystemMessages() and returning
+ * CustomizedSystemMessages. Note that getSystemMessages() is static -
+ * changing the system messages will by default change the message for all
+ * users of the application.
* </p>
* <p>
* The default behavior is to show a notification, and restart the
diff --git a/src/com/vaadin/data/util/HierarchicalContainer.java b/src/com/vaadin/data/util/HierarchicalContainer.java
index 9ef4cdeb60..a6af0427ad 100644
--- a/src/com/vaadin/data/util/HierarchicalContainer.java
+++ b/src/com/vaadin/data/util/HierarchicalContainer.java
@@ -6,8 +6,8 @@ package com.vaadin.data.util;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
import java.util.LinkedList;
import com.vaadin.data.Container;
@@ -29,22 +29,22 @@ public class HierarchicalContainer extends IndexedContainer implements
/**
* Set of IDs of those contained Items that can't have children.
*/
- private final HashSet noChildrenAllowed = new HashSet();
+ private final HashSet<Object> noChildrenAllowed = new HashSet<Object>();
/**
* Mapping from Item ID to parent Item.
*/
- private final Hashtable parent = new Hashtable();
+ private final HashMap<Object, Object> parent = new HashMap<Object, Object>();
/**
* Mapping from Item ID to a list of child IDs.
*/
- private final Hashtable children = new Hashtable();
+ private final HashMap<Object, LinkedList<Object>> children = new HashMap<Object, LinkedList<Object>>();
/**
* List that contains all root elements of the container.
*/
- private final LinkedList roots = new LinkedList();
+ private final LinkedList<Object> roots = new LinkedList<Object>();
/*
* Can the specified Item have any children? Don't add a JavaDoc comment
@@ -60,7 +60,7 @@ public class HierarchicalContainer extends IndexedContainer implements
* interface.
*/
public Collection getChildren(Object itemId) {
- final Collection c = (Collection) children.get(itemId);
+ final Collection c = children.get(itemId);
if (c == null) {
return null;
}
@@ -176,7 +176,7 @@ public class HierarchicalContainer extends IndexedContainer implements
if (newParentId == null) {
// Removes from old parents children list
- final LinkedList l = (LinkedList) children.get(itemId);
+ final LinkedList l = children.get(itemId);
if (l != null) {
l.remove(itemId);
if (l.isEmpty()) {
@@ -210,7 +210,7 @@ public class HierarchicalContainer extends IndexedContainer implements
// Updates parent
parent.put(itemId, newParentId);
- LinkedList pcl = (LinkedList) children.get(newParentId);
+ LinkedList pcl = children.get(newParentId);
if (pcl == null) {
pcl = new LinkedList();
children.put(newParentId, pcl);
@@ -221,7 +221,7 @@ public class HierarchicalContainer extends IndexedContainer implements
if (oldParentId == null) {
roots.remove(itemId);
} else {
- final LinkedList l = (LinkedList) children.get(oldParentId);
+ final LinkedList l = children.get(oldParentId);
if (l != null) {
l.remove(itemId);
if (l.isEmpty()) {
@@ -251,8 +251,7 @@ public class HierarchicalContainer extends IndexedContainer implements
/*
* (non-Javadoc)
*
- * @see
- * com.vaadin.data.util.IndexedContainer#addItem(java.lang.Object)
+ * @see com.vaadin.data.util.IndexedContainer#addItem(java.lang.Object)
*/
@Override
public Item addItem(Object itemId) {
@@ -284,9 +283,7 @@ public class HierarchicalContainer extends IndexedContainer implements
/*
* (non-Javadoc)
*
- * @see
- * com.vaadin.data.util.IndexedContainer#removeItem(java.lang.Object
- * )
+ * @see com.vaadin.data.util.IndexedContainer#removeItem(java.lang.Object )
*/
@Override
public boolean removeItem(Object itemId) {
@@ -299,7 +296,7 @@ public class HierarchicalContainer extends IndexedContainer implements
children.remove(itemId);
final Object p = parent.get(itemId);
if (p != null) {
- final LinkedList c = (LinkedList) children.get(p);
+ final LinkedList c = children.get(p);
if (c != null) {
c.remove(itemId);
}
@@ -311,4 +308,13 @@ public class HierarchicalContainer extends IndexedContainer implements
return success;
}
+ @Override
+ void doSort() {
+ super.doSort();
+ Collections.sort(roots, this);
+ for (LinkedList<Object> childList : children.values()) {
+ Collections.sort(childList, this);
+ }
+ }
+
}
diff --git a/src/com/vaadin/data/util/IndexedContainer.java b/src/com/vaadin/data/util/IndexedContainer.java
index 5e52c729ee..b7c6463988 100644
--- a/src/com/vaadin/data/util/IndexedContainer.java
+++ b/src/com/vaadin/data/util/IndexedContainer.java
@@ -49,7 +49,7 @@ import com.vaadin.data.Property;
@SuppressWarnings("serial")
public class IndexedContainer implements Container.Indexed,
Container.ItemSetChangeNotifier, Container.PropertySetChangeNotifier,
- Property.ValueChangeNotifier, Container.Sortable, Comparator,
+ Property.ValueChangeNotifier, Container.Sortable, Comparator<Object>,
Cloneable, Container.Filterable {
/* Internal structure */
@@ -57,7 +57,7 @@ public class IndexedContainer implements Container.Indexed,
/**
* Linked list of ordered Item IDs.
*/
- private ArrayList itemIds = new ArrayList();
+ private ArrayList<Object> itemIds = new ArrayList<Object>();
/** List of item ids that passes the filtering */
private LinkedHashSet filteredItemIds = null;
@@ -1399,8 +1399,8 @@ public class IndexedContainer implements Container.Indexed,
sortDirection[i] = (orders.get(i)).booleanValue();
}
- // Sort
- Collections.sort(itemIds, this);
+ doSort();
+
if (filteredItemIds != null) {
updateContainerFiltering();
} else {
@@ -1413,6 +1413,15 @@ public class IndexedContainer implements Container.Indexed,
}
+ /**
+ * Perform the sorting of the container. Called when everything needed for
+ * the compare function has been set up.
+ *
+ */
+ void doSort() {
+ Collections.sort(itemIds, this);
+ }
+
/*
* (non-Javadoc)
*
diff --git a/src/com/vaadin/demo/sampler/SamplerApplication.java b/src/com/vaadin/demo/sampler/SamplerApplication.java
index d3a85287fc..91ae0b4c84 100644
--- a/src/com/vaadin/demo/sampler/SamplerApplication.java
+++ b/src/com/vaadin/demo/sampler/SamplerApplication.java
@@ -56,11 +56,12 @@ public class SamplerApplication extends Application {
private static final String[] THEMES = { "reindeer", "runo" };
private static final String SAMPLER_THEME_NAME = "sampler";
- private static String currentTheme = SAMPLER_THEME_NAME + "-" + THEMES[0];
-
// used when trying to guess theme location
private static String APP_URL = null;
+ private String currentApplicationTheme = SAMPLER_THEME_NAME + "-"
+ + THEMES[0];
+
@Override
public void init() {
setMainWindow(new SamplerWindow());
@@ -147,17 +148,24 @@ public class SamplerApplication extends Application {
*
*/
class SamplerWindow extends Window {
+
+ private final ThemeResource EMPTY_THEME_ICON = new ThemeResource(
+ "../sampler/sampler/icon-empty.png");
+
+ private final ThemeResource SELECTED_THEME_ICON = new ThemeResource(
+ "../sampler/sampler/select-bullet.png");
+
private FeatureList currentList = new FeatureGrid();
- private FeatureView featureView = new FeatureView();
- private ObjectProperty currentFeature = new ObjectProperty(null,
+ private final FeatureView featureView = new FeatureView();
+ private final ObjectProperty currentFeature = new ObjectProperty(null,
Feature.class);
- private ModeSwitch mode;
+ private final ModeSwitch mode;
- private SplitPanel mainSplit;
- private Tree navigationTree;
+ private final SplitPanel mainSplit;
+ private final Tree navigationTree;
// itmill: UA-658457-6
- private GoogleAnalytics webAnalytics = new GoogleAnalytics(
+ private final GoogleAnalytics webAnalytics = new GoogleAnalytics(
"UA-658457-6", "none");
// "backbutton"
UriFragmentUtility uriFragmentUtility = new UriFragmentUtility();
@@ -185,7 +193,7 @@ public class SamplerApplication extends Application {
setSizeFull();
mainExpand.setSizeFull();
setCaption("Vaadin Sampler");
- setTheme(currentTheme);
+ setTheme(currentApplicationTheme);
// topbar (navigation)
HorizontalLayout nav = new HorizontalLayout();
@@ -376,19 +384,32 @@ public class SamplerApplication extends Application {
theme.setImmediate(true);
theme.setNullSelectionAllowed(false);
for (String themeName : THEMES) {
- theme.addItem(SAMPLER_THEME_NAME + "-" + themeName);
- theme.setItemCaption(SAMPLER_THEME_NAME + "-" + themeName,
- themeName.substring(0, 1).toUpperCase()
- + themeName.substring(1) + " theme");
+ String id = SAMPLER_THEME_NAME + "-" + themeName;
+ theme.addItem(id);
+ theme.setItemCaption(id, themeName.substring(0, 1)
+ .toUpperCase()
+ + themeName.substring(1) + " theme");
+ theme.setItemIcon(id, EMPTY_THEME_ICON);
}
- theme.setValue(currentTheme);
+
+ final String currentWindowTheme = getTheme();
+ theme.setValue(currentWindowTheme);
+ theme.setItemIcon(currentWindowTheme, SELECTED_THEME_ICON);
theme.addListener(new ComboBox.ValueChangeListener() {
public void valueChange(ValueChangeEvent event) {
+
final String newTheme = event.getProperty().getValue()
.toString();
setTheme(newTheme);
- currentTheme = newTheme;
+
+ for (String themeName : THEMES) {
+ String id = SAMPLER_THEME_NAME + "-" + themeName;
+ theme.setItemIcon(id, EMPTY_THEME_ICON);
+ }
+
+ theme.setItemIcon(newTheme, SELECTED_THEME_ICON);
+ currentApplicationTheme = newTheme;
}
});
@@ -617,7 +638,7 @@ public class SamplerApplication extends Application {
* Table -mode FeatureList. Displays the features in a Table.
*/
private class FeatureTable extends Table implements FeatureList {
- private HashMap<Object, Resource> iconCache = new HashMap<Object, Resource>();
+ private final HashMap<Object, Resource> iconCache = new HashMap<Object, Resource>();
FeatureTable() {
setStyleName("featuretable");
@@ -717,7 +738,7 @@ public class SamplerApplication extends Application {
private class FeatureGrid extends Panel implements FeatureList {
GridLayout grid = new GridLayout(11, 1);
- private HashMap<Object, Resource> iconCache = new HashMap<Object, Resource>();
+ private final HashMap<Object, Resource> iconCache = new HashMap<Object, Resource>();
FeatureGrid() {
setSizeFull();
diff --git a/src/com/vaadin/demo/sampler/features/notifications/NotificationCustomExample.java b/src/com/vaadin/demo/sampler/features/notifications/NotificationCustomExample.java
index b201ae123d..8821e8cec1 100644
--- a/src/com/vaadin/demo/sampler/features/notifications/NotificationCustomExample.java
+++ b/src/com/vaadin/demo/sampler/features/notifications/NotificationCustomExample.java
@@ -16,7 +16,7 @@ import com.vaadin.ui.Window.Notification;
@SuppressWarnings("serial")
public class NotificationCustomExample extends VerticalLayout {
- private static final Object CAPTION_PROPERTY = new Object();
+ private static final String CAPTION_PROPERTY = "CAPTION";
public NotificationCustomExample() {
setSpacing(true);
diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
index 115d8ef702..0e1270901f 100755
--- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
+++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
@@ -132,7 +132,7 @@ public class ApplicationConnection {
// remove the end (window name) of autogenerated rootpanel id
appRootPanelName = appRootPanelName.replaceFirst("-\\d+$", "");
- initializeTestingToolsHooks(componentLocator, appRootPanelName);
+ initializeTestbenchHooks(componentLocator, appRootPanelName);
initializeClientHooks();
@@ -152,7 +152,7 @@ public class ApplicationConnection {
makeUidlRequest("", true, false, false);
}
- private native void initializeTestingToolsHooks(
+ private native void initializeTestbenchHooks(
ComponentLocator componentLocator, String TTAppId)
/*-{
var ap = this;
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VForm.java b/src/com/vaadin/terminal/gwt/client/ui/VForm.java
index 290ce2f371..97fbf9b72a 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VForm.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VForm.java
@@ -205,7 +205,8 @@ public class VForm extends ComplexPanel implements Container {
return new RenderSpace(renderInformation.getContentAreaSize()
.getWidth(), hPixels);
} else if (child == footer) {
- return new RenderSpace(footerContainer.getOffsetWidth(), 0);
+ return new RenderSpace(renderInformation.getContentAreaSize()
+ .getWidth(), 0);
} else {
ApplicationConnection.getConsole().error(
"Invalid child requested RenderSpace information");
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
index cd3d9f347c..4403aede35 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VTextField.java
@@ -23,9 +23,9 @@ import com.vaadin.terminal.gwt.client.VTooltip;
/**
* This class represents a basic text input field with one row.
- *
+ *
* @author IT Mill Ltd.
- *
+ *
*/
public class VTextField extends TextBoxBase implements Paintable, Field,
ChangeHandler, FocusHandler, BlurHandler {
@@ -167,6 +167,10 @@ public class VTextField extends TextBoxBase implements Paintable, Field,
if (prompting) {
setText("");
removeStyleDependentName(CLASSNAME_PROMPT);
+ if (BrowserInfo.get().isIE6()) {
+ // IE6 does not show the cursor when tabbing into the field
+ setCursorPos(0);
+ }
}
focusedTextField = this;
}
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
index 31d5d5ac96..725b906f97 100644
--- a/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
+++ b/src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java
@@ -173,7 +173,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet {
// Widget set parameter name
private static final String PARAMETER_WIDGETSET = "widgetset";
- private static final String ERROR_NO_WINDOW_FOUND = "Application did not give any window, did you remember to setMainWindow()?";
+ private static final String ERROR_NO_WINDOW_FOUND = "No window found. Did you remember to setMainWindow()?";
private static final String DEFAULT_THEME_NAME = "reindeer";
diff --git a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
index b3576ed327..ee5a22c3f3 100644
--- a/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
+++ b/src/com/vaadin/terminal/gwt/server/CommunicationManager.java
@@ -459,8 +459,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
// Also check any existing subwindows
if (w.getChildWindows() != null) {
- for (Window subWindow : (Set<Window>) w
- .getChildWindows()) {
+ for (Window subWindow : w.getChildWindows()) {
invalidComponentRelativeSizes = ComponentSizeValidator
.validateComponentRelativeSizes(
subWindow.getContent(),
@@ -1087,6 +1086,10 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
// By default, use mainwindow
if (window == null) {
window = application.getMainWindow();
+ // Return null if no main window was found
+ if (window == null) {
+ return null;
+ }
}
// If the requested window is already open, resolve conflict
diff --git a/src/com/vaadin/tests/applicationservlet/NoMainWindow.java b/src/com/vaadin/tests/applicationservlet/NoMainWindow.java
new file mode 100644
index 0000000000..9097274236
--- /dev/null
+++ b/src/com/vaadin/tests/applicationservlet/NoMainWindow.java
@@ -0,0 +1,22 @@
+package com.vaadin.tests.applicationservlet;
+
+import com.vaadin.tests.components.AbstractTestCase;
+
+public class NoMainWindow extends AbstractTestCase {
+
+ @Override
+ protected String getDescription() {
+ return "This should produce an stack trace with \"No window found. Did you remember to setMainWindow()?\"";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3349;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
diff --git a/src/com/vaadin/tests/components/HierarchicalContainerSorting.java b/src/com/vaadin/tests/components/HierarchicalContainerSorting.java
new file mode 100644
index 0000000000..4e498d93b6
--- /dev/null
+++ b/src/com/vaadin/tests/components/HierarchicalContainerSorting.java
@@ -0,0 +1,97 @@
+package com.vaadin.tests.components;
+
+import com.vaadin.data.Item;
+import com.vaadin.data.util.HierarchicalContainer;
+import com.vaadin.data.util.IndexedContainer;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Tree;
+
+public class HierarchicalContainerSorting extends TestBase {
+ IndexedContainer hierarchicalContainer = new HierarchicalContainer();
+
+ IndexedContainer indexedContainer = new IndexedContainer();
+
+ @Override
+ public void setup() {
+
+ populateContainer(indexedContainer);
+ populateContainer(hierarchicalContainer);
+
+ sort(indexedContainer);
+ sort(hierarchicalContainer);
+
+ HorizontalLayout hl = new HorizontalLayout();
+
+ Tree tree1 = new Tree("Tree with IndexedContainer");
+ tree1.setContainerDataSource(indexedContainer);
+ hl.addComponent(tree1);
+
+ Tree tree2 = new Tree("Tree with HierarchicalContainer");
+ tree2.setContainerDataSource(hierarchicalContainer);
+ for (Object id : tree2.rootItemIds()) {
+ tree2.expandItemsRecursively(id);
+ }
+ hl.addComponent(tree2);
+
+ addComponent(hl);
+ }
+
+ private static void sort(IndexedContainer container) {
+ Object[] properties = new Object[1];
+ properties[0] = "name";
+
+ boolean[] ascending = new boolean[1];
+ ascending[0] = true;
+
+ container.sort(properties, ascending);
+ }
+
+ private static void populateContainer(IndexedContainer container) {
+ container.addContainerProperty("name", String.class, null);
+
+ addItem(container, "Games", null);
+ addItem(container, "Call of Duty", "Games");
+ addItem(container, "Might and Magic", "Games");
+ addItem(container, "Fallout", "Games");
+ addItem(container, "Red Alert", "Games");
+
+ addItem(container, "Cars", null);
+ addItem(container, "Toyota", "Cars");
+ addItem(container, "Volvo", "Cars");
+ addItem(container, "Audi", "Cars");
+ addItem(container, "Ford", "Cars");
+
+ addItem(container, "Natural languages", null);
+ addItem(container, "Swedish", "Natural languages");
+ addItem(container, "English", "Natural languages");
+ addItem(container, "Finnish", "Natural languages");
+
+ addItem(container, "Programming languages", null);
+ addItem(container, "C++", "Programming languages");
+ addItem(container, "PHP", "Programming languages");
+ addItem(container, "Java", "Programming languages");
+ addItem(container, "Python", "Programming languages");
+
+ }
+
+ public static void addItem(IndexedContainer container, String string,
+ String parent) {
+ Item item = container.addItem(string);
+ item.getItemProperty("name").setValue(string);
+
+ if (parent != null && container instanceof HierarchicalContainer) {
+ ((HierarchicalContainer) container).setParent(string, parent);
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "The two trees contain the same data, one uses IndexedContainer, one uses HierarchicalContainer. Both should be sorted, both the root nodes and the children.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3095;
+ }
+
+} \ No newline at end of file
diff --git a/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutClipping.html b/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutClipping.html
new file mode 100644
index 0000000000..ff5c890abf
--- /dev/null
+++ b/src/com/vaadin/tests/components/absolutelayout/AbsoluteLayoutClipping.html
@@ -0,0 +1,27 @@
+<?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>AbsoluteLayoutClipping</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">AbsoluteLayoutClipping</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.absolutelayout.AbsoluteLayoutClipping</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.html b/src/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.html
new file mode 100644
index 0000000000..ef2c784e15
--- /dev/null
+++ b/src/com/vaadin/tests/components/abstractfield/AbstractFieldCommitWithInvalidValues.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>AbstractFieldCommitWithInvalidValues</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">AbstractFieldCommitWithInvalidValues</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.abstractfield.AbstractFieldCommitWithInvalidValues</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractfieldAbstractFieldCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>clickAt</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractfieldAbstractFieldCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractfieldAbstractFieldCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td>
+ <td>long</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsabstractfieldAbstractFieldCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/accordion/RemoveTabs.html b/src/com/vaadin/tests/components/accordion/RemoveTabs.html
new file mode 100644
index 0000000000..ec24ade8ce
--- /dev/null
+++ b/src/com/vaadin/tests/components/accordion/RemoveTabs.html
@@ -0,0 +1,122 @@
+<?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>RemoveTabsTest</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">RemoveTabsTest</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.accordion.RemoveTabs</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VAccordion[0]/domChild[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsaccordionRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/beanitemcontainer/TestBeanItemContainerUsage.html b/src/com/vaadin/tests/components/beanitemcontainer/TestBeanItemContainerUsage.html
new file mode 100644
index 0000000000..ea49b92c6a
--- /dev/null
+++ b/src/com/vaadin/tests/components/beanitemcontainer/TestBeanItemContainerUsage.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>TestBeanItemContainerUsage</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TestBeanItemContainerUsage</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.beanitemcontainer.TestBeanItemContainerUsage</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Table containing Persons<br /><br /><br /><br />age<br /><br />firstName<br /><br />lastName<br /><br /><br /><br /><br />35<br />Jones<br />Birchman<br />30<br />Marc<br />Smith<br />75<br />Greg<br />Sandman</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html b/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html
new file mode 100644
index 0000000000..7c9b3a6559
--- /dev/null
+++ b/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.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>ButtonUndefinedWidth</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ButtonUndefinedWidth</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.button.ButtonUndefinedWidth</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VNativeButton[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/button/DisabledButtons.html b/src/com/vaadin/tests/components/button/DisabledButtons.html
new file mode 100644
index 0000000000..65584fd4d0
--- /dev/null
+++ b/src/com/vaadin/tests/components/button/DisabledButtons.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>DisabledButtons</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">DisabledButtons</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.button.DisabledButtons</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/button/IE7ButtonWithIcon.html b/src/com/vaadin/tests/components/button/IE7ButtonWithIcon.html
new file mode 100644
index 0000000000..a05b439759
--- /dev/null
+++ b/src/com/vaadin/tests/components/button/IE7ButtonWithIcon.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>IE7ButtonWithIcon</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">IE7ButtonWithIcon</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.button.IE7ButtonWithIcon</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/button/TooltipForDisabledButton.html b/src/com/vaadin/tests/components/button/TooltipForDisabledButton.html
new file mode 100644
index 0000000000..f5dc4dfebe
--- /dev/null
+++ b/src/com/vaadin/tests/components/button/TooltipForDisabledButton.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>TooltipForDisabledButton</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TooltipForDisabledButton</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.button.TooltipForDisabledButton</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonTooltipForDisabledButton::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonTooltipForDisabledButton::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>500</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonTooltipForDisabledButton::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentsbuttonTooltipForDisabledButton::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>500</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/caption/LargeCaptionIcon.html b/src/com/vaadin/tests/components/caption/LargeCaptionIcon.html
new file mode 100644
index 0000000000..61a014c975
--- /dev/null
+++ b/src/com/vaadin/tests/components/caption/LargeCaptionIcon.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>LargeCaptionIcon</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LargeCaptionIcon</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.caption.LargeCaptionIcon</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>refresh</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/checkbox/CheckboxCaptionWrapping.html b/src/com/vaadin/tests/components/checkbox/CheckboxCaptionWrapping.html
new file mode 100644
index 0000000000..26ecc95721
--- /dev/null
+++ b/src/com/vaadin/tests/components/checkbox/CheckboxCaptionWrapping.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>CheckboxCaptionWrapping</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">CheckboxCaptionWrapping</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.checkbox.CheckboxCaptionWrapping</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/checkbox/CheckboxIcon.html b/src/com/vaadin/tests/components/checkbox/CheckboxIcon.html
new file mode 100644
index 0000000000..1404a052f0
--- /dev/null
+++ b/src/com/vaadin/tests/components/checkbox/CheckboxIcon.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>CheckboxIcon</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">CheckboxIcon</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.checkbox.CheckboxIcon</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>A checkbox</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentscheckboxCheckboxIcon::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentscheckboxCheckboxIcon::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/checkbox/CheckboxIcon.java b/src/com/vaadin/tests/components/checkbox/CheckboxIcon.java
index b38348e45f..1f96a05084 100644
--- a/src/com/vaadin/tests/components/checkbox/CheckboxIcon.java
+++ b/src/com/vaadin/tests/components/checkbox/CheckboxIcon.java
@@ -20,7 +20,7 @@ public class CheckboxIcon extends TestBase {
@Override
protected void setup() {
CheckBox checkbox = new CheckBox("A checkbox");
- checkbox.setIcon(new ThemeResource("icons/32/calendar.png"));
+ checkbox.setIcon(new ThemeResource("../runo/icons/32/calendar.png"));
checkbox.setDescription("Tooltip for checkbox");
addComponent(checkbox);
diff --git a/src/com/vaadin/tests/components/combobox/ComboBoxItemIcon.html b/src/com/vaadin/tests/components/combobox/ComboBoxItemIcon.html
new file mode 100644
index 0000000000..447000d6d7
--- /dev/null
+++ b/src/com/vaadin/tests/components/combobox/ComboBoxItemIcon.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>ComboBoxItemIcon</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ComboBoxItemIcon</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.combobox.ComboBoxItemIcon</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxItemIcon::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='VAADIN_COMBOBOX_OPTIONLIST']/div/div[2]/table/tbody/tr[2]/td</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/combobox/ComboBoxNavigation.html b/src/com/vaadin/tests/components/combobox/ComboBoxNavigation.html
new file mode 100644
index 0000000000..38f82be079
--- /dev/null
+++ b/src/com/vaadin/tests/components/combobox/ComboBoxNavigation.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>ComboBoxNavigation</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ComboBoxNavigation</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.combobox.ComboBoxNavigation</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxNavigation::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>keyPress</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxNavigation::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[0]</td>
+ <td>\25</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>keyPress</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxNavigation::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[0]</td>
+ <td>\25</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>keyPress</td>
+ <td>vaadin=runcomvaadintestscomponentscomboboxComboBoxNavigation::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]/domChild[0]</td>
+ <td>\24</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.html b/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.html
new file mode 100644
index 0000000000..efc9983ab5
--- /dev/null
+++ b/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.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="http://localhost:8888/" />
+<title>DateFieldReadOnly</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">DateFieldReadOnly</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.datefield.DateFieldReadOnly</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldReadOnly::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldReadOnly::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>clickAt</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldReadOnly::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>0,0</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.java b/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
index 857af3a8be..46af5b07be 100644
--- a/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
+++ b/src/com/vaadin/tests/components/datefield/DateFieldReadOnly.java
@@ -30,7 +30,11 @@ public class DateFieldReadOnly extends TestBase {
timeField.setWidth("8em");
timeField.addStyleName("timeField");
- timeField.setValue(new Date());
+ // Set date so that testing always has same time
+ Date date = new Date();
+ date.setTime((long) 1000000000000.0);
+
+ timeField.setValue(date);
timeField.setReadOnly(true);
addComponent(timeField);
diff --git a/src/com/vaadin/tests/components/datefield/TestDatefieldYear.html b/src/com/vaadin/tests/components/datefield/TestDatefieldYear.html
new file mode 100644
index 0000000000..2582948eee
--- /dev/null
+++ b/src/com/vaadin/tests/components/datefield/TestDatefieldYear.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>TestDatefieldYear</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TestDatefieldYear</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.datefield.TestDatefieldYear</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldTestDatefieldYear::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldTestDatefieldYear::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//table[@id='PID_VAADIN_POPUPCAL']/tbody/tr/td[1]/button</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldTestDatefieldYear::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//table[@id='PID_VAADIN_POPUPCAL']/tbody/tr/td[2]/button</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/embedded/EmbeddedTooltip.html b/src/com/vaadin/tests/components/embedded/EmbeddedTooltip.html
new file mode 100644
index 0000000000..43e9863fb9
--- /dev/null
+++ b/src/com/vaadin/tests/components/embedded/EmbeddedTooltip.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>EmbeddedTooltip</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">EmbeddedTooltip</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.embedded.EmbeddedTooltip</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentsembeddedEmbeddedTooltip::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VEmbedded[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/form/FormCommitWithInvalidValues.html b/src/com/vaadin/tests/components/form/FormCommitWithInvalidValues.html
new file mode 100644
index 0000000000..b0305e60dc
--- /dev/null
+++ b/src/com/vaadin/tests/components/form/FormCommitWithInvalidValues.html
@@ -0,0 +1,112 @@
+<?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>FormCommitWithInvalidValues</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">FormCommitWithInvalidValues</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.form.FormCommitWithInvalidValues</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VForm[0]/VFormLayout[0]/VFormLayout$VFormLayoutTable[0]/VTextField[0]</td>
+ <td>123</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormCommitWithInvalidValues::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/form/FormNotGettingSmaller.java b/src/com/vaadin/tests/components/form/FormNotGettingSmaller.java
new file mode 100644
index 0000000000..1cf21126a0
--- /dev/null
+++ b/src/com/vaadin/tests/components/form/FormNotGettingSmaller.java
@@ -0,0 +1,51 @@
+package com.vaadin.tests.components.form;
+
+import com.vaadin.data.Item;
+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.Form;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+
+public class FormNotGettingSmaller extends TestBase {
+
+ @Override
+ protected void setup() {
+ Item item = new PropertysetItem();
+ item.addItemProperty("name", new ObjectProperty("Charles Anthony"));
+ item.addItemProperty("city", new ObjectProperty("London"));
+ item.addItemProperty("isTallPerson", new ObjectProperty(Boolean.FALSE));
+
+ Label spacer = new Label();
+ HorizontalLayout buttons = new HorizontalLayout();
+ buttons.setSpacing(true);
+ buttons.setWidth("100%");
+ buttons.addComponent(spacer);
+ buttons.addComponent(new Button("OK"));
+ buttons.addComponent(new Button("Cancel"));
+ buttons.setExpandRatio(spacer, 1f);
+
+ Form form = new Form();
+ form
+ .setDescription("Ooh. Just a demonstration of things, really. Some long lorem ipsum dolor sit amet.Some very long lorem ipsum dolor sit amet.Some very long lorem ipsum dolor sit amet.Some very long lorem ipsum dolor sit amet.");
+
+ form.setItemDataSource(item);
+ form.setFooter(buttons);
+
+ getLayout().addComponent(form);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "When resizing window buttons should stay on "
+ + "right edge of the screent. Form should also get narrower.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3365;
+ }
+
+}
diff --git a/src/com/vaadin/tests/components/form/FormRenderingFlicker.html b/src/com/vaadin/tests/components/form/FormRenderingFlicker.html
new file mode 100644
index 0000000000..a99556d6d6
--- /dev/null
+++ b/src/com/vaadin/tests/components/form/FormRenderingFlicker.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>FormRenderingFlicker</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">FormRenderingFlicker</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.form.FormRenderingFlicker</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormRenderingFlicker::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/label/HundredPercentWideLabelResize.html b/src/com/vaadin/tests/components/label/HundredPercentWideLabelResize.html
new file mode 100644
index 0000000000..667f08ba4f
--- /dev/null
+++ b/src/com/vaadin/tests/components/label/HundredPercentWideLabelResize.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>HundredPercentWideLabelResize</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">HundredPercentWideLabelResize</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.label.HundredPercentWideLabelResize</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentslabelHundredPercentWideLabelResize::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentslabelHundredPercentWideLabelResize::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/label/LabelWrapping.html b/src/com/vaadin/tests/components/label/LabelWrapping.html
new file mode 100644
index 0000000000..b8038a75b4
--- /dev/null
+++ b/src/com/vaadin/tests/components/label/LabelWrapping.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>LabelWrapping</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LabelWrapping</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.label.LabelWrapping</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentslabelLabelWrapping::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentslabelLabelWrapping::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/link/LinkIcon.html b/src/com/vaadin/tests/components/link/LinkIcon.html
new file mode 100644
index 0000000000..8ae7942916
--- /dev/null
+++ b/src/com/vaadin/tests/components/link/LinkIcon.html
@@ -0,0 +1,27 @@
+<?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>LinkIcon</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LinkIcon</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.link.LinkIcon</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/link/LinkIcon.java b/src/com/vaadin/tests/components/link/LinkIcon.java
index 0b10e87f21..372417a45c 100644
--- a/src/com/vaadin/tests/components/link/LinkIcon.java
+++ b/src/com/vaadin/tests/components/link/LinkIcon.java
@@ -22,7 +22,7 @@ public class LinkIcon extends TestBase {
protected void setup() {
Link l = new Link("www.google.com", new ExternalResource(
"http://www.vaadin.com/"));
- l.setIcon(new ThemeResource("icons/32/calendar.png"));
+ l.setIcon(new ThemeResource("../runo/icons/32/calendar.png"));
addComponent(l);
}
diff --git a/src/com/vaadin/tests/components/link/LinkTargetSize.html b/src/com/vaadin/tests/components/link/LinkTargetSize.html
new file mode 100644
index 0000000000..a28865361f
--- /dev/null
+++ b/src/com/vaadin/tests/components/link/LinkTargetSize.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>LinkTargetSize</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LinkTargetSize</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.link.LinkTargetSize</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentslinkLinkTargetSize::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLink[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.html b/src/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.html
new file mode 100644
index 0000000000..7a071030dc
--- /dev/null
+++ b/src/com/vaadin/tests/components/orderedlayout/ReplaceComponentNPE.html
@@ -0,0 +1,47 @@
+<?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>ReplaceComponentNPE</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ReplaceComponentNPE</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.orderedlayout.ReplaceComponentNPE</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsorderedlayoutReplaceComponentNPE::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/popupview/PopupViewOffScreen.html b/src/com/vaadin/tests/components/popupview/PopupViewOffScreen.html
new file mode 100644
index 0000000000..99ee864179
--- /dev/null
+++ b/src/com/vaadin/tests/components/popupview/PopupViewOffScreen.html
@@ -0,0 +1,47 @@
+<?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>PopupViewOffScreen</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">PopupViewOffScreen</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.popupview.PopupViewOffScreen</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentspopupviewPopupViewOffScreen::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VGridLayout[0]/AbsolutePanel[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/richtextarea/RichTextAreaSize.html b/src/com/vaadin/tests/components/richtextarea/RichTextAreaSize.html
new file mode 100644
index 0000000000..7708c88e54
--- /dev/null
+++ b/src/com/vaadin/tests/components/richtextarea/RichTextAreaSize.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>RichTextAreaSize</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">RichTextAreaSize</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.richtextarea.RichTextAreaSize</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.html b/src/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.html
new file mode 100644
index 0000000000..876ed75ea8
--- /dev/null
+++ b/src/com/vaadin/tests/components/splitpanel/SplitPanelSplitterWidth.html
@@ -0,0 +1,47 @@
+<?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>SplitPanelSplitterWidth</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">SplitPanelSplitterWidth</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.splitpanel.SplitPanelSplitterWidth</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelSplitterWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ClippedComponentsInTable.html b/src/com/vaadin/tests/components/table/ClippedComponentsInTable.html
new file mode 100644
index 0000000000..4a6ccbbe2d
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ClippedComponentsInTable.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>ClippedComponentsInTable</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ClippedComponentsInTable</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.ClippedComponentsInTable</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html b/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html
new file mode 100644
index 0000000000..33509916f7
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.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>ColumnCollapsingAndColumnExpansion</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ColumnCollapsingAndColumnExpansion</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.ColumnCollapsingAndColumnExpansion</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableColumnCollapsingAndColumnExpansion::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//td[@id='gwt-uid-2']/span/div</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ColumnExpandRatio.html b/src/com/vaadin/tests/components/table/ColumnExpandRatio.html
new file mode 100644
index 0000000000..6d5422831e
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ColumnExpandRatio.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>ColumnExpandRatio</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ColumnExpandRatio</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.ColumnExpandRatio</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ColumnExpandWithFixedColumns.html b/src/com/vaadin/tests/components/table/ColumnExpandWithFixedColumns.html
new file mode 100644
index 0000000000..eb338c8dde
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ColumnExpandWithFixedColumns.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>ColumnExpandWithFixedColumns</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ColumnExpandWithFixedColumns</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.ColumnExpandWithFixedColumns</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ContainerSizeChange.html b/src/com/vaadin/tests/components/table/ContainerSizeChange.html
new file mode 100644
index 0000000000..7c2374f322
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ContainerSizeChange.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>ContainerSizeChange</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">ContainerSizeChange</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.ContainerSizeChange</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableContainerSizeChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableContainerSizeChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableContainerSizeChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>945</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>300</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableContainerSizeChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>525</td>
+</tr>
+<tr>
+ <td>pause</td>
+ <td>300</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html b/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html
new file mode 100644
index 0000000000..e8dccea4e7
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html
@@ -0,0 +1,52 @@
+<?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>LabelEmbeddedClickThroughForTable</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">LabelEmbeddedClickThroughForTable</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.LabelEmbeddedClickThroughForTable</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VLabel[1]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VLabel[1]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/MissingScrollbar.html b/src/com/vaadin/tests/components/table/MissingScrollbar.html
new file mode 100644
index 0000000000..dfea329e60
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/MissingScrollbar.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>MissingScrollbar</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">MissingScrollbar</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.MissingScrollbar</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMissingScrollbar::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableMissingScrollbar::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/ModifyContainerProperty.java b/src/com/vaadin/tests/components/table/ModifyContainerProperty.java
new file mode 100644
index 0000000000..0038e7f083
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/ModifyContainerProperty.java
@@ -0,0 +1,57 @@
+package com.vaadin.tests.components.table;
+
+import com.vaadin.data.util.IndexedContainer;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Table;
+
+@SuppressWarnings("serial")
+public class ModifyContainerProperty extends TestBase {
+
+ private Table table = new Table();
+ private IndexedContainer ic = new IndexedContainer();
+
+ @Override
+ protected void setup() {
+ addComponent(table);
+
+ ic.addContainerProperty("one", String.class, "one");
+ ic.addContainerProperty("two", String.class, "two");
+
+ ic.addItem("foo");
+
+ ic.getContainerProperty("foo", "one").setValue("bar");
+ ic.getContainerProperty("foo", "two").setValue("baz");
+
+ table.setContainerDataSource(ic);
+ addComponent(new Button("Remove container property",
+ new Button.ClickListener() {
+ public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) {
+ ic.removeContainerProperty("one");
+ }
+ }));
+ addComponent(new Button("Add container property",
+ new Button.ClickListener() {
+ public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) {
+ ic.addContainerProperty("three", String.class, "three");
+ Object[] current = table.getVisibleColumns();
+ Object[] vis = new Object[current.length + 1];
+ for (int i = 0; i < current.length; i++) {
+ vis[i] = current[i];
+ }
+ vis[current.length] = "three";
+ table.setVisibleColumns(vis);
+ }
+ }));
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Clicking on \"Add container property\" adds a property to the container and sets it visible. The table should then show a \"three\" column in addition to the others. Clicking on \"Remove container property\" should remove column \"two\" from the table.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3165;
+ }
+}
diff --git a/src/com/vaadin/tests/components/table/PropertyValueChange.html b/src/com/vaadin/tests/components/table/PropertyValueChange.html
new file mode 100644
index 0000000000..41f97ebb61
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/PropertyValueChange.html
@@ -0,0 +1,87 @@
+<?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>PropertyValueChange</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">PropertyValueChange</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.PropertyValueChange</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VFilterSelect[0]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>//div[@id='VAADIN_COMBOBOX_OPTIONLIST']/div/div[2]/table/tbody/tr[4]/td</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td>
+ <td>9</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/RowAdditionTest.html b/src/com/vaadin/tests/components/table/RowAdditionTest.html
new file mode 100644
index 0000000000..4125e32e41
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/RowAdditionTest.html
@@ -0,0 +1,157 @@
+<?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>RowAdditionTest</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">RowAdditionTest</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.RowAdditionTest</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>300</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>600</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>900</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>903</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>1203</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>1503</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>1803</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>scroll</td>
+ <td>vaadin=runcomvaadintestscomponentstableRowAdditionTest::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]</td>
+ <td>1848</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TableLastRowMissing.html b/src/com/vaadin/tests/components/table/TableLastRowMissing.html
new file mode 100644
index 0000000000..ca8ee6d6a4
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TableLastRowMissing.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>TableLastRowMissing</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableLastRowMissing</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableLastRowMissing</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TablePageLengthUpdate.html b/src/com/vaadin/tests/components/table/TablePageLengthUpdate.html
new file mode 100644
index 0000000000..fe5887634f
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TablePageLengthUpdate.html
@@ -0,0 +1,127 @@
+<?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>TablePageLengthUpdate</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TablePageLengthUpdate</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TablePageLengthUpdate</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextField[0]</td>
+ <td>200px</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>exact:Pagelength: 9</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextField[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextField[0]</td>
+ <td>250px</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>exact:Pagelength: 11</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>type</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextField[0]</td>
+ <td>50px</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTablePageLengthUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>exact:Pagelength: 2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TableRowHeight.html b/src/com/vaadin/tests/components/table/TableRowHeight.html
new file mode 100644
index 0000000000..a28df6329f
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TableRowHeight.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>TableRowHeight</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableRowHeight</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableRowHeight</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TableRowHeight2.html b/src/com/vaadin/tests/components/table/TableRowHeight2.html
new file mode 100644
index 0000000000..bd83c1d9dc
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TableRowHeight2.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>TableRowHeight2</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableRowHeight2</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableRowHeight2</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TableRowHeight3.html b/src/com/vaadin/tests/components/table/TableRowHeight3.html
new file mode 100644
index 0000000000..2aa90085e4
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TableRowHeight3.html
@@ -0,0 +1,27 @@
+<?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>TableRowHeight3</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableRowHeight3</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableRowHeight3</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.html b/src/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.html
new file mode 100644
index 0000000000..05325cb9e6
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TableVisibleColumnsUpdate.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>TableVisibleColumnsUpdate</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TableVisibleColumnsUpdate</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TableVisibleColumnsUpdate</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableVisibleColumnsUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableVisibleColumnsUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTableVisibleColumnsUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html b/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html
new file mode 100644
index 0000000000..5b5ea40168
--- /dev/null
+++ b/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.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>TextFieldRelativeWidth</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TextFieldRelativeWidth</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.table.TextFieldRelativeWidth</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.html b/src/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.html
new file mode 100644
index 0000000000..dd07d8cef6
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/AddAndRemoveTabs.html
@@ -0,0 +1,117 @@
+<?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>AddAndRemoveTabs</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">AddAndRemoveTabs</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.AddAndRemoveTabs</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VHorizontalLayout[1]/ChildComponentContainer[0]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Test 1<br /><br /><br /><br />Test 3<br /><br /><br /><br /><br /><br />Close tab<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Add new tab</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetAddAndRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Test 1<br /><br /><br /><br />Test 3<br /><br /><br /><br />Test 4<br /><br /><br /><br /><br /><br />Close tab<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Add new tab</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/PreventTabChange.html b/src/com/vaadin/tests/components/tabsheet/PreventTabChange.html
new file mode 100644
index 0000000000..c4f5998f47
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/PreventTabChange.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="http://localhost:8080/" />
+<title>PreventTabChange</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">PreventTabChange</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.PreventTabChange</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetPreventTabChange::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetPreventTabChange::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetPreventTabChange::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetPreventTabChange::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/RemoveTabsTabsheet.html b/src/com/vaadin/tests/components/tabsheet/RemoveTabsTabsheet.html
new file mode 100644
index 0000000000..07db540395
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/RemoveTabsTabsheet.html
@@ -0,0 +1,112 @@
+<?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>RemoveTabs</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">RemoveTabs</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.RemoveTabs</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab 1<br /><br /><br /><br />Tab 2<br /><br /><br /><br />Tab 3<br /><br /><br /><br />Tab 4<br /><br /><br /><br />Tab 5<br /><br /><br /><br /><br /><br />This is the contents of tab 1<br /><br /><br /><br /><br /><br /><br /><br />close first tab<br /><br /><br />close last tab<br /><br /><br />Close current tab<br /><br /><br />reorder</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab 2<br /><br /><br /><br />Tab 3<br /><br /><br /><br />Tab 4<br /><br /><br /><br />Tab 5<br /><br /><br /><br /><br /><br />This is the contents of tab 2<br /><br /><br /><br /><br /><br /><br /><br />close first tab<br /><br /><br />close last tab<br /><br /><br />Close current tab<br /><br /><br />reorder</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab 2<br /><br /><br /><br />Tab 3<br /><br /><br /><br />Tab 5<br /><br /><br /><br /><br /><br />This is the contents of tab 2<br /><br /><br /><br /><br /><br /><br /><br />close first tab<br /><br /><br />close last tab<br /><br /><br />Close current tab<br /><br /><br />reorder</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab 5<br /><br /><br /><br />Tab 3<br /><br /><br /><br />Tab 2<br /><br /><br /><br /><br /><br />This is the contents of tab 5<br /><br /><br /><br /><br /><br /><br /><br />close first tab<br /><br /><br />close last tab<br /><br /><br />Close current tab<br /><br /><br />reorder</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetRemoveTabs::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab 5<br /><br /><br /><br />Tab 3<br /><br /><br /><br /><br /><br />This is the contents of tab 5<br /><br />This is the contents of tab 3<br /><br /><br /><br /><br /><br /><br /><br />close first tab<br /><br /><br />close last tab<br /><br /><br />Close current tab<br /><br /><br />reorder</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.html b/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.html
new file mode 100644
index 0000000000..d240d4b419
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.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>TabSheetCaptions</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetCaptions</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabSheetCaptions</td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>Panel initial caption (should also be tab caption)</td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VPanel[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>Panel initial caption (should also be tab caption)</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>This is a new tab caption Sun, 2001-Sep-09</td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VPanel[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>Panel initial caption (should also be tab caption)</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>This is a new tab caption Sun, 2001-Sep-09</td>
+</tr>
+<tr>
+ <td>verifyText</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetCaptions::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VPanel[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td>This is a new panel caption Sun, 2001-Sep-09</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java b/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
index 9e8f4a35f4..699988489f 100644
--- a/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetCaptions.java
@@ -1,6 +1,8 @@
package com.vaadin.tests.components.tabsheet;
+import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
@@ -26,6 +28,11 @@ public class TabSheetCaptions extends TestBase {
@Override
protected void setup() {
final TabSheet tabSheet = new TabSheet();
+ // Define date and locale so that it doesn't change for machine/time
+ final SimpleDateFormat dateFormatter = new SimpleDateFormat(
+ "EEE, yyyy-MMM-dd", Locale.ENGLISH);
+ final Date date = new Date();
+ date.setTime((long) 1000000000000.0);
panel1 = new Panel("Panel initial caption (should also be tab caption)");
panel1.setSizeFull();
@@ -37,14 +44,15 @@ public class TabSheetCaptions extends TestBase {
button.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
tabSheet.setTabCaption(panel1, "This is a new tab caption "
- + new Date());
+ + dateFormatter.format(date));
}
});
Button button2 = new Button("Update panel caption");
button2.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
- panel1.setCaption("This is a new panel caption " + new Date());
+ panel1.setCaption("This is a new panel caption "
+ + dateFormatter.format(date));
}
});
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetDisabling.html b/src/com/vaadin/tests/components/tabsheet/TabSheetDisabling.html
new file mode 100644
index 0000000000..bc03f7687b
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetDisabling.html
@@ -0,0 +1,162 @@
+<?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>TabSheetDisabling</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetDisabling</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabSheetDisabling</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[5]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/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>1</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[6]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VButton[3]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>3</td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VButton[1]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabSheetDisabling::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/VTabsheetPanel[0]/VButton[2]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>4</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.html b/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.html
new file mode 100644
index 0000000000..425da11af4
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.html
@@ -0,0 +1,27 @@
+<?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>TabSheetIcons</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetIcons</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabSheetIcons</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.java b/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.java
index c295f1a9e5..49c9784eb9 100644
--- a/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.java
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetIcons.java
@@ -37,11 +37,11 @@ public class TabSheetIcons extends TestBase {
Component[] tab = new Component[3];
tab[0] = new Label("This is tab 1");
- tab[0].setIcon(new ThemeResource("icons/32/folder-add.png"));
+ tab[0].setIcon(new ThemeResource("../runo/icons/32/folder-add.png"));
tab[0].setCaption("tab number 1");
tab[1] = new TextField("This is tab 2", "Contents of tab 2 textfield");
tab[2] = new Label("This is tab 3");
- tab[2].setIcon(new ThemeResource("icons/16/folder-add.png"));
+ tab[2].setIcon(new ThemeResource("../runo/icons/16/folder-add.png"));
tab[2].setCaption("tab number 3");
for (Component c : tab) {
diff --git a/src/com/vaadin/tests/components/tabsheet/TabSheetWithoutTabCaption.html b/src/com/vaadin/tests/components/tabsheet/TabSheetWithoutTabCaption.html
new file mode 100644
index 0000000000..36e85c1b37
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/TabSheetWithoutTabCaption.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>TabSheetWithoutTabCaption</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabSheetWithoutTabCaption</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabSheetWithoutTabCaption</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html b/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.html
new file mode 100644
index 0000000000..08b7869587
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.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>TabsheetTooltip</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TabsheetTooltip</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.TabsheetTooltip</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab<br /> <br /><br /><br /><br />Tab 2<br /><br /><br /><br /><br /><br />Label</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabsheetTooltip::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>Tab<br /> <br /><br /><br /><br />Tab 2<br /><br /><br /><br /><br /><br />Label<br /><br />Another label, d'oh</td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabsheetTooltip::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabsheetTooltip::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>mouseOver</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetTabsheetTooltip::/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></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/tabsheet/VerticalScrollbarPosition.html b/src/com/vaadin/tests/components/tabsheet/VerticalScrollbarPosition.html
new file mode 100644
index 0000000000..3da03edb6a
--- /dev/null
+++ b/src/com/vaadin/tests/components/tabsheet/VerticalScrollbarPosition.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>VerticalScrollbarPosition</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">VerticalScrollbarPosition</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tabsheet.VerticalScrollbarPosition</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetVerticalScrollbarPosition::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[1]/domChild[1]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>2</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetVerticalScrollbarPosition::/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></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>3</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstabsheetVerticalScrollbarPosition::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTabsheet[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>1</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/textfield/IE6Cursor.java b/src/com/vaadin/tests/components/textfield/IE6Cursor.java
new file mode 100644
index 0000000000..aee56dd7ee
--- /dev/null
+++ b/src/com/vaadin/tests/components/textfield/IE6Cursor.java
@@ -0,0 +1,27 @@
+package com.vaadin.tests.components.textfield;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.TextField;
+
+public class IE6Cursor extends TestBase {
+
+ @Override
+ protected void setup() {
+ TextField tf1 = new TextField("First");
+ TextField tf2 = new TextField("Second");
+ tf2.setInputPrompt("prompt");
+
+ addComponent(tf1);
+ addComponent(tf2);
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Tabbing from the first field to the second should clear the second textfield and show the normal, blinking cursor in the field";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3343;
+ }
+
+}
diff --git a/src/com/vaadin/tests/components/tree/TreeNodeCaptionWrapping.html b/src/com/vaadin/tests/components/tree/TreeNodeCaptionWrapping.html
new file mode 100644
index 0000000000..2c2baca773
--- /dev/null
+++ b/src/com/vaadin/tests/components/tree/TreeNodeCaptionWrapping.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>TreeNodeCaptionWrapping</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TreeNodeCaptionWrapping</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tree.TreeNodeCaptionWrapping</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTextPresent</td>
+ <td>1<br /><br /><br /><br /> <br />A very long item that should not wrap<br /><br /> <br />Subitem - also long</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/CenteredWindowWithUndefinedSize.html b/src/com/vaadin/tests/components/window/CenteredWindowWithUndefinedSize.html
new file mode 100644
index 0000000000..2e15d8d645
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/CenteredWindowWithUndefinedSize.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>CenteredWindowWithUndefinedSize</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">CenteredWindowWithUndefinedSize</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.CenteredWindowWithUndefinedSize</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/EmbeddedInSubWindow.html b/src/com/vaadin/tests/components/window/EmbeddedInSubWindow.html
new file mode 100644
index 0000000000..d74e09dd6a
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/EmbeddedInSubWindow.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>EmbeddedInSubWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">EmbeddedInSubWindow</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.EmbeddedInSubWindow</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/SubWindowOrder.java b/src/com/vaadin/tests/components/window/SubWindowOrder.java
new file mode 100644
index 0000000000..ca0d4e662e
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/SubWindowOrder.java
@@ -0,0 +1,28 @@
+package com.vaadin.tests.components.window;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Window;
+
+public class SubWindowOrder extends TestBase {
+
+ @Override
+ protected void setup() {
+ Window mainWindow = getMainWindow();
+ for (int i = 1; i <= 10; i++) {
+ Window dialog = new Window("Dialog " + i, new HorizontalLayout());
+ mainWindow.addWindow(dialog);
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Subwindows should be rendered in the same order as they are added.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3363;
+ }
+
+}
diff --git a/src/com/vaadin/tests/components/window/SubwindowInvalidLayout.html b/src/com/vaadin/tests/components/window/SubwindowInvalidLayout.html
new file mode 100644
index 0000000000..9d54eafd02
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/SubwindowInvalidLayout.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>SubwindowInvalidLayout</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">SubwindowInvalidLayout</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.SubwindowInvalidLayout</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/TestTooSmallSubwindowSize.html b/src/com/vaadin/tests/components/window/TestTooSmallSubwindowSize.html
new file mode 100644
index 0000000000..f926696d63
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/TestTooSmallSubwindowSize.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>TestTooSmallSubwindowSize</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">TestTooSmallSubwindowSize</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.TestTooSmallSubwindowSize</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html b/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.html
new file mode 100644
index 0000000000..51aabc7e8f
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/UndefinedWidthSubWindow.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>UndefinedWidthSubWindow</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">UndefinedWidthSubWindow</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.UndefinedWidthSubWindow</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.html b/src/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.html
new file mode 100644
index 0000000000..4923bff58a
--- /dev/null
+++ b/src/com/vaadin/tests/components/window/WindowShouldRemoveActionHandler.html
@@ -0,0 +1,107 @@
+<?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>WindowShouldRemoveActionHandler</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">WindowShouldRemoveActionHandler</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.window.WindowShouldRemoveActionHandler</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTitle</td>
+ <td>A panel with 2 action handlers</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTitle</td>
+ <td>A panel with 3 action handlers</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTitle</td>
+ <td>A panel with 3 action handlers - Removed handler - Removed handler</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentswindowWindowShouldRemoveActionHandler::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>waitForVaadin</td>
+ <td></td>
+ <td></td>
+</tr>
+<tr>
+ <td>verifyTitle</td>
+ <td>A panel with 2 action handlers</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/src/com/vaadin/ui/Window.java b/src/com/vaadin/ui/Window.java
index c35675b08f..663aabbd79 100644
--- a/src/com/vaadin/ui/Window.java
+++ b/src/com/vaadin/ui/Window.java
@@ -9,8 +9,8 @@ import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
@@ -64,15 +64,15 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
/**
* List of URI handlers for this window.
*/
- private LinkedList uriHandlerList = null;
+ private LinkedList<URIHandler> uriHandlerList = null;
/**
* List of parameter handlers for this window.
*/
- private LinkedList parameterHandlerList = null;
+ private LinkedList<ParameterHandler> parameterHandlerList = null;
/** Set of subwindows */
- private final HashSet subwindows = new HashSet();
+ private final LinkedHashSet<Window> subwindows = new LinkedHashSet<Window>();
/**
* Explicitly specified theme of this window. If null, application theme is
@@ -83,7 +83,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
/**
* Resources to be opened automatically on next repaint.
*/
- private final LinkedList openList = new LinkedList();
+ private final LinkedList<OpenResource> openList = new LinkedList<OpenResource>();
/**
* The name of the window.
@@ -107,7 +107,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
*/
private int positionX = -1;
- private LinkedList notifications;
+ private LinkedList<Notification> notifications;
private boolean modal = false;
@@ -282,7 +282,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
mainWindow.addURIHandler(handler);
} else {
if (uriHandlerList == null) {
- uriHandlerList = new LinkedList();
+ uriHandlerList = new LinkedList<URIHandler>();
}
synchronized (uriHandlerList) {
if (!uriHandlerList.contains(handler)) {
@@ -368,7 +368,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
mainWindow.addParameterHandler(handler);
} else {
if (parameterHandlerList == null) {
- parameterHandlerList = new LinkedList();
+ parameterHandlerList = new LinkedList<ParameterHandler>();
}
synchronized (parameterHandlerList) {
if (!parameterHandlerList.contains(handler)) {
@@ -517,8 +517,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
// Open requested resource
synchronized (openList) {
if (!openList.isEmpty()) {
- for (final Iterator i = openList.iterator(); i.hasNext();) {
- ((OpenResource) i.next()).paintContent(target);
+ for (final Iterator<OpenResource> i = openList.iterator(); i
+ .hasNext();) {
+ (i.next()).paintContent(target);
}
openList.clear();
}
@@ -535,16 +536,17 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
target.addVariable(this, "close", false);
// Paint subwindows
- for (final Iterator i = subwindows.iterator(); i.hasNext();) {
- final Window w = (Window) i.next();
+ for (final Iterator<Window> i = subwindows.iterator(); i.hasNext();) {
+ final Window w = i.next();
w.paint(target);
}
// Paint notifications
if (notifications != null) {
target.startTag("notifications");
- for (final Iterator it = notifications.iterator(); it.hasNext();) {
- final Notification n = (Notification) it.next();
+ for (final Iterator<Notification> it = notifications.iterator(); it
+ .hasNext();) {
+ final Notification n = it.next();
target.startTag("notification");
if (n.getCaption() != null) {
target.addAttribute("caption", n.getCaption());
@@ -1184,7 +1186,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
*
* @return Set of child windows.
*/
- public Set getChildWindows() {
+ public Set<Window> getChildWindows() {
return Collections.unmodifiableSet(subwindows);
}
@@ -1323,7 +1325,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
private void addNotification(Notification notification) {
if (notifications == null) {
- notifications = new LinkedList();
+ notifications = new LinkedList<Notification>();
}
notifications.add(notification);
requestRepaint();