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