Advertisement
zhytnytskyi

Untitled

Jul 6th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. package ua.com.azhytnytskyi.poctask;
  2.  
  3. import com.codeborne.selenide.Configuration;
  4. import com.codeborne.selenide.ElementsCollection;
  5. import com.codeborne.selenide.Selenide;
  6. import com.codeborne.selenide.SelenideElement;
  7. import org.junit.Test;
  8. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  9. import static com.codeborne.selenide.Condition.cssClass;
  10. import static com.codeborne.selenide.Condition.exactText;
  11. import static com.codeborne.selenide.Selenide.$;
  12. import static com.codeborne.selenide.Selenide.$$;
  13. import static com.codeborne.selenide.Selenide.open;
  14.  
  15. public class TodoMvcTestKiss {
  16.  
  17.     @Test
  18.     public void basicTaskManagementFlow(){
  19.  
  20.         openPage();
  21.  
  22.         add("a", "b", "c", "d");
  23.         assertTasks("a", "b", "c", "d");
  24.  
  25.         edit("a","a edited");
  26.  
  27.         complete("a edited","b");
  28.         clearCompleted();
  29.         assertTasks("c", "d");
  30.  
  31.         discardEditing("c", "to be discarded");
  32.  
  33.         delete("c");
  34.         assertTasks("d");
  35.     }
  36.  
  37.     private static final ElementsCollection tasks = $$("#todo-list>li");
  38.  
  39.     private void openPage(){
  40.         open("http://todomvc4tasj.herokuapp.com/");
  41.         Selenide.sleep(1000);
  42.     }
  43.  
  44.     private void add(String... taskName) {
  45.         for (String task: taskName) {
  46.             $("#new-todo").setValue(task).pressEnter();
  47.         }
  48.     }
  49.  
  50.     private void edit(String oldTasName, String newTaskName){
  51.         startEdit(oldTasName,newTaskName).pressEnter();
  52.     }
  53.  
  54.     private void discardEdit(String oldTasName, String newTaskName){
  55.         startEdit(oldTasName,newTaskName).pressEscape();
  56.     }
  57.  
  58.     private void complete(String... tasksToComplete){
  59.         for (String task: tasksToComplete){
  60.             tasks.findBy(exactText(task)).find(".toggle").click();
  61.         }
  62.     }
  63.  
  64.     private void clearCompleted(){
  65.         $("#clear-completed").click();
  66.     }
  67.  
  68.     private void delete(String taskToDelete){
  69.         tasks.findBy(exactText(taskToDelete)).hover().find(".destroy").click();
  70.     }
  71.  
  72.     private static void assertTasks(String... taskName) {
  73.         tasks.shouldHave(exactTexts(taskName));
  74.     }
  75.  
  76.     private SelenideElement startEdit(String oldTaskName, String newTaskName) {
  77.         tasks.findBy(exactText(oldTaskName)).doubleClick();
  78.         return tasks.findBy(cssClass("editing")).find(".edit").setValue(newTaskName);
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement