Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua.net.azhytnytskyi.housework;
- import com.codeborne.selenide.ElementsCollection;
- import com.codeborne.selenide.Screenshots;
- import com.codeborne.selenide.Selenide;
- import com.codeborne.selenide.SelenideElement;
- import com.google.common.io.Files;
- import org.junit.After;
- import org.junit.Test;
- import ru.yandex.qatools.allure.annotations.Attachment;
- import ru.yandex.qatools.allure.annotations.Description;
- import ru.yandex.qatools.allure.annotations.Step;
- import ru.yandex.qatools.allure.annotations.Title;
- import java.io.File;
- import java.io.IOException;
- import static com.codeborne.selenide.CollectionCondition.exactTexts;
- import static com.codeborne.selenide.Condition.cssClass;
- import static com.codeborne.selenide.Condition.exactText;
- import static com.codeborne.selenide.Selenide.$;
- import static com.codeborne.selenide.Selenide.$$;
- @Title("TODO MVC TEST SUIT")
- @Description("TODOMVC application functionality check")
- public class TodoMvcTest extends BasicTest{
- @Title("TC1")
- @Description("Check the CRUD operations with tasks in TODOMVC app")
- @Test
- public void basicTaskManagementFlow(){
- Selenide.open("/");
- Selenide.sleep(1000);
- add("a", "b", "c", "d");
- assertTasks("a", "b", "c", "d");
- edit("a","a edited");
- complete("a edited","b");
- clearCompleted();
- assertTasks("c", "d");
- discardEdit("c", "to be discarded");
- delete("c");
- assertTasks("d");
- }
- private static final ElementsCollection tasks = $$("#todo-list>li");
- @Step("add new task")
- private void add(String... taskName) {
- for (String task : taskName) {
- $("#new-todo").setValue(task).pressEnter();
- }
- }
- @Step("edit task - from {0} to {1}")
- private void edit(String oldTasName, String newTaskName){
- startEdit(oldTasName,newTaskName).pressEnter();
- }
- @Step("discard edit")
- private void discardEdit(String oldTasName, String newTaskName){
- startEdit(oldTasName,newTaskName).pressEscape();
- }
- @Step("complete task(s): {0}")
- private void complete(String... tasksToComplete){
- for (String task: tasksToComplete){
- tasks.findBy(exactText(task)).find(".toggle").click();
- }
- }
- @Step("clear completed tasks")
- private void clearCompleted(){
- $("#clear-completed").click();
- }
- @Step("delete task: {0}")
- private void delete(String taskToDelete){
- tasks.findBy(exactText(taskToDelete)).hover().find(".destroy").click();
- try {
- screenshot();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @Step("assert task(s):{0}")
- private static void assertTasks(String... taskName) {
- tasks.shouldHave(exactTexts(taskName));
- }
- @Step("start edit: from {0} to {1}")
- private SelenideElement startEdit(String oldTaskName, String newTaskName) {
- tasks.findBy(exactText(oldTaskName)).doubleClick();
- return tasks.findBy(cssClass("editing")).find(".edit").setValue(newTaskName);
- }
- @After
- public void afterTest(){
- try {
- screenshot();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @Attachment(type = "image/png")
- public byte[] screenshot() throws IOException {
- File screenshot = Screenshots.takeScreenShotAsFile();
- return Files.toByteArray(screenshot);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement