PageRenderTime 39ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/jira-project/jira-functional-tests/jira-func-tests/src/main/java/com/atlassian/jira/webtests/ztests/dashboard/reports/TestDeveloperWorkloadReportPermissions.java

https://bitbucket.org/ahmed_bilal_360factors/jira7-core
Java | 245 lines | 192 code | 43 blank | 10 comment | 0 complexity | e0470d77247ff2bca0f89c030ab53ab1 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.jira.webtests.ztests.dashboard.reports;
  2. import com.atlassian.jira.functest.framework.Administration;
  3. import com.atlassian.jira.functest.framework.BaseJiraFuncTest;
  4. import com.atlassian.jira.functest.framework.LoginAs;
  5. import com.atlassian.jira.functest.framework.suite.Category;
  6. import com.atlassian.jira.functest.framework.suite.WebTest;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import javax.inject.Inject;
  10. import static com.atlassian.jira.functest.framework.FunctTestConstants.ADMIN_PASSWORD;
  11. import static com.atlassian.jira.functest.framework.FunctTestConstants.ADMIN_USERNAME;
  12. import static com.atlassian.jira.functest.framework.FunctTestConstants.BOB_FULLNAME;
  13. import static com.atlassian.jira.functest.framework.FunctTestConstants.BOB_USERNAME;
  14. import static com.atlassian.jira.functest.framework.FunctTestConstants.FRED_FULLNAME;
  15. import static com.atlassian.jira.functest.framework.FunctTestConstants.FRED_PASSWORD;
  16. import static com.atlassian.jira.functest.framework.FunctTestConstants.FRED_USERNAME;
  17. /**
  18. * Tests DeveloperWorkloadReport (aka User Workload Report on the UI)
  19. */
  20. @WebTest({Category.FUNC_TEST, Category.PERMISSIONS, Category.REPORTS})
  21. //todo annotation @LoginAs was added automatically - consider removing it if not needed by this test (otherwise remove this comment)
  22. @LoginAs(user = ADMIN_USERNAME)
  23. public class TestDeveloperWorkloadReportPermissions extends BaseJiraFuncTest {
  24. private final Report report = new Report();
  25. @Inject
  26. private Administration administration;
  27. @Before
  28. public void setUpTest() {
  29. administration.restoreData("TestDeveloperWorkloadReportPermissions.xml");
  30. }
  31. @Test
  32. public void test() {
  33. navigation.login(ADMIN_USERNAME, ADMIN_PASSWORD);
  34. {
  35. _testAdminUserDeveloperWorkloadReportAdminLogin();
  36. AdminLoginTests tests = new AdminLoginTests();
  37. tests.testFredUser();
  38. tests.testFredUserWithSubTasks();
  39. tests.testBobUser();
  40. tests.testBobUserWithSubTasks();
  41. }
  42. navigation.login(FRED_USERNAME, FRED_PASSWORD);
  43. {
  44. _testAdminUserDeveloperWorkloadReportAdminLogin();
  45. FredLoginTests tests = new FredLoginTests();
  46. tests.testFredUser();
  47. tests.testFredUserWithSubTasks();
  48. tests.testBobUser();
  49. tests.testBobUserWithSubTasks();
  50. }
  51. navigation.login(BOB_USERNAME, BOB_USERNAME);
  52. {
  53. _testAdminUserDeveloperWorkloadReportAdminLogin();
  54. BobLoginTests tests = new BobLoginTests();
  55. tests.testFredUser();
  56. tests.testFredUserWithSubTasks();
  57. tests.testBobUser();
  58. tests.testBobUserWithSubTasks();
  59. }
  60. }
  61. private void _testAdminUserDeveloperWorkloadReportAdminLogin() {
  62. report.generateWithoutSubtasks(ADMIN_USERNAME);
  63. tester.assertTextPresent("User Workload Report");
  64. tester.assertTextPresent("There are no unresolved issues assigned to the specified user");
  65. }
  66. class AdminLoginTests {
  67. private void testFredUser() {
  68. report.generateWithoutSubtasks(FRED_USERNAME);
  69. tester.assertTextPresent("User Workload Report");
  70. tester.assertTextPresent("Workload report for user");
  71. tester.assertTextPresent(FRED_FULLNAME);
  72. final String response = tester.getDialog().getResponseText();
  73. assertions.text().assertTextSequence(response, "homosapien", "8", "1 week, 4 days, 6 hours");
  74. assertions.text().assertTextSequence(response, "Total", "8", "1 week, 4 days, 6 hours");
  75. }
  76. private void testFredUserWithSubTasks() {
  77. report.generateWithUnassignedSubtasks(FRED_USERNAME);
  78. tester.assertTextPresent("User Workload Report");
  79. tester.assertTextPresent("Workload report for user");
  80. tester.assertTextPresent(FRED_FULLNAME);
  81. // no unassigned subtasks for fred
  82. final String response = tester.getDialog().getResponseText();
  83. assertions.text().assertTextSequence(response, "homosapien", "8", "1 week, 4 days, 6 hours");
  84. assertions.text().assertTextSequence(response, "Total", "8", "1 week, 4 days, 6 hours");
  85. }
  86. private void testBobUser() {
  87. report.generateWithoutSubtasks(BOB_USERNAME);
  88. tester.assertTextPresent("User Workload Report");
  89. tester.assertTextPresent("Workload report for user");
  90. tester.assertTextPresent(BOB_FULLNAME);
  91. final String response = tester.getDialog().getResponseText();
  92. assertions.text().assertTextSequence(response, "homosapien", "9", "4 days, 5 hours");
  93. assertions.text().assertTextSequence(response, "Total", "9", "4 days, 5 hours");
  94. }
  95. private void testBobUserWithSubTasks() {
  96. report.generateWithUnassignedSubtasks(BOB_USERNAME);
  97. tester.assertTextPresent("User Workload Report");
  98. tester.assertTextPresent("Workload report for user");
  99. tester.assertTextPresent(BOB_FULLNAME);
  100. // no unassigned subtasks for fred
  101. final String response = tester.getDialog().getResponseText();
  102. assertions.text().assertTextSequence(response, "homosapien", "10", "1 week, 4 days, 1 hour");
  103. assertions.text().assertTextSequence(response, "Total", "10", "1 week, 4 days, 1 hour");
  104. }
  105. }
  106. class FredLoginTests {
  107. private void testFredUser() {
  108. report.generateWithoutSubtasks(FRED_USERNAME);
  109. tester.assertTextPresent("User Workload Report");
  110. tester.assertTextPresent("Workload report for user");
  111. tester.assertTextPresent(FRED_FULLNAME);
  112. final String response = tester.getDialog().getResponseText();
  113. assertions.text().assertTextSequence(response, "homosapien", "8", "1 week, 4 days, 6 hours");
  114. assertions.text().assertTextSequence(response, "Total", "8", "1 week, 4 days, 6 hours");
  115. }
  116. private void testFredUserWithSubTasks() {
  117. report.generateWithUnassignedSubtasks(FRED_USERNAME);
  118. tester.assertTextPresent("User Workload Report");
  119. tester.assertTextPresent("Workload report for user");
  120. tester.assertTextPresent(FRED_FULLNAME);
  121. final String response = tester.getDialog().getResponseText();
  122. // no unassigned subtasks for fred
  123. assertions.text().assertTextSequence(response, "homosapien", "8", "1 week, 4 days, 6 hours");
  124. assertions.text().assertTextSequence(response, "Total", "8", "1 week, 4 days, 6 hours");
  125. }
  126. private void testBobUser() {
  127. report.generateWithoutSubtasks(BOB_USERNAME);
  128. tester.assertTextPresent("User Workload Report");
  129. tester.assertTextPresent("Workload report for user");
  130. tester.assertTextPresent(BOB_FULLNAME);
  131. final String response = tester.getDialog().getResponseText();
  132. assertions.text().assertTextSequence(response, "homosapien", "3", "3 days, 7 hours");
  133. assertions.text().assertTextSequence(response, "Total", "3", "3 days, 7 hours");
  134. }
  135. private void testBobUserWithSubTasks() {
  136. report.generateWithUnassignedSubtasks(BOB_USERNAME);
  137. tester.assertTextPresent("User Workload Report");
  138. tester.assertTextPresent("Workload report for user");
  139. tester.assertTextPresent(BOB_FULLNAME);
  140. // no unassigned subtasks for fred
  141. final String response = tester.getDialog().getResponseText();
  142. assertions.text().assertTextSequence(response, "homosapien", "4", "1 week, 3 days, 3 hours");
  143. assertions.text().assertTextSequence(response, "Total", "4", "1 week, 3 days, 3 hours");
  144. }
  145. }
  146. class BobLoginTests {
  147. private void testFredUser() {
  148. report.generateWithoutSubtasks(FRED_USERNAME);
  149. tester.assertTextPresent("User Workload Report");
  150. tester.assertTextPresent("Workload report for user");
  151. tester.assertTextPresent(FRED_FULLNAME);
  152. final String response = tester.getDialog().getResponseText();
  153. assertions.text().assertTextSequence(response, "homosapien", "2", "3 days, 6 hours");
  154. assertions.text().assertTextSequence(response, "Total", "2", "3 days, 6 hours");
  155. }
  156. private void testFredUserWithSubTasks() {
  157. report.generateWithUnassignedSubtasks(FRED_USERNAME);
  158. tester.assertTextPresent("User Workload Report");
  159. tester.assertTextPresent("Workload report for user");
  160. tester.assertTextPresent(FRED_FULLNAME);
  161. // no unassigned subtasks for fred
  162. final String response = tester.getDialog().getResponseText();
  163. assertions.text().assertTextSequence(response, "homosapien", "2", "3 days, 6 hours");
  164. assertions.text().assertTextSequence(response, "Total", "2", "3 days, 6 hours");
  165. }
  166. private void testBobUser() {
  167. report.generateWithoutSubtasks(BOB_USERNAME);
  168. tester.assertTextPresent("User Workload Report");
  169. tester.assertTextPresent("Workload report for user");
  170. tester.assertTextPresent(BOB_FULLNAME);
  171. final String response = tester.getDialog().getResponseText();
  172. assertions.text().assertTextSequence(response, "homosapien", "9", "4 days, 5 hours");
  173. assertions.text().assertTextSequence(response, "Total", "9", "4 days, 5 hours");
  174. }
  175. private void testBobUserWithSubTasks() {
  176. report.generateWithUnassignedSubtasks(BOB_USERNAME);
  177. tester.assertTextPresent("User Workload Report");
  178. tester.assertTextPresent("Workload report for user");
  179. tester.assertTextPresent(BOB_FULLNAME);
  180. // no unassigned subtasks for fred
  181. final String response = tester.getDialog().getResponseText();
  182. assertions.text().assertTextSequence(response, "homosapien", "10", "1 week, 4 days, 1 hour");
  183. assertions.text().assertTextSequence(response, "Total", "10", "1 week, 4 days, 1 hour");
  184. }
  185. }
  186. private class Report {
  187. private static final String REPORT = "secure/ConfigureReport.jspa?reportKey=com.atlassian.jira.jira-core-reports-plugin%3Adeveloper-workload&Next=Next";
  188. private static final String CONFIG = "/secure/ConfigureReport!default.jspa?reportKey=com.atlassian.jira.jira-core-reports-plugin:developer-workload";
  189. void configure() {
  190. navigation.gotoPage(CONFIG);
  191. }
  192. void generate(String user, String subtaskInclusion) {
  193. navigation.gotoPage(REPORT + "&developer=" + user + "&subtaskInclusion=" + subtaskInclusion);
  194. }
  195. void generateWithoutSubtasks(String user) {
  196. generate(user, "onlyAssigned");
  197. }
  198. void generateWithUnassignedSubtasks(String user) {
  199. generate(user, "assignedAndUnassigned");
  200. }
  201. }
  202. }