1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package it;
18
19 import com.atlassian.jira.functest.framework.admin.GeneralConfiguration;
20 import com.atlassian.jira.rest.client.ExpandableProperty;
21 import com.atlassian.jira.rest.client.IntegrationTestUtil;
22 import com.atlassian.jira.rest.client.TestUtil;
23 import com.atlassian.jira.rest.client.annotation.RestoreOnce;
24 import com.atlassian.jira.rest.client.domain.User;
25 import com.atlassian.jira.rest.client.internal.json.TestConstants;
26 import com.google.common.collect.ImmutableList;
27 import org.codehaus.jettison.json.JSONException;
28 import org.junit.Test;
29
30 import javax.ws.rs.core.Response;
31
32 import static com.atlassian.jira.rest.client.IntegrationTestUtil.USER_SLASH;
33 import static com.atlassian.jira.rest.client.IntegrationTestUtil.USER_SLASH_LATEST;
34 import static com.atlassian.jira.rest.client.internal.json.TestConstants.ADMIN_USERNAME;
35 import static org.junit.Assert.*;
36
37 @RestoreOnce(TestConstants.DEFAULT_JIRA_DUMP_FILE)
38 public class JerseyUserRestClientTest extends AbstractJerseyRestClientTest {
39
40 @Test
41 public void testGetUser() throws JSONException {
42 final User user = client.getUserClient().getUser(ADMIN_USERNAME, pm);
43 assertEquals("wojciech.seliga@spartez.com", user.getEmailAddress());
44 assertEquals("admin", user.getName());
45 assertEquals("Administrator", user.getDisplayName());
46 assertEquals(new ExpandableProperty<String>(3, ImmutableList.of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
47 assertEquals(IntegrationTestUtil.USER_ADMIN_LATEST.getSelf(), user.getSelf());
48 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
49
50 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME, pm);
51 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
52 }
53
54 @Test
55 public void testGetUserWithSlash() {
56 final User user = client.getUserClient().getUser(USER_SLASH.getName(), pm);
57 assertEquals(USER_SLASH_LATEST.getSelf(), user.getSelf());
58 assertEquals(USER_SLASH_LATEST.getDisplayName(), user.getDisplayName());
59 }
60
61 @Test
62 public void testGetNonExistingUser() {
63 final String username = "same-fake-user-which-does-not-exist";
64 TestUtil.assertErrorCode(Response.Status.NOT_FOUND, "The user named '" + username + "' does not exist",
65 new Runnable() {
66 @Override
67 public void run() {
68 client.getUserClient().getUser(username, pm);
69 }
70 });
71 }
72
73 @Test
74 public void testGetUserAnonymously() {
75 TestUtil.assertErrorCode(Response.Status.UNAUTHORIZED, new Runnable() {
76 @Override
77 public void run() {
78 setAnonymousMode();
79 client.getUserClient().getUser(TestConstants.USER1_USERNAME, pm);
80 }
81 });
82
83 }
84
85 @Test
86 public void testGetUserWhenEmailVisibilityIsHidden() throws JSONException {
87
88 if (!isJira4x3OrNewer()) {
89 return;
90 }
91
92 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.HIDDEN);
93
94 final User user = client.getUserClient().getUser(ADMIN_USERNAME, pm);
95 assertNull(user.getEmailAddress());
96 assertEquals("admin", user.getName());
97 assertEquals("Administrator", user.getDisplayName());
98 assertEquals(new ExpandableProperty<String>(3, ImmutableList.of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
99 assertEquals(IntegrationTestUtil.USER_ADMIN_LATEST.getSelf(), user.getSelf());
100 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
101
102 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME, pm);
103 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
104
105
106 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.PUBLIC);
107 }
108
109 @Test
110 public void testGetUserWhenEmailVisibilityIsMasked() throws JSONException {
111
112 if (!isJira4x3OrNewer()) {
113 return;
114 }
115
116 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.MASKED);
117
118 final User user = client.getUserClient().getUser(ADMIN_USERNAME, pm);
119 assertEquals("wojciech dot seliga at spartez dot com", user.getEmailAddress());
120 assertEquals("admin", user.getName());
121 assertEquals("Administrator", user.getDisplayName());
122 assertEquals(new ExpandableProperty<String>(3, ImmutableList.of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
123 assertEquals(IntegrationTestUtil.USER_ADMIN_LATEST.getSelf(), user.getSelf());
124 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
125
126 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME, pm);
127 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
128
129
130 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.PUBLIC);
131 }
132 }