Advertisement
zhytnytskyi

Refactoring task v.2

Jun 18th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.13 KB | None | 0 0
  1. package ua.com.azhytnytskyi.refactoringtask;
  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.  
  9. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  10. import static com.codeborne.selenide.Condition.cssClass;
  11. import static com.codeborne.selenide.Condition.exactText;
  12. import static com.codeborne.selenide.Selenide.$;
  13. import static com.codeborne.selenide.Selenide.$$;
  14. import static com.codeborne.selenide.Selenide.open;
  15.  
  16. @Test
  17.     public void checkBasicTasksManagementFlow() {
  18.  
  19.         open("http://todomvc4tasj.herokuapp.com/");
  20.         Selenide.sleep(1000);
  21.  
  22.         // Add new tasks
  23.         add("a", "b", "c", "d");
  24.         assertTasks("a", "b", "c", "d");
  25.  
  26.         // Editing check
  27.         startEdit("a", "a edited").pressEnter();
  28.  
  29.         // Mark as completed and press Clear Completed button
  30.         toggleTasks("a edited", "b");
  31.         $("#clear-completed").click();
  32.         assertTasks("c", "d");
  33.  
  34.         // Discard editing
  35.         startEdit("c", "to be discarded").pressEscape();
  36.  
  37.         // Delete task
  38.         findByExactText("c").hover().find(".destroy").click();
  39.         assertTasks("d");
  40.     }
  41.  
  42.     private final ElementsCollection tasks = $$("#todo-list>li");
  43.  
  44.     private void add(String... taskName) {
  45.         for (String task: taskName) {
  46.             $("#new-todo").setValue(task).pressEnter();
  47.         }
  48.     }
  49.  
  50.     private void assertTasks(String... taskName) {
  51.         tasks.shouldHave(exactTexts(taskName));
  52.     }
  53.  
  54.     private void toggleTasks(String... taskName){
  55.         for (String task: taskName){
  56.             findByExactText(task).find(".toggle").click();
  57.         }
  58.     }
  59.  
  60.     private SelenideElement startEdit(String oldTaskName, String newTaskName){
  61.         findByExactText(oldTaskName).doubleClick();
  62.         return tasks.findBy(cssClass("editing")).find(".edit").setValue(newTaskName);
  63.     }
  64.  
  65.     private SelenideElement findByExactText(String taskName){
  66.         return tasks.findBy(exactText(taskName));
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement