Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.37 KB | None | 0 0
  1. package com.ITlabs.firstTest.v3.SmokeE2E;
  2.  
  3. import com.codeborne.selenide.ElementsCollection;
  4. import com.codeborne.selenide.SelenideElement;
  5. import org.junit.Test;
  6. import org.openqa.selenium.By;
  7.  
  8.  
  9. import static com.codeborne.selenide.CollectionCondition.empty;
  10. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  11. import static com.codeborne.selenide.Condition.*;
  12. import static com.codeborne.selenide.Selenide.*;
  13.  
  14. /**
  15.  * Created by aru on 2017-01-06.
  16.  */
  17. public class ToDoMVCTest {
  18.     @Test
  19.     public void taskManagement() {
  20.  
  21.         open("https://todomvc4tasj.herokuapp.com/#/");
  22.  
  23.         add("1");
  24.         edit("1", "1_edited");
  25.         toggle("1_edited");
  26.         assertTasksAre("1_edited");
  27.  
  28.         filterActive();
  29.         assertNoTasks();
  30.         add("2");
  31.         assertItemsCountIs(1);
  32.         cancelEdit("2", "2_edited");
  33.         assertTasksAre("2");
  34.         toggleAll();
  35.         assertNoTasks();
  36.  
  37.         filterCompleted();
  38.         assertTasksAre("1_edited","2");
  39.         toggle("2");
  40.         clearCompleted();
  41.         assertNoTasks();
  42.  
  43.         filterAll();
  44.         delete("2");
  45.         assertNoTasks();
  46.  
  47.     }
  48.  
  49.     private ElementsCollection tasks = $$("#todo-list>li");
  50.  
  51.     private void clearCompleted() {
  52.         $("#clear-completed").click();
  53.     }
  54.  
  55.     private void delete(String taskText) {
  56.         tasks.find(exactText(taskText)).hover().$(".destroy").click();
  57.     }
  58.  
  59.     private void add(String... taskTexts) {
  60.         for (String text : taskTexts) {
  61.             $("#new-todo").setValue(text).pressEnter();
  62.         }
  63.     }
  64.  
  65.  
  66.     private SelenideElement startEdit(String oldTaskText, String newTaskText){
  67.  
  68.         tasks.find(exactText(oldTaskText)).doubleClick();
  69.         return(tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
  70.         /*есть вторая версия реализации, c переменной; так лучше читается что возвращает метод, но зато лишние строки кода. Стоит ли так?
  71.         SelenideElement editedTaskText=tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
  72.         return = editedTaskText;
  73.         */
  74.     }
  75.  
  76.     private void edit(String oldTaskText, String newTaskText) {
  77.         startEdit(oldTaskText, newTaskText).pressEnter();
  78.     }
  79.  
  80.     private void cancelEdit(String oldTaskText, String newTaskText) {
  81.         startEdit(oldTaskText, newTaskText).pressEscape();
  82.     }
  83.  
  84.  
  85.     private void assertTasksAre (String... taskTexts) {
  86.         tasks.filterBy(visible).shouldHave(exactTexts(taskTexts));
  87.     }
  88.  
  89.  
  90.     private void toggle(String taskText) {
  91.         tasks.find(exactText(taskText)).hover().$(".toggle").click();
  92.     }
  93.  
  94.     private void toggleAll() {
  95.         $("#toggle-all").click();
  96.     }
  97.  
  98.     private void assertNoTasks() {
  99.         tasks.filterBy(visible).shouldBe(empty);
  100.     }
  101.  
  102.  
  103.      private void filterActive() {
  104.         $(By.linkText("Active")).click();
  105.     }
  106.     private void filterCompleted() {
  107.         $(By.linkText("Completed")).click();
  108.     }
  109.     private void filterAll() {
  110.         $(By.linkText("All")).click();
  111.     }
  112.  
  113.  
  114.     private void assertItemsCountIs(int tasksLeftInt) {
  115.         String tasksLeftString = Integer.toString(tasksLeftInt);
  116.         $("#todo-count>strong").shouldHave(exactText(tasksLeftString));
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement