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.

PushStateAndReplaceStateTest.java 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.vaadin.tests.components.ui;
  2. import static org.junit.Assert.assertEquals;
  3. import java.net.URI;
  4. import org.junit.Test;
  5. import com.vaadin.testbench.By;
  6. import com.vaadin.tests.tb3.MultiBrowserTest;
  7. public class PushStateAndReplaceStateTest extends MultiBrowserTest {
  8. @Test
  9. public void testUriFragment() throws Exception {
  10. driver.get(getTestUrl());
  11. assertUri(getTestUrl());
  12. hitButton("test");
  13. assertUri(getTestUrl() + "/test");
  14. driver.navigate().back();
  15. driver.findElement(By.className("v-Notification")).getText()
  16. .contains("Popstate event");
  17. assertUri(getTestUrl());
  18. hitButton("test");
  19. URI base = new URI(getTestUrl() + "/test");
  20. hitButton("X");
  21. URI current = base.resolve("X");
  22. driver.findElement(By.xpath("//*[@id = 'replace']/input")).click();
  23. hitButton("root_X");
  24. current = current.resolve("/X");
  25. assertUri(current.toString());
  26. // Now that last change was with replace state, two back calls should go
  27. // to initial
  28. driver.navigate().back();
  29. driver.navigate().back();
  30. assertUri(getTestUrl());
  31. }
  32. private void assertUri(String uri) {
  33. final String expectedText = "Current Location: " + uri;
  34. waitUntil(input -> expectedText.equals(getLocationLabelValue()));
  35. assertEquals(uri, driver.getCurrentUrl());
  36. }
  37. private String getLocationLabelValue() {
  38. String text = vaadinElementById("locationLabel").getText();
  39. return text;
  40. }
  41. }