/root/projects/share-po/src/test/java/org/alfresco/po/share/task/EditTaskPageTest.java

https://github.com/deas/alfresco · Java · 201 lines · 153 code · 21 blank · 27 comment · 0 complexity · 27079f18796b0bd40fde7355490c0932 MD5 · raw file

  1. /*
  2. * Copyright (C) 2005-2013 Alfresco Software Limited.
  3. *
  4. * This file is part of Alfresco
  5. *
  6. * Alfresco is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU Lesser General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Alfresco is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. package org.alfresco.po.share.task;
  20. import org.alfresco.po.share.DashBoardPage;
  21. import org.alfresco.po.share.MyTasksPage;
  22. import org.alfresco.po.share.SharePage;
  23. import org.alfresco.po.share.ShareUtil;
  24. import org.alfresco.po.share.site.SiteDashboardPage;
  25. import org.alfresco.po.share.site.SiteFinderPage;
  26. import org.alfresco.po.share.site.SitePage;
  27. import org.alfresco.po.share.site.UploadFilePage;
  28. import org.alfresco.po.share.site.document.DocumentLibraryPage;
  29. import org.alfresco.po.share.util.FailedTestListener;
  30. import org.alfresco.po.share.util.SiteUtil;
  31. import org.testng.annotations.AfterClass;
  32. import org.testng.annotations.BeforeClass;
  33. import org.testng.annotations.Listeners;
  34. import org.testng.annotations.Test;
  35. import java.io.File;
  36. import static org.alfresco.po.share.task.EditTaskPage.Button.*;
  37. import static org.testng.Assert.assertFalse;
  38. import static org.testng.Assert.assertTrue;
  39. /**
  40. * Tests the page object - <code>EditTaskPage</code>
  41. *
  42. * @author Abhijeet Bharade
  43. * @since 1.6.2
  44. */
  45. @Listeners(FailedTestListener.class)
  46. public class EditTaskPageTest extends AbstractTaskTest
  47. {
  48. private EditTaskPage pageUnderTest;
  49. private String otherUser = "";
  50. protected String modSiteName;
  51. protected String itemSiteName;
  52. private SharePage returnedPage;
  53. private SiteFinderPage siteFinder;
  54. private String testUserName;
  55. private String fileName;
  56. @BeforeClass(groups = "Enterprise4.2")
  57. public void setUp() throws Throwable
  58. {
  59. otherUser = "otherUser" + System.currentTimeMillis();
  60. siteName = "AdhocReassign" + System.currentTimeMillis();
  61. modSiteName = "modSiteName" + System.currentTimeMillis();
  62. itemSiteName = "itemSiteName" + System.currentTimeMillis();
  63. taskName = siteName;
  64. testUserName = "reviewer" + System.currentTimeMillis();
  65. createEnterpriseUser(testUserName);
  66. createEnterpriseUser(otherUser);
  67. // add site with item for selectItem test
  68. loginAs(testUserName, "password");
  69. File file = SiteUtil.prepareFile();
  70. fileName = file.getName();
  71. SiteUtil.createSite(drone, itemSiteName, "Moderated");
  72. SitePage site = drone.getCurrentPage().render();
  73. DocumentLibraryPage docPage = site.getSiteNav().selectSiteDocumentLibrary().render();
  74. UploadFilePage upLoadPage = docPage.getNavigation().selectFileUpload().render();
  75. upLoadPage.uploadFile(file.getCanonicalPath()).render();
  76. logout(drone);
  77. createTask(testUserName, "password");
  78. pageUnderTest = myTasksPage.navigateToEditTaskPage(taskName, testUserName).render();
  79. }
  80. @AfterClass(groups = "Enterprise4.2")
  81. public void deleteSite()
  82. {
  83. SiteUtil.deleteSite(drone, siteName);
  84. }
  85. @Test(groups = "Enterprise4.2")
  86. public void checkIsButtonDisplayed()
  87. {
  88. assertTrue(pageUnderTest.isButtonsDisplayed(SAVE_AND_CLOSE));
  89. assertTrue(pageUnderTest.isButtonsDisplayed(CANCEL));
  90. assertTrue(pageUnderTest.isButtonsDisplayed(REASSIGN));
  91. assertTrue(pageUnderTest.isButtonsDisplayed(TASK_DONE));
  92. assertTrue(pageUnderTest.isButtonsDisplayed(ADD));
  93. }
  94. @Test(groups = "Enterprise4.2", dependsOnMethods = "checkIsButtonDisplayed")
  95. public void selectStatusDropDownTest()
  96. {
  97. assertTrue(TaskStatus.NOTYETSTARTED.equals(pageUnderTest.getSelectedStatusFromDropDown()),
  98. "The selected status should be not yet started");
  99. pageUnderTest.selectStatusDropDown(TaskStatus.COMPLETED).render();
  100. assertTrue(TaskStatus.COMPLETED.equals(pageUnderTest.getSelectedStatusFromDropDown()), "The selected status should be completed");
  101. }
  102. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectStatusDropDownTest")
  103. public void selectItem()
  104. {
  105. pageUnderTest.selectItem(fileName, itemSiteName);
  106. pageUnderTest = drone.getCurrentPage().render();
  107. assertTrue(pageUnderTest.getTaskItems().get(0).getItemName().equals(fileName), "The expected item isn't added");
  108. }
  109. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectItem")
  110. public void selectReassign() throws Exception
  111. {
  112. myTasksPage = pageUnderTest.selectReassign(otherUser).render();
  113. assertFalse(myTasksPage.isTaskPresent(taskName), "Task isn't reassigned on the user '" + otherUser + "'");
  114. ShareUtil.logout(drone);
  115. DashBoardPage dash = loginAs(otherUser, "password");
  116. myTasksPage = dash.getNav().selectMyTasks().render();
  117. assertTrue(myTasksPage.isTaskPresent(taskName), "Task isn't reassigned on the user '" + otherUser + "'");
  118. pageUnderTest = myTasksPage.navigateToEditTaskPage(taskName).render();
  119. myTasksPage = pageUnderTest.selectReassign(testUserName).render();
  120. ShareUtil.logout(drone);
  121. dash = loginAs(testUserName, "password");
  122. myTasksPage = dash.getNav().selectMyTasks().render();
  123. assertTrue(myTasksPage.isTaskPresent(taskName), "Task isn't reassigned on the user '" + testUserName + "'");
  124. pageUnderTest = myTasksPage.navigateToEditTaskPage(taskName).render();
  125. }
  126. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectReassign")
  127. public void selectTaskDoneButtonTest()
  128. {
  129. pageUnderTest.enterComment("Task Completed");
  130. returnedPage = pageUnderTest.selectTaskDoneButton().render();
  131. assertTrue(returnedPage instanceof MyTasksPage, "The return page should be an instance of MyTasksPage page");
  132. }
  133. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectTaskDoneButtonTest")
  134. public void selectRejectButtonTest() throws Exception
  135. {
  136. SiteUtil.createSite(drone, modSiteName, "Moderated");
  137. SiteDashboardPage sitePage = drone.getCurrentPage().render();
  138. assertTrue(sitePage.isSiteTitle(modSiteName), "Site Dashboad page should be opened for - " + modSiteName);
  139. ShareUtil.logout(drone);
  140. DashBoardPage dash = loginAs(otherUser, "password");
  141. siteFinder = dash.getNav().selectSearchForSites().render();
  142. siteFinder = siteFinder.searchForSite(modSiteName).render();
  143. siteFinder = SiteUtil.siteSearchRetry(drone, siteFinder, modSiteName);
  144. siteFinder.requestToJoinSite(modSiteName).render();
  145. ShareUtil.logout(drone);
  146. // Rejecting the request to join
  147. dash = loginAs(testUserName, "password");
  148. myTasksPage = dash.getNav().selectMyTasks().render();
  149. pageUnderTest = myTasksPage.navigateToEditTaskPage("Request to join "+modSiteName+" site").render();
  150. returnedPage = pageUnderTest.selectRejectButton().render();
  151. assertTrue(returnedPage instanceof MyTasksPage, "The return page should be an instance of MyTasksPage page");
  152. ShareUtil.logout(drone);
  153. }
  154. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectRejectButtonTest")
  155. public void selectApproveButtonTest() throws Exception
  156. {
  157. DashBoardPage dash = loginAs(otherUser, "password");
  158. siteFinder = dash.getNav().selectSearchForSites().render();
  159. siteFinder = siteFinder.searchForSite(modSiteName).render();
  160. siteFinder.requestToJoinSite(modSiteName).render();
  161. ShareUtil.logout(drone);
  162. // Approving request to join.
  163. dash = loginAs(testUserName, "password");
  164. myTasksPage = dash.getNav().selectMyTasks();
  165. pageUnderTest = myTasksPage.navigateToEditTaskPage("Request to join "+modSiteName+" site").render();
  166. returnedPage = pageUnderTest.selectApproveButton().render();
  167. assertTrue(returnedPage instanceof MyTasksPage, "The return page should be an instance of MyTasksPage page");
  168. }
  169. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectReassign")
  170. public void isCommentTextAreaDisplayedTest() throws Exception
  171. {
  172. assertTrue(pageUnderTest.isCommentTextAreaDisplayed());
  173. }
  174. @Test(groups = "Enterprise4.2", dependsOnMethods = "selectReassign")
  175. public void readCommentFromCommentTextAreaTest() throws Exception
  176. {
  177. pageUnderTest.enterComment("test");
  178. assertTrue(pageUnderTest.readCommentFromCommentTextArea().contains("test"));
  179. }
  180. }