Lines 16-27
Link Here
|
16 |
import java.text.SimpleDateFormat; |
16 |
import java.text.SimpleDateFormat; |
17 |
import java.util.Collection; |
17 |
import java.util.Collection; |
18 |
import java.util.Date; |
18 |
import java.util.Date; |
|
|
19 |
import java.util.HashSet; |
19 |
import java.util.List; |
20 |
import java.util.List; |
20 |
import java.util.Locale; |
21 |
import java.util.Locale; |
|
|
22 |
import java.util.Set; |
21 |
|
23 |
|
22 |
import junit.framework.TestCase; |
24 |
import junit.framework.TestCase; |
23 |
|
25 |
|
24 |
import org.eclipse.core.runtime.NullProgressMonitor; |
26 |
import org.eclipse.core.runtime.NullProgressMonitor; |
|
|
27 |
import org.eclipse.mylyn.context.tests.support.TestUtil; |
28 |
import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials; |
25 |
import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel; |
29 |
import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel; |
26 |
import org.eclipse.mylyn.internal.jira.core.IJiraConstants; |
30 |
import org.eclipse.mylyn.internal.jira.core.IJiraConstants; |
27 |
import org.eclipse.mylyn.internal.jira.core.JiraAttribute; |
31 |
import org.eclipse.mylyn.internal.jira.core.JiraAttribute; |
Lines 754-757
Link Here
|
754 |
return taskData; |
758 |
return taskData; |
755 |
} |
759 |
} |
756 |
|
760 |
|
|
|
761 |
/** |
762 |
* Add comment to a task which user doesn't have edit permission for. |
763 |
* |
764 |
* @throws Exception |
765 |
*/ |
766 |
public void testPostTaskDataCommentWithoutEditPermission() throws Exception { |
767 |
init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.USER); |
768 |
|
769 |
JiraIssue issue = JiraTestUtil.createIssue(client, "testWithoutEditPermission"); |
770 |
|
771 |
TaskData taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
772 |
taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).setValue("new summary"); |
773 |
taskData.getRoot().getAttribute(JiraAttribute.COMMENT_NEW.id()).setValue("comment"); |
774 |
dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.SUMMARY, |
775 |
JiraAttribute.COMMENT_NEW), new NullProgressMonitor()); |
776 |
assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY)); |
777 |
|
778 |
taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
779 |
assertEquals("new summary", taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).getValue()); |
780 |
ITask task = JiraTestUtil.createTask(repository, taskData.getTaskId()); |
781 |
List<ITaskComment> comments = JiraTestUtil.getTaskComments(task); |
782 |
assertEquals(1, comments.size()); |
783 |
assertEquals("comment", comments.get(0).getText()); |
784 |
assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY)); |
785 |
|
786 |
setUp(); |
787 |
init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.READ_ONLY); |
788 |
|
789 |
taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
790 |
assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY)); |
791 |
|
792 |
taskData.getRoot().getAttribute(JiraAttribute.COMMENT_NEW.id()).setValue("new comment"); |
793 |
|
794 |
dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.COMMENT_NEW), |
795 |
new NullProgressMonitor()); |
796 |
|
797 |
taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
798 |
assertEquals("new summary", taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).getValue()); |
799 |
task = JiraTestUtil.createTask(repository, taskData.getTaskId()); |
800 |
comments = JiraTestUtil.getTaskComments(task); |
801 |
assertEquals(2, comments.size()); |
802 |
assertEquals("comment", comments.get(0).getText()); |
803 |
assertEquals("new comment", comments.get(1).getText()); |
804 |
assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY)); |
805 |
} |
806 |
|
807 |
private Set<TaskAttribute> buildChanged(TaskAttribute root, JiraAttribute... attrs) { |
808 |
Set<TaskAttribute> changed = new HashSet<TaskAttribute>(); |
809 |
for (JiraAttribute ja : attrs) { |
810 |
changed.add(root.getAttribute(ja.id())); |
811 |
} |
812 |
return changed; |
813 |
} |
814 |
|
815 |
/** |
816 |
* Add comment to a task which user doesn't have edit permission for. |
817 |
* |
818 |
* @throws Exception |
819 |
*/ |
820 |
public void testPostTaskDataAssignWithoutEditPermission() throws Exception { |
821 |
init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.USER); |
822 |
|
823 |
Credentials userCredentials = TestUtil.readCredentials(PrivilegeLevel.USER); |
824 |
JiraIssue issue = JiraTestUtil.createIssue(client, "testWithoutEditPermission"); |
825 |
|
826 |
TaskData taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
827 |
taskData.getRoot().getAttribute(JiraAttribute.USER_ASSIGNED.id()).setValue("-1"); |
828 |
|
829 |
dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.USER_ASSIGNED), |
830 |
new NullProgressMonitor()); |
831 |
assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY)); |
832 |
|
833 |
setUp(); |
834 |
init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.READ_ONLY); |
835 |
|
836 |
taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
837 |
|
838 |
taskData.getRoot().getAttribute(JiraAttribute.USER_ASSIGNED.id()).setValue(userCredentials.username); |
839 |
|
840 |
dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.USER_ASSIGNED), |
841 |
new NullProgressMonitor()); |
842 |
|
843 |
taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor()); |
844 |
assertEquals(userCredentials.username, taskData.getRoot() |
845 |
.getAttribute(JiraAttribute.USER_ASSIGNED.id()) |
846 |
.getValue()); |
847 |
} |
848 |
|
757 |
} |
849 |
} |