Skip to content

Commit 5a5d41d

Browse files
committed
Add try-with-resources to GroupsControllerBannedMembersTest
1 parent 7eeaae9 commit 5a5d41d

File tree

1 file changed

+98
-72
lines changed

1 file changed

+98
-72
lines changed

src/test/java/org/signal/storageservice/controllers/GroupsControllerBannedMembersTest.java

Lines changed: 98 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -28,43 +28,48 @@
2828
import org.signal.libsignal.zkgroup.auth.AuthCredentialWithPni;
2929

3030
class GroupsControllerBannedMembersTest extends BaseGroupsControllerTest {
31+
3132
@Test
3233
public void testGetGroupJoinInfoWhenBanned() {
3334
final byte[] inviteLinkPassword = new byte[16];
3435
new SecureRandom().nextBytes(inviteLinkPassword);
3536
final String inviteLinkPasswordString = Base64.getUrlEncoder().encodeToString(inviteLinkPassword);
3637

3738
final Group.Builder groupBuilder = group.toBuilder();
38-
3939
setMockGroupState(groupBuilder);
40-
Response response = getGroupJoinInfoWithPassword(inviteLinkPasswordString);
41-
assertThat(response.getStatus()).isEqualTo(403);
42-
assertThat(response.hasEntity()).isFalse();
43-
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
4440

45-
groupBuilder.setInviteLinkPassword(ByteString.copyFrom(inviteLinkPassword));
41+
try (Response response = getGroupJoinInfoWithPassword(inviteLinkPasswordString)) {
42+
assertThat(response.getStatus()).isEqualTo(403);
43+
assertThat(response.hasEntity()).isFalse();
44+
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
45+
}
4646

47+
groupBuilder.setInviteLinkPassword(ByteString.copyFrom(inviteLinkPassword));
4748
setMockGroupState(groupBuilder);
48-
response = getGroupJoinInfoWithPassword(inviteLinkPasswordString);
49-
assertThat(response.getStatus()).isEqualTo(403);
50-
assertThat(response.hasEntity()).isFalse();
51-
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
5249

53-
groupBuilder.getAccessControlBuilder().setAddFromInviteLink(AccessControl.AccessRequired.ANY);
50+
try (Response response = getGroupJoinInfoWithPassword(inviteLinkPasswordString)) {
51+
assertThat(response.getStatus()).isEqualTo(403);
52+
assertThat(response.hasEntity()).isFalse();
53+
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
54+
}
5455

56+
groupBuilder.getAccessControlBuilder().setAddFromInviteLink(AccessControl.AccessRequired.ANY);
5557
setMockGroupState(groupBuilder);
56-
response = getGroupJoinInfoWithPassword(inviteLinkPasswordString);
57-
assertThat(response.getStatus()).isEqualTo(200);
58-
assertThat(response.hasEntity()).isTrue();
59-
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
6058

61-
groupBuilder.addMembersBannedBuilder().setUserId(ByteString.copyFrom(validUserFourPresentation.getUuidCiphertext().serialize())).setTimestamp(clock.millis());
59+
try (Response response = getGroupJoinInfoWithPassword(inviteLinkPasswordString)) {
60+
assertThat(response.getStatus()).isEqualTo(200);
61+
assertThat(response.hasEntity()).isTrue();
62+
assertThat(response.getStringHeaders()).doesNotContainKey("x-signal-forbidden-reason");
63+
}
6264

65+
groupBuilder.addMembersBannedBuilder().setUserId(ByteString.copyFrom(validUserFourPresentation.getUuidCiphertext().serialize())).setTimestamp(clock.millis());
6366
setMockGroupState(groupBuilder);
64-
response = getGroupJoinInfoWithPassword(inviteLinkPasswordString);
65-
assertThat(response.getStatus()).isEqualTo(403);
66-
assertThat(response.hasEntity()).isFalse();
67-
assertThat(response.getStringHeaders()).containsEntry("x-signal-forbidden-reason", List.of("banned"));
67+
68+
try (Response response = getGroupJoinInfoWithPassword(inviteLinkPasswordString)) {
69+
assertThat(response.getStatus()).isEqualTo(403);
70+
assertThat(response.hasEntity()).isFalse();
71+
assertThat(response.getStringHeaders()).containsEntry("x-signal-forbidden-reason", List.of("banned"));
72+
}
6873
}
6974

7075
@Test
@@ -74,37 +79,44 @@ public void testGetGroupLogsWhenBanned() {
7479
setMockGroupState(groupBuilder);
7580
when(groupsManager.getChangeRecords(eq(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize())), isA(Group.class), any(), anyBoolean(), anyBoolean(), anyInt(), anyInt()))
7681
.thenReturn(CompletableFuture.completedFuture(List.of(GroupChangeState.newBuilder().setGroupState(groupBuilder).build())));
77-
Response response = getGroupLogs(0);
78-
assertThat(response.getStatus()).isEqualTo(200);
79-
assertThat(response.hasEntity()).isTrue();
82+
83+
try (Response response = getGroupLogs(0)){
84+
assertThat(response.getStatus()).isEqualTo(200);
85+
assertThat(response.hasEntity()).isTrue();
86+
}
8087

8188
groupBuilder.addMembersBannedBuilder().setUserId(groupBuilder.getMembers(1).getUserId()).setTimestamp(clock.millis());
8289
groupBuilder.removeMembers(1);
8390

8491
setMockGroupState(groupBuilder);
8592
when(groupsManager.getChangeRecords(eq(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize())), isA(Group.class), any(), anyBoolean(), anyBoolean(), anyInt(), anyInt()))
8693
.thenReturn(CompletableFuture.completedFuture(List.of(GroupChangeState.newBuilder().setGroupState(groupBuilder).build())));
87-
response = getGroupLogs(0);
88-
assertThat(response.getStatus()).isEqualTo(403);
89-
assertThat(response.hasEntity()).isFalse();
94+
95+
try (Response response = getGroupLogs(0)) {
96+
assertThat(response.getStatus()).isEqualTo(403);
97+
assertThat(response.hasEntity()).isFalse();
98+
}
9099
}
91100

