PageRenderTime 58ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/jira-project/jira-functional-tests/jira-webdriver-tests/src/main/java/com/atlassian/jira/webtest/webdriver/tests/issue/TestVersionCFOrderConfiguration.java

https://bitbucket.org/ahmed_bilal_360factors/jira7-core
Java | 173 lines | 142 code | 26 blank | 5 comment | 0 complexity | 111ad4513a56e2d9c48e7edc5f8c9aa7 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.jira.webtest.webdriver.tests.issue;
  2. import com.atlassian.integrationtesting.runner.restore.Restore;
  3. import com.atlassian.jira.functest.framework.suite.Category;
  4. import com.atlassian.jira.functest.framework.suite.WebTest;
  5. import com.atlassian.jira.pageobjects.BaseJiraWebTest;
  6. import com.atlassian.jira.pageobjects.components.JiraHeader;
  7. import com.atlassian.jira.pageobjects.dialogs.quickedit.CreateIssueDialog;
  8. import com.atlassian.jira.pageobjects.dialogs.quickedit.EditIssueDialog;
  9. import com.atlassian.jira.pageobjects.framework.fields.CustomField;
  10. import com.atlassian.jira.pageobjects.pages.admin.customfields.ConfigureCustomField;
  11. import com.atlassian.jira.pageobjects.pages.viewissue.ViewIssuePage;
  12. import com.atlassian.pageobjects.PageBinder;
  13. import com.atlassian.pageobjects.elements.PageElement;
  14. import com.atlassian.pageobjects.elements.query.Poller;
  15. import com.google.common.base.Function;
  16. import com.google.common.collect.Iterables;
  17. import org.junit.Test;
  18. import org.openqa.selenium.By;
  19. import javax.inject.Inject;
  20. import static org.hamcrest.Matchers.containsInAnyOrder;
  21. import static org.hamcrest.Matchers.equalTo;
  22. import static org.junit.Assert.assertThat;
  23. /**
  24. * Tests for version order
  25. *
  26. * @since v5.0
  27. */
  28. @WebTest({Category.WEBDRIVER_TEST, Category.ISSUES})
  29. public class TestVersionCFOrderConfiguration extends BaseJiraWebTest {
  30. private static final String CUSTOM_FIELD_ID = "customfield_10100";
  31. private static final Long CUSTOM_FIELD_ID_AS_LONG = 10100L;
  32. @Inject
  33. private PageBinder pageBinder;
  34. @Test
  35. @Restore("xml/TestVersionCFOrderConfiguration.xml")
  36. public void testReleasedConfigFirstShowsUpFirstOnCreateIssue() {
  37. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  38. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  39. String firstGroupTitle = customField.getFirstGroupTitle();
  40. assertThat(firstGroupTitle, equalTo("releasedVersion"));
  41. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1"));
  42. }
  43. @Test
  44. @Restore("xml/TestVersionCFOrderConfiguration.xml")
  45. public void testUnreleasedConfigFirstShowsUpFirstOnCreateIssue() {
  46. ConfigureCustomField configureCustomField = jira.goTo(ConfigureCustomField.class, CUSTOM_FIELD_ID, CUSTOM_FIELD_ID_AS_LONG);
  47. configureCustomField.goToEditVersionCustomFieldOrder().setUnreleasedFirst();
  48. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  49. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  50. String firstGroupTitle = customField.getFirstGroupTitle();
  51. assertThat(firstGroupTitle, equalTo("unreleasedVersion"));
  52. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.2", "Version 1.3", "Version 2.0", "Version 2.1"));
  53. }
  54. @Test
  55. @Restore("xml/TestVersionCFOrderConfigurationNoReleasedVersions.xml")
  56. public void testNoReleasedVersionsReleasedConfigFirstOnCreateIssue() {
  57. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  58. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  59. String firstGroupTitle = customField.getFirstGroupTitle();
  60. assertThat(firstGroupTitle, equalTo("unreleasedVersion"));
  61. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1", "Version 1.2"));
  62. }
  63. @Test
  64. @Restore("xml/TestVersionCFOrderConfigurationNoReleasedVersions.xml")
  65. public void testNoReleasedVersionsUnreleasedConfigFirstOnCreateIssue() {
  66. ConfigureCustomField configureCustomField = jira.goTo(ConfigureCustomField.class, CUSTOM_FIELD_ID, CUSTOM_FIELD_ID_AS_LONG);
  67. configureCustomField.goToEditVersionCustomFieldOrder().setUnreleasedFirst();
  68. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  69. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  70. String firstGroupTitle = customField.getFirstGroupTitle();
  71. assertThat(firstGroupTitle, equalTo("unreleasedVersion"));
  72. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1", "Version 1.2"));
  73. }
  74. @Test
  75. @Restore("xml/TestVersionCFOrderConfigurationNoUnreleasedVersions.xml")
  76. public void testNoUnreleasedVersionsUnreleasedConfigFirstOnCreateIssue() {
  77. ConfigureCustomField configureCustomField = jira.goTo(ConfigureCustomField.class, CUSTOM_FIELD_ID, CUSTOM_FIELD_ID_AS_LONG);
  78. configureCustomField.goToEditVersionCustomFieldOrder().setUnreleasedFirst();
  79. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  80. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  81. String firstGroupTitle = customField.getFirstGroupTitle();
  82. assertThat(firstGroupTitle, equalTo("releasedVersion"));
  83. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1", "Version 1.2"));
  84. }
  85. @Test
  86. @Restore("xml/TestVersionCFOrderConfigurationNoUnreleasedVersions.xml")
  87. public void testNoUnreleasedVersionsReleasedConfigFirstOnCreateIssue() {
  88. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnCreateIssueDialog();
  89. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  90. String firstGroupTitle = customField.getFirstGroupTitle();
  91. assertThat(firstGroupTitle, equalTo("releasedVersion"));
  92. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1", "Version 1.2"));
  93. }
  94. @Test
  95. @Restore("xml/TestVersionCFOrderConfiguration.xml")
  96. public void testReleasedConfigFirstShowsUpFirstOnEditIssue() {
  97. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnEditIssueDialog("HSP-1");
  98. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  99. String firstGroupTitle = customField.getFirstGroupTitle();
  100. assertThat(firstGroupTitle, equalTo("releasedVersion"));
  101. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.0", "Version 1.1"));
  102. }
  103. @Test
  104. @Restore("xml/TestVersionCFOrderConfiguration.xml")
  105. public void testUnreleasedConfigFirstShowsUpFirstOnEditIssue() {
  106. ConfigureCustomField configureCustomField = jira.goTo(ConfigureCustomField.class, CUSTOM_FIELD_ID, CUSTOM_FIELD_ID_AS_LONG);
  107. configureCustomField.goToEditVersionCustomFieldOrder().setUnreleasedFirst();
  108. MultiVersionPickerCustomField customField = getMultiVersionPickerCustomFieldOnEditIssueDialog("HSP-1");
  109. Iterable<String> firstGroupVersions = customField.getFirstGroupVersions();
  110. String firstGroupTitle = customField.getFirstGroupTitle();
  111. assertThat(firstGroupTitle, equalTo("unreleasedVersion"));
  112. assertThat(firstGroupVersions, containsInAnyOrder("Version 1.2", "Version 1.3", "Version 2.0", "Version 2.1"));
  113. }
  114. private MultiVersionPickerCustomField getMultiVersionPickerCustomFieldOnCreateIssueDialog() {
  115. jira.gotoHomePage();
  116. final CreateIssueDialog createIssueDialog = pageBinder.bind(JiraHeader.class).createIssue();
  117. Poller.waitUntilTrue("CreateIssueDialog was not opened.", createIssueDialog.isOpen());
  118. createIssueDialog.selectProject("HSP");
  119. return createIssueDialog.getCustomField(CUSTOM_FIELD_ID, MultiVersionPickerCustomField.class);
  120. }
  121. private MultiVersionPickerCustomField getMultiVersionPickerCustomFieldOnEditIssueDialog(String issueKey) {
  122. final ViewIssuePage viewIssuePage = jira.goToViewIssue(issueKey);
  123. EditIssueDialog editIssueDialog = viewIssuePage.editIssue();
  124. Poller.waitUntilTrue("CreateIssueDialog was not opened.", editIssueDialog.isOpen());
  125. return editIssueDialog.getCustomField(MultiVersionPickerCustomField.class, CUSTOM_FIELD_ID);
  126. }
  127. public static class MultiVersionPickerCustomField implements CustomField {
  128. private PageElement field;
  129. public MultiVersionPickerCustomField(PageElement form, String id) {
  130. this.field = form.find(By.id(id));
  131. }
  132. public Iterable<String> getFirstGroupVersions() {
  133. PageElement firstGroup = field.find(By.tagName("optgroup"));
  134. Iterable<PageElement> options = firstGroup.findAll(By.tagName("option"));
  135. return Iterables.transform(options, new Function<PageElement, String>() {
  136. @Override
  137. public String apply(PageElement option) {
  138. return option.getAttribute("title");
  139. }
  140. });
  141. }
  142. public String getFirstGroupTitle() {
  143. PageElement firstGroup = field.find(By.tagName("optgroup"));
  144. return firstGroup.getAttribute("data-version-group");
  145. }
  146. }
  147. }