Skip to content

Commit

Permalink
add more samples for Selenide features
Browse files Browse the repository at this point in the history
  • Loading branch information
asolntsev committed Aug 20, 2024
1 parent 8807a19 commit c35ddf3
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 0 deletions.
46 changes: 46 additions & 0 deletions src/test/java/org/selenide/lt/AnnotatedPageObjectTest.java
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
20 changes: 20 additions & 0 deletions src/test/java/org/selenide/lt/LocalStorageTest.java
Original file line number Diff line number Diff line change
@@ -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"));
}
}
20 changes: 20 additions & 0 deletions src/test/java/org/selenide/lt/SessionStorageTest.java
Original file line number Diff line number Diff line change
@@ -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"));
}
}
42 changes: 42 additions & 0 deletions src/test/java/org/selenide/lt/SimplePageObjectTest.java
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
32 changes: 32 additions & 0 deletions src/test/java/org/selenide/lt/WebdriverConditionsTest.java
Original file line number Diff line number Diff line change
@@ -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"));
}
}

0 comments on commit c35ddf3

Please sign in to comment.