Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

UriFragmentTest.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.vaadin.tests.components.ui;
  2. import static org.junit.Assert.assertEquals;
  3. import org.junit.Test;
  4. import org.openqa.selenium.JavascriptExecutor;
  5. import com.vaadin.testbench.By;
  6. import com.vaadin.tests.tb3.MultiBrowserTest;
  7. public class UriFragmentTest extends MultiBrowserTest {
  8. @Test
  9. public void testUriFragment() throws Exception {
  10. driver.get(getTestUrl() + "#urifragment");
  11. assertFragment("urifragment");
  12. navigateToTest();
  13. assertFragment("test");
  14. ((JavascriptExecutor) driver).executeScript("history.back()");
  15. assertFragment("urifragment");
  16. ((JavascriptExecutor) driver).executeScript("history.forward()");
  17. assertFragment("test");
  18. // Open other URL in between to ensure the page is loaded again
  19. // (testbench doesn't like opening a URI that only changes the fragment)
  20. driver.get(getBaseURL() + "/statictestfiles/");
  21. driver.get(getTestUrl());
  22. // Empty initial fragment
  23. assertEquals("No URI fragment set", getFragmentLabelValue());
  24. navigateToNull();
  25. // Still no # after setting to null
  26. assertEquals("No URI fragment set", getFragmentLabelValue());
  27. navigateToEmptyFragment();
  28. // Empty # is added when setting to ""
  29. assertEquals("Current URI fragment:", getFragmentLabelValue());
  30. navigateToTest();
  31. assertFragment("test");
  32. navigateToNull(); // Setting to null when there is a fragment actually
  33. // sets it to #
  34. assertEquals("Current URI fragment:", getFragmentLabelValue());
  35. // ensure IE works with new popstate based implementation, see
  36. // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3740423/
  37. driver.findElement(By.xpath("//*[@id = 'link']/a")).click();
  38. assertFragment("linktest");
  39. }
  40. private void assertFragment(String fragment) {
  41. final String expectedText = "Current URI fragment: " + fragment;
  42. waitUntil(input -> expectedText.equals(getFragmentLabelValue()));
  43. }
  44. private void navigateToEmptyFragment() {
  45. hitButton("empty");
  46. }
  47. private void navigateToNull() {
  48. hitButton("null");
  49. }
  50. private void navigateToTest() {
  51. hitButton("test");
  52. }
  53. private String getFragmentLabelValue() {
  54. return vaadinElementById("fragmentLabel").getText();
  55. }
  56. }