92101
@Test
93102
public void testGetGroupWhenBanned() {
94103
final Group.Builder groupBuilder = group.toBuilder();
95104

96105
setMockGroupState(groupBuilder);
97-
Response response = getGroup();
98-
assertThat(response.getStatus()).isEqualTo(200);
99-
assertThat(response.hasEntity()).isTrue();
106+
107+
try (Response response = getGroup()) {
108+
assertThat(response.getStatus()).isEqualTo(200);
109+
assertThat(response.hasEntity()).isTrue();
110+
}
100111

101112
groupBuilder.addMembersBannedBuilder().setUserId(groupBuilder.getMembers(0).getUserId()).setTimestamp(clock.millis());
102113
groupBuilder.removeMembers(0);
103-
104114
setMockGroupState(groupBuilder);
105-
response = getGroup();
106-
assertThat(response.getStatus()).isEqualTo(403);
107-
assertThat(response.hasEntity()).isFalse();
115+
116+
try (Response response = getGroup()) {
117+
assertThat(response.getStatus()).isEqualTo(403);
118+
assertThat(response.hasEntity()).isFalse();
119+
}
108120
}
109121

110122
@Test
@@ -119,13 +131,15 @@ public void testCreateGroupWithBannedMembers() {
119131
groupBuilder.getMembersBuilder(0).setPresentation(ByteString.copyFrom(validUserPresentation.serialize()));
120132
groupBuilder.getMembersBuilder(1).setPresentation(ByteString.copyFrom(validUserTwoPresentation.serialize()));
121133

122-
Response response = createGroup(groupBuilder);
123-
assertThat(response.getStatus()).isEqualTo(200);
134+
try (Response response = createGroup(groupBuilder)) {
135+
assertThat(response.getStatus()).isEqualTo(200);
136+
}
124137

125138
groupBuilder.addMembersBannedBuilder().setUserId(ByteString.copyFrom(validUserFourPresentation.getUuidCiphertext().serialize())).setTimestamp(clock.millis());
126139

127-
response = createGroup(groupBuilder);
128-
assertThat(response.getStatus()).isEqualTo(400);
140+
try (Response response = createGroup(groupBuilder)) {
141+
assertThat(response.getStatus()).isEqualTo(400);
142+
}
129143
}
130144

131145
@Test
@@ -138,13 +152,14 @@ public void testModifyGroupBanMember() throws Exception {
138152

139153
setMockGroupState(groupBuilder);
140154
setupGroupsManagerForWrites();
141-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
142155

143-
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
144-
actionsBuilder.getAddMembersBannedBuilder(0).getAddedBuilder().setTimestamp(clock.millis());
145-
groupBuilder.setVersion(1).addMembersBannedBuilder().setUserId(validUserThreeId).setTimestamp(clock.millis());
146-
assertThat(response.getStatus()).isEqualTo(200);
147-
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserId);
156+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
157+
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
158+
actionsBuilder.getAddMembersBannedBuilder(0).getAddedBuilder().setTimestamp(clock.millis());
159+
groupBuilder.setVersion(1).addMembersBannedBuilder().setUserId(validUserThreeId).setTimestamp(clock.millis());
160+
assertThat(response.getStatus()).isEqualTo(200);
161+
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserId);
162+
}
148163
}
149164

150165
@Test
@@ -157,10 +172,11 @@ public void testModifyGroupBanMemberAsNonAdmin() {
157172

158173
setMockGroupState(groupBuilder);
159174
setupGroupsManagerForWrites();
160-
Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder);
161175

