Advertisement
zhytnytskyi

Refactoring Task

May 11th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.88 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.SelenideElement;
  6. import org.junit.Test;
  7.  
  8. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  9. import static com.codeborne.selenide.Condition.exactText;
  10. import static com.codeborne.selenide.Selenide.$;
  11. import static com.codeborne.selenide.Selenide.$$;
  12. import static com.codeborne.selenide.Selenide.open;
  13.  
  14. public class TodoMvcTest {
  15.  
  16.     @Test
  17.     public void completeTask(){
  18.  
  19.         open("http://todomvc.com/examples/emberjs");
  20.  
  21.         //Add 3 new tasks and check
  22.         addNewTasks("a","b","c");
  23.         allTasks.shouldHaveSize(3);
  24.         allTasks.shouldHave(exactTexts("a", "b", "c"));
  25.  
  26.         //Toggle task check
  27.         performToggleAction(getSpecificTaskByIndex(2));
  28.         completedTasks.shouldHave(exactTexts("b"));
  29.         notCompletedTasks.shouldHave(exactTexts("a","c"));
  30.  
  31.         //Check Completed tab
  32.         openSpecificFooterTab("completed");
  33.         allTasks.shouldHave(exactTexts("b"));
  34.  
  35.         //Check Active tab
  36.         openSpecificFooterTab("active");
  37.         allTasks.shouldHave(exactTexts("a","c"));
  38.  
  39.         //Return back to all tasks tab
  40.         openSpecificFooterTab("all");
  41.  
  42.         //Untoggle task check
  43.         performToggleAction(getSpecificTaskByIndex(2));
  44.         notCompletedTasks.shouldHave(exactTexts("a", "b", "c"));
  45.  
  46.         //Editing check
  47.         getSpecificTaskByExactText("a").doubleClick();
  48.         $("#todo-list li").find(".edit").setValue("new a").pressEnter();
  49.  
  50.         //Delete one task check
  51.         getSpecificTaskByExactText("new a").hover().find(".destroy").click();
  52.         allTasks.shouldHave(exactTexts("b", "c"));
  53.  
  54.         //Toggle All check
  55.         $("#toggle-all").click();
  56.         completedTasks.shouldHave(exactTexts("b","c"));
  57.  
  58.         //Clear all check
  59.         $("#footer #clear-completed").click();
  60.  
  61.     }
  62.  
  63.     private final ElementsCollection allTasks = $$("#todo-list li");
  64.     private final ElementsCollection notCompletedTasks = $$("#todo-list li:not(.completed)");
  65.     private final ElementsCollection completedTasks = $$("#todo-list li.completed");
  66.  
  67.     private void addNewTasks(String... tasks) {
  68.         for (String task: tasks){
  69.             $("#new-todo").setValue(task).pressEnter();
  70.         }
  71.     }
  72.  
  73.     private SelenideElement getSpecificTaskByIndex(int index){
  74.         return $("#todo-list li:nth-of-type( " + index + ")");
  75.     }
  76.  
  77.     private SelenideElement getSpecificTaskByExactText(String text){
  78.         return allTasks.findBy(exactText(text));
  79.     }
  80.  
  81.     private void openSpecificFooterTab(String tabName){
  82.         $$("#filters li").findBy(exactText(tabName)).click();
  83.     }
  84.  
  85.     private void performToggleAction(SelenideElement selenideElement){
  86.         selenideElement.find(".toggle").click();
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement