Advertisement
zhytnytskyi

TodoMvcTest

Jul 25th, 2017
123
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.net.azhytnytskyi.housework;
  2.  
  3. import com.codeborne.selenide.ElementsCollection;
  4. import com.codeborne.selenide.Selenide;
  5. import com.codeborne.selenide.SelenideElement;
  6. import org.junit.Test;
  7. import ru.yandex.qatools.allure.annotations.Step;
  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. public class TodoMvcTest extends WithAttachedScreenshotForEachTest {
  17.  
  18.     @Test
  19.     public void basicTaskManagementFlow() {
  20.  
  21.         open("/");
  22.         Selenide.sleep(1000);
  23.  
  24.         add("a", "b", "c", "d");
  25.         assertTasks("a", "b", "c", "d");
  26.  
  27.         edit("a", "a edited");
  28.  
  29.         toggle("a edited");
  30.         toggle("b");
  31.         clearCompleted();
  32.         assertTasks("c", "d");
  33.  
  34.         discardEdit("c", "to be discarded");
  35.  
  36.         delete("c");
  37.         assertTasks("d");
  38.     }
  39.  
  40.     private static final ElementsCollection tasks = $$("#todo-list>li");
  41.  
  42.     @Step
  43.     private void add(String... taskNames) {
  44.         for (String task : taskNames) {
  45.             $("#new-todo").setValue(task).pressEnter();
  46.         }
  47.     }
  48.  
  49.     @Step
  50.     private void edit(String oldTaskName, String newTaskName) {
  51.         startEdit(oldTaskName, newTaskName).pressEnter();
  52.     }
  53.  
  54.     @Step
  55.     private void discardEdit(String oldTaskName, String newTaskName) {
  56.         startEdit(oldTaskName, newTaskName).pressEscape();
  57.     }
  58.  
  59.     @Step
  60.     private void toggle(String taskName) {
  61.         tasks.findBy(exactText(taskName)).find(".toggle").click();
  62.     }
  63.  
  64.     @Step
  65.     private void clearCompleted() {
  66.         $("#clear-completed").click();
  67.     }
  68.  
  69.     @Step
  70.     private void delete(String taskName) {
  71.         tasks.findBy(exactText(taskName)).hover().find(".destroy").click();
  72.     }
  73.  
  74.     @Step
  75.     private static void assertTasks(String... taskNames) {
  76.         tasks.shouldHave(exactTexts(taskNames));
  77.     }
  78.  
  79.     @Step
  80.     private SelenideElement startEdit(String oldTaskName, String newTaskName) {
  81.         tasks.findBy(exactText(oldTaskName)).doubleClick();
  82.         return tasks.findBy(cssClass("editing")).find(".edit").setValue(newTaskName);
  83.     }
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement