Advertisement
Guest User

TodoMVCFeatureTestsV1

a guest
Jul 1st, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. package ui.net.itlabs.homework3;
  2.  
  3. import com.codeborne.selenide.ElementsCollection;
  4. import com.codeborne.selenide.SelenideElement;
  5. import org.junit.After;
  6. import org.junit.Before;
  7. import org.junit.Test;
  8. import org.openqa.selenium.By;
  9.  
  10. import static com.codeborne.selenide.CollectionCondition.empty;
  11. import static com.codeborne.selenide.CollectionCondition.exactTexts;
  12. import static com.codeborne.selenide.Condition.*;
  13. import static com.codeborne.selenide.Selenide.*;
  14.  
  15. /**
  16. * Created by Tetiana on 7/1/2016.
  17. */
  18. public class TodoMVCTest {
  19.  
  20. @Before
  21. public void openPage() {
  22. open("https://todomvc4tasj.herokuapp.com");
  23. }
  24.  
  25. @After
  26. public void clearData() {
  27. executeJavaScript("localStorage.clear()");
  28. }
  29.  
  30. @Test
  31. public void testTasksWorkflow() {
  32.  
  33. add("a");
  34. toggle("a"); //complete
  35. assertTasks("a");
  36.  
  37. filterActive();
  38. assertNoVisibleTasks();
  39.  
  40. add("b");
  41. assertVisibleTasks("b");
  42.  
  43. toggleAll(); //complete all
  44. assertNoVisibleTasks();
  45.  
  46. filterCompleted();
  47. assertTasks("a", "b");
  48.  
  49. toggle("b");//reopen
  50. assertVisibleTasks("a");
  51. assertItemsLeft(1);
  52.  
  53. clearCompleted();
  54. assertNoVisibleTasks();
  55.  
  56. filterAll();
  57. delete("b");
  58. assertNoTasks();
  59. }
  60.  
  61. @Test
  62.  
  63. public void testTodoMVCEdit() {
  64. add("a");//precondition
  65.  
  66. startEdit("a", "a edited").pressEnter();
  67. assertTasks("a edited");
  68.  
  69. assertItemsLeft(1);
  70. }
  71.  
  72. @Test
  73.  
  74. public void testTodoMVCCancelEdit() {
  75. add("a");//precondition
  76.  
  77. startEdit("a", "a edit canceled").pressEscape();
  78. assertTasks("a");
  79.  
  80. assertItemsLeft(1);
  81. }
  82.  
  83. public void add(String... taskTexts) {
  84. for (String tasksText : taskTexts) {
  85. $("#new-todo").setValue(tasksText).pressEnter();
  86. }
  87. }
  88.  
  89. ElementsCollection tasks = $$("#todo-list>li");
  90.  
  91. public SelenideElement startEdit(String oldTaskText, String newTaskText) {
  92. tasks.find(exactText(oldTaskText)).doubleClick();
  93. return tasks.find(cssClass("editing")).find(".edit").setValue(newTaskText);
  94. }
  95.  
  96. public void delete(String taskText) {
  97. tasks.find(exactText(taskText)).hover().$(".destroy").click();
  98. }
  99.  
  100. public void toggle(String taskText) {
  101. tasks.find(exactText(taskText)).$(".toggle").click();
  102. }
  103.  
  104. public void toggleAll() {
  105. $("#toggle-all").click();
  106. }
  107.  
  108. public void clearCompleted() {
  109. $("#clear-completed").click();
  110. }
  111.  
  112. public void filterActive() {
  113. $(By.linkText("Active")).click();
  114. }
  115.  
  116. public void filterCompleted() {
  117. $(By.linkText("Completed")).click();
  118.  
  119. }
  120.  
  121. public void filterAll() {
  122. $(By.linkText("All")).click();
  123. }
  124.  
  125. public void assertTasks(String... taskTexts) {
  126. tasks.shouldHave(exactTexts(taskTexts));
  127. }
  128.  
  129. public void assertVisibleTasks(String... taskTexts) {
  130. tasks.filter(visible).shouldHave(exactTexts(taskTexts));
  131. }
  132.  
  133. public void assertNoTasks() {
  134. tasks.shouldBe(empty);
  135. }
  136.  
  137. public void assertNoVisibleTasks() {
  138. tasks.filter(visible).shouldBe(empty);
  139. }
  140.  
  141. public void assertItemsLeft(Integer count) {
  142. $("#todo-count>strong").shouldBe(exactText(count.toString()));
  143. }
  144.  
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement