aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/juick/server/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/juick/server/tests')
-rw-r--r--src/test/java/com/juick/server/tests/ServerTests.java109
1 files changed, 63 insertions, 46 deletions
diff --git a/src/test/java/com/juick/server/tests/ServerTests.java b/src/test/java/com/juick/server/tests/ServerTests.java
index 9bc945d6..1ef8fe7f 100644
--- a/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/src/test/java/com/juick/server/tests/ServerTests.java
@@ -67,6 +67,7 @@ import java.io.StringWriter;
import java.io.Writer;
import java.net.URI;
import java.nio.charset.StandardCharsets;
+import java.nio.file.FileSystemException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -399,7 +400,11 @@ public class ServerTests {
@AfterEach
public void teardown() throws IOException {
String imgDir = storageService.getImageDirectory();
- FileSystemUtils.deleteRecursively(Paths.get(imgDir));
+ try {
+ FileSystemUtils.deleteRecursively(Paths.get(imgDir));
+ } catch (FileSystemException e) {
+ // Skip Windows exceptions when files are in use
+ }
}
@Test
@@ -808,12 +813,14 @@ public class ServerTests {
assertThat(messagesService.getPopularCandidates().isEmpty(), is(true));
tagService.updateTags(topmid, Collections.singletonList(juickTag));
assertThat(messagesService.getPopularCandidates().isEmpty(), is(false));
- CommandResult resultRecommend = commandsManager.commandRecommend(serviceUser, URI.create(""), String.valueOf(topmid));
+ CommandResult resultRecommend = commandsManager.commandRecommend(serviceUser, URI.create(""),
+ String.valueOf(topmid));
List<Integer> msgs = messagesService.getUserRecommendations(serviceUser.getUid(), 0);
assertThat(msgs.get(0), is(topmid));
List<Integer> allMsgs = messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0);
assertThat(allMsgs.contains(topmid), is(true));
- CommandResult resultUndo = commandsManager.commandRecommend(serviceUser, URI.create(""), String.valueOf(topmid));
+ CommandResult resultUndo = commandsManager.commandRecommend(serviceUser, URI.create(""),
+ String.valueOf(topmid));
assertThat(messagesService.getPopularCandidates().isEmpty(), is(false));
jdbcTemplate.update("INSERT INTO tags(tag_id, name) VALUES(805, 'NSFW')");
Tag nsfw = tagService.getTag("NSFW", false);
@@ -1095,8 +1102,8 @@ public class ServerTests {
assertThat(lastRead.apply(ugnich, mid), is(freefdrid));
privacyQueriesService.blacklistUser(ugnich, freefd);
int newfreefdrid = messagesService.createReply(mid, 0, freefd, "from ban", null);
- serverManager.processSystemEvent(new SystemEvent(this,
- SystemActivity.message(serviceUser, messagesService.getReply(mid, newfreefdrid), Collections.emptyList())));
+ serverManager.processSystemEvent(new SystemEvent(this, SystemActivity.message(serviceUser,
+ messagesService.getReply(mid, newfreefdrid), Collections.emptyList())));
assertThat(userService.isReplyToBL(ugnich, messagesService.getReply(mid, newfreefdrid)), is(true));
// TODO: test event listeners correctly
Thread.sleep(2000L);
@@ -1122,9 +1129,13 @@ public class ServerTests {
assertFalse(messagesService.getMessages(AnonymousUser.INSTANCE, messagesService.getPhotos(ugnich.getUid(), 0))
.stream().noneMatch(m -> m.getTags().contains(banned)));
messagesService.recommendMessage(mid, serviceUser.getUid());
- assertThat(messagesService.getMessages(AnonymousUser.INSTANCE, messagesService.getUserBlogWithRecommendations(serviceUser, freefd, 0, 0))
+ assertThat(messagesService
+ .getMessages(AnonymousUser.INSTANCE,
+ messagesService.getUserBlogWithRecommendations(serviceUser, freefd, 0, 0))
.stream().noneMatch(m -> m.getTags().contains(banned)), is(true));
- assertFalse(messagesService.getMessages(AnonymousUser.INSTANCE, messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0))
+ assertFalse(messagesService
+ .getMessages(AnonymousUser.INSTANCE,
+ messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0))
.stream().noneMatch(m -> m.getTags().contains(banned)));
assertThat(
messagesService.getMessages(AnonymousUser.INSTANCE, messagesService.getMyFeed(freefd.getUid(), 0, true))
@@ -1218,13 +1229,15 @@ public class ServerTests {
@Test
public void emptyAuthenticatedPostShouldThrowBadRequest() throws Exception {
- mockMvc.perform(post("/api/post").with(httpBasic(serviceUser.getName(), "password"))).andExpect(status().isBadRequest());
+ mockMvc.perform(post("/api/post").with(httpBasic(serviceUser.getName(), "password")))
+ .andExpect(status().isBadRequest());
}
@Test
public void attachmentSizeTests() throws IOException {
String tmpPng = "tmp.png";
- Files.copy(defaultAvatar.getFile().toPath(), Paths.get(storageService.getTemporaryDirectory(), tmpPng), StandardCopyOption.REPLACE_EXISTING);
+ Files.copy(defaultAvatar.getFile().toPath(), Paths.get(storageService.getTemporaryDirectory(), tmpPng),
+ StandardCopyOption.REPLACE_EXISTING);
storageService.saveAvatar(tmpPng, serviceUser);
Attachment attachment = storageService.getAvatarMetadata(serviceUser);
assertThat(attachment.getHeight(), is(96));
@@ -1282,7 +1295,8 @@ public class ServerTests {
assertThat(messagesService.getTag(tag.TID, freefd.getUid(), 0, 10).size(), is(1));
assertThat(messagesService.getTag(tag.TID, ugnich.getUid(), 0, 10).size(), is(0));
messagesService.recommendMessage(freefdMsg, serviceUser.getUid());
- assertThat(messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0).contains(freefdMsg), is(false));
+ assertThat(messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0).contains(freefdMsg),
+ is(false));
commandsManager.processCommand(ugnich, "BL @freefd", emptyUri);
}
@@ -1410,20 +1424,26 @@ public class ServerTests {
.getNewMessage().get();
assertThat(editedComment.getText(), is("HEY, JOE"));
assertThat(editedComment.getUpdatedAt(), greaterThan(editedComment.getCreated()));
- jdbcTemplate.update("UPDATE replies SET updated_at='1990-05-05 00:00:00' WHERE message_id=? AND reply_id=?", editedComment.getMid(), editedComment.getRid());
+ jdbcTemplate.update("UPDATE replies SET updated_at='1990-05-05 00:00:00' WHERE message_id=? AND reply_id=?",
+ editedComment.getMid(), editedComment.getRid());
Message updatedComment = comment.getNewMessage().get();
result = mockMvc
- .perform(post("/api/update").with(httpBasic(freefdName, freefdPassword))
- .param("mid", String.valueOf(updatedComment.getMid()))
- .param("rid", String.valueOf(updatedComment.getRid())).param("body", "HEY, JOE AGAIN"))
- .andExpect(status().isBadRequest()).andReturn();
- assertThat(messagesService.deleteReply(ugnich.getUid(), updatedComment.getMid(), updatedComment.getRid()), is(false));
- assertThat(messagesService.deleteReply(freefd.getUid(), updatedComment.getMid(), updatedComment.getRid()), is(true));
- assertThat(messagesService.getReply(updatedComment.getMid(), updatedComment.getRid()).getUser(), is(archiveUser));
- jdbcTemplate.update("UPDATE messages_txt SET updated_at='1990-05-05 00:00:00' WHERE message_id=?", original.getMid());
+ .perform(post("/api/update").with(httpBasic(freefdName, freefdPassword))
+ .param("mid", String.valueOf(updatedComment.getMid()))
+ .param("rid", String.valueOf(updatedComment.getRid())).param("body", "HEY, JOE AGAIN"))
+ .andExpect(status().isBadRequest()).andReturn();
+ assertThat(messagesService.deleteReply(ugnich.getUid(), updatedComment.getMid(), updatedComment.getRid()),
+ is(false));
+ assertThat(messagesService.deleteReply(freefd.getUid(), updatedComment.getMid(), updatedComment.getRid()),
+ is(true));
+ assertThat(messagesService.getReply(updatedComment.getMid(), updatedComment.getRid()).getUser(),
+ is(archiveUser));
+ jdbcTemplate.update("UPDATE messages_txt SET updated_at='1990-05-05 00:00:00' WHERE message_id=?",
+ original.getMid());
assertThat(messagesService.deleteMessage(ugnich.getUid(), original.getMid()), is(true));
assertThat(messagesService.getMessageAuthor(original.getMid()), is(archiveUser));
- jdbcTemplate.update("UPDATE messages_txt SET updated_at=? WHERE message_id=?", Instant.now(), original.getMid());
+ jdbcTemplate.update("UPDATE messages_txt SET updated_at=? WHERE message_id=?", Instant.now(),
+ original.getMid());
assertThat(messagesService.deleteMessage(ugnich.getUid(), original.getMid()), is(false));
assertThat(messagesService.deleteMessage(archiveUser.getUid(), original.getMid()), is(true));
}
@@ -2045,17 +2065,14 @@ public class ServerTests {
testSignatureString = signatureManager.addSignature(testapp, "localhost", "POST", inboxUri, testRequestDate,
digestHeader, testKeystoreManager);
mockMvc.perform(post(inboxUri).header("Host", testHost).header("Date", testRequestDate)
- .header("Signature", testSignatureString)
- .header("Digest", digestHeader)
- .contentType(Context.LD_JSON_MEDIA_TYPE).content(payload))
- .andExpect(status().isAccepted());
+ .header("Signature", testSignatureString).header("Digest", digestHeader)
+ .contentType(Context.LD_JSON_MEDIA_TYPE).content(payload)).andExpect(status().isAccepted());
apClient.setRequestFactory(originalRequestFactory);
}
@Test
public void serviceUserProfileIsApplicationProfile() throws Exception {
- MvcResult response = mockMvc.perform(get("/u/juick")
- .accept(Context.ACTIVITY_MEDIA_TYPE)).andReturn();
+ MvcResult response = mockMvc.perform(get("/u/juick").accept(Context.ACTIVITY_MEDIA_TYPE)).andReturn();
Actor actor = jsonMapper.readValue(response.getResponse().getContentAsString(), Actor.class);
assertThat(actor, is(instanceOf(Application.class)));
}
@@ -2135,7 +2152,8 @@ public class ServerTests {
messagesService.likeMessage(msg.getMid(), freefd.getUid(), Reaction.LIKE);
messagesService.likeMessage(msg.getMid(), 0, Reaction.LIKE, "http://localhost:8080/u/test");
messagesService.recommendMessage(msg.getMid(), serviceUser.getUid());
- List<Message> top = messagesService.getMessages(ugnich, messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0));
+ List<Message> top = messagesService.getMessages(ugnich,
+ messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0));
assertThat(top.size(), is(1));
}
@@ -2152,7 +2170,7 @@ public class ServerTests {
String imgDir = storageService.getImageDirectory();
ClassPathResource defaultAvatar = new ClassPathResource("static/av-96.png");
String hash = DigestUtils.md5DigestAsHex(IOUtils.toByteArray(defaultAvatar.getInputStream()));
-
+
assertThat(webApp.getAvatarUrl(userService.getUserByName(freefdName)),
is(String.format("http://localhost:8080/av-96-%s.png", hash)));
@@ -2166,10 +2184,9 @@ public class ServerTests {
assertThat(DigestUtils.md5DigestAsHex(IOUtils.toByteArray(newUri)), is(newHash));
URI convertedAvatarUri = Paths.get(imgDir, "a", String.format("%d.png", freefd.getUid())).toUri();
String convertedAvatarHash = DigestUtils.md5DigestAsHex(IOUtils.toByteArray(convertedAvatarUri));
- mockMvc.perform(get("/api/me").with(httpBasic(freefdName, freefdPassword)))
- .andExpect(status().isOk())
- .andExpect(jsonPath("$.avatar",
- is(String.format("http://localhost:8080/i/a/%d-%s.png", freefd.getUid(), convertedAvatarHash))));
+ mockMvc.perform(get("/api/me").with(httpBasic(freefdName, freefdPassword))).andExpect(status().isOk())
+ .andExpect(jsonPath("$.avatar", is(
+ String.format("http://localhost:8080/i/a/%d-%s.png", freefd.getUid(), convertedAvatarHash))));
mockMvc.perform(post("/api/me").with(httpBasic(ugnichName, ugnichPassword)).param("password", "newPassword"))
.andExpect(status().isOk());
mockMvc.perform(get("/api/me").with(httpBasic(ugnichName, ugnichPassword)))
@@ -2244,7 +2261,9 @@ public class ServerTests {
ClientHttpRequestFactory originalRequestFactory = apClient.getRequestFactory();
MockRestServiceServer restServiceServer = MockRestServiceServer.createServer(apClient);
restServiceServer.expect(times(2), requestTo(delete.getObject().getId()))
- .andRespond(withSuccess(IOUtils.toString(testSuspendedUserResponse.getInputStream(), StandardCharsets.UTF_8), MediaType.APPLICATION_JSON));
+ .andRespond(withSuccess(
+ IOUtils.toString(testSuspendedUserResponse.getInputStream(), StandardCharsets.UTF_8),
+ MediaType.APPLICATION_JSON));
Person testuser = (Person) signatureManager.getContext(URI.create(delete.getObject().getId())).get();
Instant now = Instant.now();
String testRequestDate = DateFormattersHolder.getHttpDateFormatter().format(now);
@@ -2254,11 +2273,8 @@ public class ServerTests {
String testSignatureString = signatureManager.addSignature(testuser, "localhost", "POST", inboxUri,
testRequestDate, digestHeader, testKeystoreManager);
mockMvc.perform(post(inboxUri).contentType(ACTIVITY_MEDIA_TYPE).content(deleteJsonStr)
- .header("Host", "localhost")
- .header("Date", testRequestDate)
- .header("Digest", digestHeader)
- .header("Signature", testSignatureString))
- .andExpect(status().isAccepted());
+ .header("Host", "localhost").header("Date", testRequestDate).header("Digest", digestHeader)
+ .header("Signature", testSignatureString)).andExpect(status().isAccepted());
apClient.setRequestFactory(originalRequestFactory);
Mockito.verify(deleteListener, Mockito.times(1)).onApplicationEvent(deleteEventCaptor.capture());
DeleteUserEvent receivedEvent = deleteEventCaptor.getValue();
@@ -2298,12 +2314,11 @@ public class ServerTests {
Create create = jsonMapper.readValue(noteString, Create.class);
Note note = (Note) create.getObject();
String markdown = remarkConverter.convertFragment((String) note.getContent());
- String commandBody = note.getContent() == null ? markdown
- : note.getAttachment().stream().map(attachment -> {
- String attachmentUrl = attachment.getUrl();
- String attachmentName = attachment.getName();
- return PlainTextFormatter.markdownUrl(attachmentUrl, attachmentName);
- }).reduce(markdown, (current, next) -> String.format("%s\n%s", current, next));
+ String commandBody = note.getContent() == null ? markdown : note.getAttachment().stream().map(attachment -> {
+ String attachmentUrl = attachment.getUrl();
+ String attachmentName = attachment.getName();
+ return PlainTextFormatter.markdownUrl(attachmentUrl, attachmentName);
+ }).reduce(markdown, (current, next) -> String.format("%s\n%s", current, next));
}
@Test
@@ -2397,7 +2412,8 @@ public class ServerTests {
public void topEventShouldNotLossUser() {
Message topMessage = MockUtils.mockMessage(1000, ugnich, "top message");
topMessage.setTo(AnonymousUser.INSTANCE);
- SystemEvent event = new SystemEvent(this, SystemActivity.like(serviceUser, topMessage, Collections.emptyList()));
+ SystemEvent event = new SystemEvent(this,
+ SystemActivity.like(serviceUser, topMessage, Collections.emptyList()));
applicationEventPublisher.publishEvent(event);
Mockito.verify(notificationListener, Mockito.times(1)).onApplicationEvent(topEventCaptor.capture());
SystemEvent receivedEvent = topEventCaptor.getValue();
@@ -2515,8 +2531,9 @@ public class ServerTests {
@Test
public void invalidMediaTypeTest() throws Exception {
mockMvc.perform(get("/api/messages").header("Accept", "application/xml")).andExpect(status().isBadRequest())
- .andExpect(content().string("Invalid media type"));
+ .andExpect(content().string("Invalid media type"));
}
+
@Test
public void emptyContextShouldNotSerializeType() throws Exception {
Context context = new Context("http://juick.com/u/ermine");