Advertisement
zhytnytskyi

TodoMvcTest - allure reporting

Jul 23rd, 2017
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. package ua.net.azhytnytskyi.housework;
  2.  
  3. import com.codeborne.selenide.ElementsCollection;
  4. import com.codeborne.selenide.Screenshots;
  5. import com.codeborne.selenide.Selenide;
  6. import com.codeborne.selenide.SelenideElement;
  7. import com.google.common.io.Files;
  8. import org.junit.After;
  9. import org.junit.Test;
  10. import ru.yandex.qatools.allure.annotations.Attachment;
  11. import ru.yandex.qatools.allure.annotations.Description;
  12. import ru.yandex.qatools.allure.annotations.Step;
  13. import ru.yandex.qatools.allure.annotations.Title;
  14.  
  15. import java.io.File;
  16. import java.io.IOException;
  17.  
  18. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  19. import static com.codeborne.selenide.Condition.cssClass;
  20. import static com.codeborne.selenide.Condition.exactText;
  21. import static com.codeborne.selenide.Selenide.$;
  22. import static com.codeborne.selenide.Selenide.$$;
  23.  
  24. @Title("TODO MVC TEST SUIT")
  25. @Description("TODOMVC application functionality check")
  26. public class TodoMvcTest extends BasicTest{
  27.  
  28.     @Title("TC1")
  29.     @Description("Check the CRUD operations with tasks in TODOMVC app")
  30.     @Test
  31.     public void basicTaskManagementFlow(){
  32.  
  33.         Selenide.open("/");
  34.         Selenide.sleep(1000);
  35.  
  36.         add("a", "b", "c", "d");
  37.         assertTasks("a", "b", "c", "d");
  38.  
  39.         edit("a","a edited");
  40.  
  41.         complete("a edited","b");
  42.         clearCompleted();
  43.         assertTasks("c", "d");
  44.  
  45.         discardEdit("c", "to be discarded");
  46.  
  47.         delete("c");
  48.         assertTasks("d");
  49.         }
  50.  
  51.     private static final ElementsCollection tasks = $$("#todo-list>li");
  52.  
  53.     @Step("add new task")
  54.     private void add(String... taskName) {
  55.         for (String task : taskName) {
  56.             $("#new-todo").setValue(task).pressEnter();
  57.         }
  58.     }
  59.  
  60.     @Step("edit task - from {0} to {1}")
  61.     private void edit(String oldTasName, String newTaskName){
  62.         startEdit(oldTasName,newTaskName).pressEnter();
  63.     }
  64.  
  65.     @Step("discard edit")
  66.     private void discardEdit(String oldTasName, String newTaskName){
  67.         startEdit(oldTasName,newTaskName).pressEscape();
  68.     }
  69.  
  70.     @Step("complete task(s): {0}")
  71.     private void complete(String... tasksToComplete){
  72.         for (String task: tasksToComplete){
  73.             tasks.findBy(exactText(task)).find(".toggle").click();
  74.         }
  75.     }
  76.  
  77.     @Step("clear completed tasks")
  78.     private void clearCompleted(){
  79.         $("#clear-completed").click();
  80.     }
  81.  
  82.     @Step("delete task: {0}")
  83.     private void delete(String taskToDelete){
  84.         tasks.findBy(exactText(taskToDelete)).hover().find(".destroy").click();
  85.         try {
  86.             screenshot();
  87.         } catch (IOException e) {
  88.             e.printStackTrace();
  89.         }
  90.     }
  91.  
  92.     @Step("assert task(s):{0}")
  93.     private static void assertTasks(String... taskName) {
  94.         tasks.shouldHave(exactTexts(taskName));
  95.     }
  96.  
  97.     @Step("start edit: from {0} to {1}")
  98.     private SelenideElement startEdit(String oldTaskName, String newTaskName) {
  99.         tasks.findBy(exactText(oldTaskName)).doubleClick();
  100.         return tasks.findBy(cssClass("editing")).find(".edit").setValue(newTaskName);
  101.     }
  102.  
  103.     @After
  104.     public void afterTest(){
  105.         try {
  106.             screenshot();
  107.         } catch (IOException e) {
  108.             e.printStackTrace();
  109.         }
  110.     }
  111.  
  112.     @Attachment(type = "image/png")
  113.     public byte[] screenshot() throws IOException {
  114.         File screenshot = Screenshots.takeScreenShotAsFile();
  115.         return Files.toByteArray(screenshot);
  116.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement