/*
 * Copyright 2000-2014 Vaadin Ltd.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.vaadin.tests.integration;

import com.vaadin.testbench.parallel.TestNameSuffix;
import com.vaadin.tests.tb3.PrivateTB3Configuration;

/**
 * Base class for integration tests. Integration tests use the
 * {@literal deployment.url} parameter to determine the base deployment url
 * (http://hostname:123)
 * 
 * @author Vaadin Ltd
 */
@TestNameSuffix(property = "server-name")
public abstract class AbstractIntegrationTest extends PrivateTB3Configuration {
    @Override
    protected String getBaseURL() {
        String deploymentUrl = System.getProperty("deployment.url");
        if (deploymentUrl == null || deploymentUrl.equals("")) {
            throw new RuntimeException(
                    "Deployment url must be given as deployment.url");
        }
        return deploymentUrl;
    }

}

@@ -631,16 +631,96 @@
 ation;%0A%0A
+import com.vaadin.testbench.By;%0Aimport com.vaadin.testbench.elements.UIElement;%0A
 import c
@@ -1480,10 +1480,338 @@
 %0A    %7D%0A%0A
+    @Override%0A    protected void openTestURL() %7B%0A        super.openTestURL();%0A%0A        waitForApplication();%0A    %7D%0A%0A    protected void waitForApplication() %7B%0A        if (!isElementPresent(UIElement.class)) %7B%0A            // Wait for UI element.%0A            waitForElementPresent(By.vaadin(%22//com.vaadin.ui.UI%22));%0A        %7D%0A    %7D%0A
 %7D%0A

Add a simple waitForApplication for servlet integration tests