blob: 6151586f3b87dc7ae420e35742c0de69079d6a4b [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florian Pirchner <florian.pirchner@gmail.com> - Initial implementation
*/
package org.eclipse.osbp.vaadin.addons.designer.overlay;
import com.vaadin.testbench.ScreenshotOnFailureRule;
import com.vaadin.testbench.TestBenchTestCase;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.LabelElement;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
/**
* This class contains JUnit tests, which are run using Vaadin TestBench 4.
*
* To run this, first get an evaluation license from
* https://vaadin.com/addon/vaadin-testbench and follow the instructions at
* https://vaadin.com/directory/help/installing-cval-license to install it.
*
* Once the license is installed, you can run this class as a JUnit test.
*/
public class OverlayApplicationTest extends TestBenchTestCase {
@Rule
public ScreenshotOnFailureRule screenshotOnFailureRule =
new ScreenshotOnFailureRule(this, true);
@Before
public void setUp() throws Exception {
setDriver(new FirefoxDriver()); // Firefox
// To use Chrome, first install chromedriver.exe from
// http://chromedriver.storage.googleapis.com/index.html
// on your system path (e.g. C:\Windows\System32\)
// setDriver(new ChromeDriver()); // Chrome
// To use Internet Explorer, first install iedriverserver.exe from
// http://selenium-release.storage.googleapis.com/index.html?path=2.43/
// on your system path (e.g. C:\Windows\System32\)
// setDriver(new InternetExplorerDriver()); // IE
// To test headlessly (without a browser), first install phantomjs.exe
// from http://phantomjs.org/download.html on your system path
// (e.g. C:\Windows\System32\)
// setDriver(new PhantomJSDriver()); // PhantomJS headless browser
}
/**
* Opens the URL where the application is deployed.
*/
private void openTestUrl() {
getDriver().get("http://localhost:8080/org.eclipse.osbp.vaadin.addons.designer.overlay");
}
@Test
public void testClickButton() throws Exception {
openTestUrl();
// At first there should be no labels
assertFalse($(LabelElement.class).exists());
// Click the button
ButtonElement clickMeButton = $(ButtonElement.class).
caption("Click Me").first();
clickMeButton.click();
// There should now be one label
assertEquals(1, $(LabelElement.class).all().size());
// ... with the specified text
assertEquals("Thank you for clicking",
$(LabelElement.class).first().getText());
// Click the button again
clickMeButton.click();
// There should now be two labels
List<LabelElement> allLabels = $(LabelElement.class).all();
assertEquals(2, allLabels.size());
// ... and the last label should have the correct text
LabelElement lastLabel = allLabels.get(1);
assertEquals("Thank you for clicking", lastLabel.getText());
}
}