Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ITlabs.firstTest.v3.SmokeE2E;
- import com.codeborne.selenide.ElementsCollection;
- import com.codeborne.selenide.SelenideElement;
- import org.junit.Test;
- import org.openqa.selenium.By;
- import static com.codeborne.selenide.CollectionCondition.empty;
- import static com.codeborne.selenide.CollectionCondition.exactTexts;
- import static com.codeborne.selenide.Condition.*;
- import static com.codeborne.selenide.Selenide.*;
- /**
- * Created by aru on 2017-01-06.
- */
- public class ToDoMVCTest {
- @Test
- public void taskManagement() {
- open("https://todomvc4tasj.herokuapp.com/#/");
- add("1");
- edit("1", "1_edited");
- toggle("1_edited");
- assertTasksAre("1_edited");
- filterActive();
- assertNoTasks();
- add("2");
- assertItemsCountIs(1);
- cancelEdit("2", "2_edited");
- assertTasksAre("2");
- toggleAll();
- assertNoTasks();
- filterCompleted();
- assertTasksAre("1_edited","2");
- toggle("2");
- clearCompleted();
- assertNoTasks();
- filterAll();
- delete("2");
- assertNoTasks();
- }
- private ElementsCollection tasks = $$("#todo-list>li");
- private void clearCompleted() {
- $("#clear-completed").click();
- }
- private void delete(String taskText) {
- tasks.find(exactText(taskText)).hover().$(".destroy").click();
- }
- private void add(String... taskTexts) {
- for (String text : taskTexts) {
- $("#new-todo").setValue(text).pressEnter();
- }
- }
- private SelenideElement startEdit(String oldTaskText, String newTaskText){
- tasks.find(exactText(oldTaskText)).doubleClick();
- return(tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
- /*есть вторая версия реализации, c переменной; так лучше читается что возвращает метод, но зато лишние строки кода. Стоит ли так?
- SelenideElement editedTaskText=tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
- return = editedTaskText;
- */
- }
- private void edit(String oldTaskText, String newTaskText) {
- startEdit(oldTaskText, newTaskText).pressEnter();
- }
- private void cancelEdit(String oldTaskText, String newTaskText) {
- startEdit(oldTaskText, newTaskText).pressEscape();
- }
- private void assertTasksAre (String... taskTexts) {
- tasks.filterBy(visible).shouldHave(exactTexts(taskTexts));
- }
- private void toggle(String taskText) {
- tasks.find(exactText(taskText)).hover().$(".toggle").click();
- }
- private void toggleAll() {
- $("#toggle-all").click();
- }
- private void assertNoTasks() {
- tasks.filterBy(visible).shouldBe(empty);
- }
- private void filterActive() {
- $(By.linkText("Active")).click();
- }
- private void filterCompleted() {
- $(By.linkText("Completed")).click();
- }
- private void filterAll() {
- $(By.linkText("All")).click();
- }
- private void assertItemsCountIs(int tasksLeftInt) {
- String tasksLeftString = Integer.toString(tasksLeftInt);
- $("#todo-count>strong").shouldHave(exactText(tasksLeftString));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement