diff --git a/src/test/java/org/selenide/lt/AnnotatedPageObjectTest.java b/src/test/java/org/selenide/lt/AnnotatedPageObjectTest.java new file mode 100644 index 0000000..4de577a --- /dev/null +++ b/src/test/java/org/selenide/lt/AnnotatedPageObjectTest.java @@ -0,0 +1,46 @@ +package org.selenide.lt; + +import com.codeborne.selenide.ElementsCollection; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.support.FindBy; + +import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; +import static com.codeborne.selenide.CollectionCondition.sizeLessThan; +import static com.codeborne.selenide.Selenide.open; +import static com.codeborne.selenide.Selenide.page; + +public class AnnotatedPageObjectTest { + @BeforeEach + void setUp() { + open("https://selenide.org/users.html"); + } + + @Test + void showsAllKnownSelenideUsers() { + SelenideUsersPage page = page(); + page.users.shouldHave(sizeGreaterThan(40)); + } + + @Test + void canFilterByTag() { + SelenideUsersPage page = page(); + page.filterByTag("usa"); + page.users.shouldHave(sizeLessThan(40)); + } + + private static class SelenideUsersPage { + @FindBy(css = "#selenide-users .user:not(.hidden)") + ElementsCollection users; + + @FindBy(css = "#user-tags .tag") + ElementsCollection userTags; + + public void filterByTag(String tag) { + userTags.stream() + .filter(el -> el.getText().equals(tag)) + .findAny().orElseThrow(() -> new AssertionError("User tag not found: " + tag)) + .click(); + } + } +} diff --git a/src/test/java/org/selenide/lt/LocalStorageTest.java b/src/test/java/org/selenide/lt/LocalStorageTest.java new file mode 100644 index 0000000..1a45642 --- /dev/null +++ b/src/test/java/org/selenide/lt/LocalStorageTest.java @@ -0,0 +1,20 @@ +package org.selenide.lt; + +import org.junit.jupiter.api.Test; + +import static com.codeborne.selenide.LocalStorageConditions.item; +import static com.codeborne.selenide.LocalStorageConditions.itemWithValue; +import static com.codeborne.selenide.Selenide.localStorage; +import static com.codeborne.selenide.Selenide.open; + +public class LocalStorageTest { + @Test + void canCheckLocalStorage() { + open("https://selenide.org/test-page"); + localStorage().shouldNotHave(item("event")); + + localStorage().setItem("event", "Testμ 2024"); + localStorage().shouldHave(item("event")); + localStorage().shouldHave(itemWithValue("event", "Testμ 2024")); + } +} diff --git a/src/test/java/org/selenide/lt/SessionStorageTest.java b/src/test/java/org/selenide/lt/SessionStorageTest.java new file mode 100644 index 0000000..1fd6a16 --- /dev/null +++ b/src/test/java/org/selenide/lt/SessionStorageTest.java @@ -0,0 +1,20 @@ +package org.selenide.lt; + +import org.junit.jupiter.api.Test; + +import static com.codeborne.selenide.Selenide.open; +import static com.codeborne.selenide.Selenide.sessionStorage; +import static com.codeborne.selenide.SessionStorageConditions.item; +import static com.codeborne.selenide.SessionStorageConditions.itemWithValue; + +public class SessionStorageTest { + @Test + void canCheckSessionStorage() { + open("https://selenide.org/test-page"); + sessionStorage().shouldNotHave(item("event")); + + sessionStorage().setItem("event", "Testμ 2024"); + sessionStorage().shouldHave(item("event")); + sessionStorage().shouldHave(itemWithValue("event", "Testμ 2024")); + } +} diff --git a/src/test/java/org/selenide/lt/SimplePageObjectTest.java b/src/test/java/org/selenide/lt/SimplePageObjectTest.java new file mode 100644 index 0000000..187404c --- /dev/null +++ b/src/test/java/org/selenide/lt/SimplePageObjectTest.java @@ -0,0 +1,42 @@ +package org.selenide.lt; + +import com.codeborne.selenide.ElementsCollection; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; +import static com.codeborne.selenide.CollectionCondition.sizeLessThan; +import static com.codeborne.selenide.Selectors.byText; +import static com.codeborne.selenide.Selenide.$; +import static com.codeborne.selenide.Selenide.$$; +import static com.codeborne.selenide.Selenide.open; + +public class SimplePageObjectTest { + @BeforeEach + void setUp() { + open("https://selenide.org/users.html"); + } + + @Test + void showsAllKnownSelenideUsers() { + SelenideUsersPage page = new SelenideUsersPage(); + page.users().shouldHave(sizeGreaterThan(40)); + } + + @Test + void canFilterByTag() { + SelenideUsersPage page = new SelenideUsersPage(); + page.filterByTag("usa"); + page.users().shouldHave(sizeLessThan(40)); + } + + private static class SelenideUsersPage { + public ElementsCollection users() { + return $$("#selenide-users .user:not(.hidden)"); + } + + public void filterByTag(String tag) { + $("#user-tags").find(byText(tag)).click(); + } + } +} diff --git a/src/test/java/org/selenide/lt/WebdriverConditionsTest.java b/src/test/java/org/selenide/lt/WebdriverConditionsTest.java new file mode 100644 index 0000000..ad902bc --- /dev/null +++ b/src/test/java/org/selenide/lt/WebdriverConditionsTest.java @@ -0,0 +1,32 @@ +package org.selenide.lt; + +import org.junit.jupiter.api.Test; + +import static com.codeborne.selenide.Selectors.byText; +import static com.codeborne.selenide.Selenide.$; +import static com.codeborne.selenide.Selenide.open; +import static com.codeborne.selenide.Selenide.webdriver; +import static com.codeborne.selenide.WebDriverConditions.cookie; +import static com.codeborne.selenide.WebDriverConditions.currentFrameUrl; +import static com.codeborne.selenide.WebDriverConditions.numberOfWindows; +import static com.codeborne.selenide.WebDriverConditions.title; +import static com.codeborne.selenide.WebDriverConditions.url; +import static com.codeborne.selenide.WebDriverConditions.urlContaining; +import static com.codeborne.selenide.WebDriverConditions.urlStartingWith; + +public class WebdriverConditionsTest { + @Test + void search() { + open("https://selenide.org"); + $(".main-menu-pages").find(byText("Users")).click(); + + webdriver().shouldHave(url("https://selenide.org/users.html")); + webdriver().shouldHave(urlStartingWith("https://selenide.org")); + webdriver().shouldHave(urlContaining("selenide.org/users")); + webdriver().shouldHave(currentFrameUrl("https://selenide.org/users.html")); + webdriver().shouldHave(numberOfWindows(1)); + webdriver().shouldHave(title("Selenide users")); + webdriver().shouldNotHave(cookie("session", "sid-12345")); + webdriver().shouldNotHave(cookie("session")); + } +}