You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VaadinSpringBootSmokeIT.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.example;
  2. import org.junit.Assert;
  3. import org.junit.Before;
  4. import org.junit.Rule;
  5. import org.junit.Test;
  6. import org.junit.runner.RunWith;
  7. import org.openqa.selenium.phantomjs.PhantomJSDriver;
  8. import org.springframework.boot.context.embedded.LocalServerPort;
  9. import org.springframework.boot.test.context.SpringBootTest;
  10. import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
  11. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  12. import com.example.ui.SubPathUI;
  13. import com.vaadin.testbench.ScreenshotOnFailureRule;
  14. import com.vaadin.testbench.TestBench;
  15. import com.vaadin.testbench.TestBenchTestCase;
  16. import com.vaadin.testbench.elements.ButtonElement;
  17. import com.vaadin.testbench.elements.NotificationElement;
  18. import com.vaadin.testbench.elements.PanelElement;
  19. import com.vaadin.testbench.parallel.Browser;
  20. @RunWith(SpringJUnit4ClassRunner.class)
  21. @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
  22. public class VaadinSpringBootSmokeIT extends TestBenchTestCase {
  23. @Rule
  24. public ScreenshotOnFailureRule screenshotRule = new ScreenshotOnFailureRule(
  25. this, true);
  26. @LocalServerPort
  27. Integer port;
  28. @Before
  29. public void setUp() {
  30. setDriver(TestBench.createDriver(new PhantomJSDriver(
  31. Browser.PHANTOMJS.getDesiredCapabilities())));
  32. }
  33. @Test
  34. public void testPageLoadsAndButtonWorks() {
  35. getDriver().navigate()
  36. .to("http://localhost:" + port + DemoApplication.CONTEXT);
  37. runSmokeTest();
  38. }
  39. @Test
  40. public void testPageLoadsAndButtonWorksWithExtraSlash() {
  41. getDriver().navigate()
  42. .to("http://localhost:" + port + "/" + DemoApplication.CONTEXT);
  43. runSmokeTest();
  44. }
  45. @Test
  46. public void testSubPathPageLoadsAndButtonWorks() {
  47. getDriver().navigate().to("http://localhost:" + port
  48. + DemoApplication.CONTEXT + "/" + SubPathUI.SUBPATH);
  49. runSmokeTest();
  50. }
  51. @Test
  52. public void testSubPathPageLoadsAndButtonWorksWithExtraSlash() {
  53. getDriver().navigate().to("http://localhost:" + port + "/"
  54. + DemoApplication.CONTEXT + "/" + SubPathUI.SUBPATH);
  55. runSmokeTest();
  56. }
  57. private void runSmokeTest() {
  58. $(ButtonElement.class).in($(PanelElement.class)).first().click();
  59. Assert.assertTrue($(NotificationElement.class).exists());
  60. Assert.assertEquals(ThankYouService.THANK_YOU_TEXT,
  61. $(NotificationElement.class).first().getText());
  62. }
  63. }