Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 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.         //reopen
  40.         toggle("2");
  41.         clearCompleted();
  42.         assertNoTasks();
  43.  
  44.         filterAll();
  45.         delete("2");
  46.         assertNoTasks();
  47.  
  48.     }
  49.  
  50.     private ElementsCollection tasks = $$("#todo-list>li");
  51.  
  52.     private void clearCompleted() {
  53.         $("#clear-completed").click();
  54.     }
  55.  
  56.     private void delete(String taskText) {
  57.         tasks.find(exactText(taskText)).hover().$(".destroy").click();
  58.     }
  59.  
  60.     private void add(String... taskTexts) {
  61.         for (String text : taskTexts) {
  62.             $("#new-todo").setValue(text).pressEnter();
  63.         }
  64.     }
  65.  
  66.  
  67.     private SelenideElement startEdit(String oldTaskText, String newTaskText){
  68.  
  69.         tasks.find(exactText(oldTaskText)).doubleClick();
  70.         return(tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
  71.         /*есть вторая версия реализации, c переменной; так лучше читается что возвращает метод, но зато лишние строки кода. Стоит ли так?
  72.         SelenideElement editedTaskText=tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText));
  73.         return = editedTaskText;
  74.         */
  75.     }
  76.  
  77.     private void edit(String oldTaskText, String newTaskText) {
  78.         startEdit(oldTaskText, newTaskText).pressEnter();
  79.     }
  80.  
  81.     private void cancelEdit(String oldTaskText, String newTaskText) {
  82.         startEdit(oldTaskText, newTaskText).pressEscape();
  83.     }
  84.  
  85.  
  86.     private void assertTasksAre (String... taskTexts) {
  87.         tasks.filterBy(visible).shouldHave(exactTexts(taskTexts));
  88.     }
  89.  
  90.  
  91.     private void toggle(String taskText) {
  92.         tasks.find(exactText(taskText)).hover().$(".toggle").click();
  93.     }
  94.  
  95.     private void toggleAll() {
  96.         $("#toggle-all").click();
  97.     }
  98.  
  99.     private void assertNoTasks() {
  100.         tasks.filterBy(visible).shouldBe(empty);
  101.     }
  102.  
  103.  
  104.      private void filterActive() {
  105.         $(By.linkText("Active")).click();
  106.     }
  107.     private void filterCompleted() {
  108.         $(By.linkText("Completed")).click();
  109.     }
  110.     private void filterAll() {
  111.         $(By.linkText("All")).click();
  112.     }
  113.  
  114.  
  115.     private void assertItemsCountIs(int tasksLeftInt) {
  116.         String tasksLeftString = Integer.toString(tasksLeftInt);
  117.         $("#todo-count>strong").shouldHave(exactText(tasksLeftString));
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement