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.rest.client.IntegrationTestUtil;
22 import com.atlassian.jira.rest.client.TestUtil;
23 import com.atlassian.jira.rest.client.api.ExpandableProperty;
24 import com.atlassian.jira.rest.client.api.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.Before;
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_60;
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.assertEquals;
38 import static org.junit.Assert.assertNull;
39 import static org.junit.Assert.assertTrue;
40
41 public class AsynchronousUserRestClientTest extends AbstractAsynchronousRestClientTest {
42
43 private static boolean alreadyRestored;
44
45 @Before
46 public void setup() {
47 if (!alreadyRestored) {
48 IntegrationTestUtil.restoreAppropriateJiraData(TestConstants.DEFAULT_JIRA_DUMP_FILE, administration);
49 alreadyRestored = true;
50 }
51 }
52
53 @Test
54 public void testGetUser() throws JSONException {
55 final User user = client.getUserClient().getUser(ADMIN_USERNAME).claim();
56 assertEquals("wojciech.seliga@spartez.com", user.getEmailAddress());
57 assertEquals("admin", user.getName());
58 assertEquals("Administrator", user.getDisplayName());
59 assertEquals(new ExpandableProperty<String>(3, ImmutableList
60 .of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
61 assertEquals(IntegrationTestUtil.USER_ADMIN_60.getSelf(), user.getSelf());
62 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
63
64 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME).claim();
65 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
66 }
67
68 @Test
69 public void testGetUserWithSlash() {
70 final User user = client.getUserClient().getUser(USER_SLASH.getName()).claim();
71 assertEquals(USER_SLASH_60.getSelf(), user.getSelf());
72 assertEquals(USER_SLASH_60.getDisplayName(), user.getDisplayName());
73 }
74
75 @Test
76 public void testGetNonExistingUser() {
77 final String username = "same-fake-user-which-does-not-exist";
78 TestUtil.assertErrorCode(Response.Status.NOT_FOUND, "The user named '" + username + "' does not exist",
79 new Runnable() {
80 @Override
81 public void run() {
82 client.getUserClient().getUser(username).claim();
83 }
84 });
85 }
86
87 @Test
88 public void testGetUserAnonymously() {
89 TestUtil.assertErrorCode(Response.Status.UNAUTHORIZED, new Runnable() {
90 @Override
91 public void run() {
92 setAnonymousMode();
93 client.getUserClient().getUser(TestConstants.USER1_USERNAME).claim();
94 }
95 });
96
97 }
98
99
100 @JiraBuildNumberDependent(BN_JIRA_4_3)
101 @Test
102 public void testGetUserWhenEmailVisibilityIsHidden() throws JSONException {
103 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.HIDDEN);
104
105 try {
106 final User user = client.getUserClient().getUser(ADMIN_USERNAME).claim();
107 assertNull(user.getEmailAddress());
108 assertEquals("admin", user.getName());
109 assertEquals("Administrator", user.getDisplayName());
110 assertEquals(new ExpandableProperty<String>(3, ImmutableList
111 .of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
112 assertEquals(IntegrationTestUtil.USER_ADMIN_60.getSelf(), user.getSelf());
113 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
114
115 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME).claim();
116 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
117
118 } finally {
119
120 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.PUBLIC);
121 }
122 }
123
124
125 @JiraBuildNumberDependent(BN_JIRA_4_3)
126 @Test
127 public void testGetUserWhenEmailVisibilityIsMasked() throws JSONException {
128 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.MASKED);
129
130 try {
131 final User user = client.getUserClient().getUser(ADMIN_USERNAME).claim();
132 assertEquals("wojciech dot seliga at spartez dot com", user.getEmailAddress());
133 assertEquals("admin", user.getName());
134 assertEquals("Administrator", user.getDisplayName());
135 assertEquals(new ExpandableProperty<String>(3, ImmutableList
136 .of("jira-administrators", "jira-developers", "jira-users")), user.getGroups());
137 assertEquals(IntegrationTestUtil.USER_ADMIN_60.getSelf(), user.getSelf());
138 assertTrue(user.getAvatarUri().toString().contains("ownerId=" + user.getName()));
139
140 final User user2 = client.getUserClient().getUser(TestConstants.USER1_USERNAME).claim();
141 assertEquals(new ExpandableProperty<String>(ImmutableList.of("jira-users")), user2.getGroups());
142 } finally {
143
144 administration.generalConfiguration().setUserEmailVisibility(GeneralConfiguration.EmailVisibility.PUBLIC);
145 }
146 }
147 }