162-
assertThat(response.getStatus()).isEqualTo(403);
163-
verifyNoGroupWrites();
176+
try (Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder)) {
177+
assertThat(response.getStatus()).isEqualTo(403);
178+
verifyNoGroupWrites();
179+
}
164180
}
165181

166182
@Test
@@ -174,12 +190,13 @@ public void testModifyGroupUnbanMember() throws Exception {
174190

175191
setMockGroupState(groupBuilder);
176192
setupGroupsManagerForWrites();
177-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
178193

179-
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
180-
groupBuilder.setVersion(1).clearMembersBanned();
181-
assertThat(response.getStatus()).isEqualTo(200);
182-
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserId);
194+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
195+
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
196+
groupBuilder.setVersion(1).clearMembersBanned();
197+
assertThat(response.getStatus()).isEqualTo(200);
198+
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserId);
199+
}
183200
}
184201

185202
@Test
@@ -194,10 +211,11 @@ public void testModifyGroupUnbanMemberAsNonAdmin() {
194211

195212
setMockGroupState(groupBuilder);
196213
setupGroupsManagerForWrites();
197-
Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder);
198214

199-
assertThat(response.getStatus()).isEqualTo(403);
200-
verifyNoGroupWrites();
215+
try (Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder)) {
216+
assertThat(response.getStatus()).isEqualTo(403);
217+
verifyNoGroupWrites();
218+
}
201219
}
202220

203221
@Test
@@ -211,12 +229,13 @@ public void testModifyGroupUnbanMemberAsNonAdminWithOpenGroup() throws Exception
211229

212230
setMockGroupState(groupBuilder);
213231
setupGroupsManagerForWrites();
214-
Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder);
215232

216-
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
217-
groupBuilder.setVersion(1).clearMembersBanned();
218-
assertThat(response.getStatus()).isEqualTo(200);
219-
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserTwoId);
233+
try (Response response = modifyGroup(AuthHelper.VALID_USER_TWO_AUTH_CREDENTIAL, actionsBuilder)) {
234+
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
235+
groupBuilder.setVersion(1).clearMembersBanned();
236+
assertThat(response.getStatus()).isEqualTo(200);
237+
verifyGroupModification(groupBuilder, actionsBuilder, 4, response, validUserTwoId);
238+
}
220239
}
221240

222241
@Test
@@ -229,9 +248,11 @@ public void testModifyGroupBanMemberWithoutRemoval() {
229248

230249
setMockGroupState(groupBuilder);
231250
setupGroupsManagerForWrites();
232-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
233-
assertThat(response.getStatus()).isEqualTo(400);
234-
verifyNoGroupWrites();
251+
252+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
253+
assertThat(response.getStatus()).isEqualTo(400);
254+
verifyNoGroupWrites();
255+
}
235256
}
236257

237258
@Test
@@ -245,9 +266,11 @@ public void testModifyGroupBanMemberPendingProfileKeyWithoutRemoval() {
245266

246267
setMockGroupState(groupBuilder);
247268
setupGroupsManagerForWrites();
248-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
249-
assertThat(response.getStatus()).isEqualTo(400);
250-
verifyNoGroupWrites();
269+
270+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
271+
assertThat(response.getStatus()).isEqualTo(400);
272+
verifyNoGroupWrites();
273+
}
251274
}
252275

253276
@Test
@@ -261,9 +284,11 @@ public void testModifyGroupBanMemberPendingAdminApprovalWithoutRemoval() {
261284

262285
setMockGroupState(groupBuilder);
263286
setupGroupsManagerForWrites();
264-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
265-
assertThat(response.getStatus()).isEqualTo(400);
266-
verifyNoGroupWrites();
287+
288+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
289+
assertThat(response.getStatus()).isEqualTo(400);
290+
verifyNoGroupWrites();
291+
}
267292
}
268293

269294
@Test
@@ -280,11 +305,12 @@ public void testModifyGroupBanMemberAddAndDeleteInSameChange() {
280305
actionsBuilder.setVersion(1);
281306

282307
setupGroupsManagerForWrites();
283-
Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder);
284308

285-
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
286-
assertThat(response.getStatus()).isEqualTo(400);
287-
verifyNoGroupWrites();
309+
try (Response response = modifyGroup(AuthHelper.VALID_USER_AUTH_CREDENTIAL, actionsBuilder)) {
310+
actionsBuilder.setGroupId(ByteString.copyFrom(groupPublicParams.getGroupIdentifier().serialize()));
311+
assertThat(response.getStatus()).isEqualTo(400);
312+
verifyNoGroupWrites();
313+
}
288314
}
289315

290316
private Response createGroup(Group.Builder groupBuilder) {

0 commit comments

Comments
 (0)