Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. // Setting to null when there is a fragment actually
  33. // sets it to #
  34. navigateToNull();
  35. assertEquals("Current URI fragment:", getFragmentLabelValue());
  36. // ensure IE works with new popstate based implementation, see
  37. // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3740423/
  38. driver.findElement(By.xpath("//*[@id = 'link']/a")).click();
  39. assertFragment("linktest");
  40. }
  41. private void assertFragment(String fragment) {
  42. final String expectedText = "Current URI fragment: " + fragment;
  43. waitUntil(input -> expectedText.equals(getFragmentLabelValue()));
  44. }
  45. private void navigateToEmptyFragment() {
  46. hitButton("empty");
  47. }
  48. private void navigateToNull() {
  49. hitButton("null");
  50. }
  51. private void navigateToTest() {
  52. hitButton("test");
  53. }
  54. private String getFragmentLabelValue() {
  55. return vaadinElementById("fragmentLabel").getText();
  56. }
  57. }