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

ThemeChangeOnTheFlyTest.java 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.vaadin.tests.themes;
  2. import static org.hamcrest.CoreMatchers.containsString;
  3. import static org.hamcrest.MatcherAssert.assertThat;
  4. import java.io.IOException;
  5. import org.junit.Test;
  6. import org.openqa.selenium.By;
  7. import org.openqa.selenium.WebElement;
  8. import com.vaadin.testbench.elements.ButtonElement;
  9. import com.vaadin.tests.tb3.MultiBrowserTest;
  10. public class ThemeChangeOnTheFlyTest extends MultiBrowserTest {
  11. @Test
  12. public void injectedStyleAndThemeChange() throws IOException {
  13. openTestURL();
  14. $(ButtonElement.class).caption("Inject blue background").first()
  15. .click();
  16. changeTheme("runo");
  17. compareScreen("runo-blue-background");
  18. }
  19. @Test
  20. public void reindeerToOthers() throws IOException {
  21. openTestURL();
  22. compareScreen("reindeer");
  23. changeThemeAndCompare("runo");
  24. changeThemeAndCompare("chameleon");
  25. changeThemeAndCompare("base");
  26. }
  27. @Test
  28. public void runoToReindeer() throws IOException {
  29. openTestURL("theme=runo");
  30. compareScreen("runo");
  31. changeThemeAndCompare("reindeer");
  32. }
  33. @Test
  34. public void reindeerToNullToReindeer() throws IOException {
  35. openTestURL();
  36. changeTheme("null");
  37. changeThemeAndCompare("reindeer");
  38. }
  39. private void changeThemeAndCompare(String theme) throws IOException {
  40. changeTheme(theme);
  41. compareScreen(theme);
  42. }
  43. private void changeTheme(String theme) {
  44. $(ButtonElement.class).id(theme).click();
  45. if (theme.equals("null")) {
  46. waitForThemeToChange("");
  47. assertOverlayTheme("");
  48. } else {
  49. waitForThemeToChange(theme);
  50. assertOverlayTheme(theme);
  51. }
  52. }
  53. private void assertOverlayTheme(String theme) {
  54. final WebElement overlayContainerDiv = findElement(
  55. By.xpath("//div[contains(@class,'v-overlay-container')]"));
  56. String overlayClass = overlayContainerDiv.getAttribute("class").trim();
  57. assertThat(overlayClass, containsString(theme));
  58. }
  59. }