aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/juick/server/MockDeleteListener.java2
-rw-r--r--src/test/java/com/juick/server/MockNotificationListener.java2
-rw-r--r--src/test/java/com/juick/server/MockUpdateListener.java2
-rw-r--r--src/test/java/com/juick/server/tests/ServerTests.java72
4 files changed, 51 insertions, 27 deletions
diff --git a/src/test/java/com/juick/server/MockDeleteListener.java b/src/test/java/com/juick/server/MockDeleteListener.java
index d060d865..20ee99bf 100644
--- a/src/test/java/com/juick/server/MockDeleteListener.java
+++ b/src/test/java/com/juick/server/MockDeleteListener.java
@@ -20,7 +20,7 @@ package com.juick.server;
import com.juick.service.activities.DeleteUserEvent;
import org.springframework.context.ApplicationListener;
-import javax.annotation.Nonnull;
+import jakarta.annotation.Nonnull;
public class MockDeleteListener implements ApplicationListener<DeleteUserEvent> {
@Override
diff --git a/src/test/java/com/juick/server/MockNotificationListener.java b/src/test/java/com/juick/server/MockNotificationListener.java
index fd91c3fd..ee9f1696 100644
--- a/src/test/java/com/juick/server/MockNotificationListener.java
+++ b/src/test/java/com/juick/server/MockNotificationListener.java
@@ -20,7 +20,7 @@ package com.juick.server;
import com.juick.service.component.SystemEvent;
import org.springframework.context.ApplicationListener;
-import javax.annotation.Nonnull;
+import jakarta.annotation.Nonnull;
public class MockNotificationListener implements ApplicationListener<SystemEvent> {
@Override
diff --git a/src/test/java/com/juick/server/MockUpdateListener.java b/src/test/java/com/juick/server/MockUpdateListener.java
index 08742b12..21c9b673 100644
--- a/src/test/java/com/juick/server/MockUpdateListener.java
+++ b/src/test/java/com/juick/server/MockUpdateListener.java
@@ -20,7 +20,7 @@ package com.juick.server;
import com.juick.service.activities.UpdateEvent;
import org.springframework.context.ApplicationListener;
-import javax.annotation.Nonnull;
+import jakarta.annotation.Nonnull;
public class MockUpdateListener implements ApplicationListener<UpdateEvent> {
@Override
diff --git a/src/test/java/com/juick/server/tests/ServerTests.java b/src/test/java/com/juick/server/tests/ServerTests.java
index a728ac2b..a942323c 100644
--- a/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/src/test/java/com/juick/server/tests/ServerTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2019, Juick
+ * Copyright (C) 2008-2024, Juick
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -38,7 +38,10 @@ import com.juick.service.*;
import com.juick.service.activities.UpdateEvent;
import com.juick.service.component.SystemEvent;
import com.juick.test.util.MockUtils;
-import com.juick.util.*;
+import com.juick.util.DateFormattersHolder;
+import com.juick.util.HttpUtils;
+import com.juick.util.MessageUtils;
+import com.juick.util.WebUtils;
import com.juick.util.formatters.PlainTextFormatter;
import com.juick.www.WebApp;
import com.juick.www.ad.models.Site;
@@ -111,7 +114,7 @@ import rocks.xmpp.core.session.XmppSession;
import rocks.xmpp.core.session.XmppSessionConfiguration;
import ru.sape.SapePageLinks;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
@@ -119,9 +122,6 @@ import java.io.*;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.spec.InvalidKeySpecException;
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
@@ -278,6 +278,8 @@ public class ServerTests {
.orElseThrow(IllegalStateException::new);
freefd = userService.createUser(freefdName, freefdPassword)
.orElseThrow(IllegalStateException::new);
+ ugnich = makeUserVerified(ugnich);
+ freefd = makeUserVerified(freefd);
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setCssEnabled(false);
isSetUp = true;
@@ -660,8 +662,9 @@ public class ServerTests {
new TypeReference<>() {
});
assertThat(users.size(), is(1));
- assertThat(users.get(0).getTokens().size(), is(1));
- assertThat(users.get(0).getTokens().get(0).token(), equalTo(token));
+ // ugnich has durov and apns token
+ assertThat(users.get(0).getTokens().size(), is(2));
+ assertThat(users.get(0).getTokens().stream().filter(t -> t.type().equals("apns")).findFirst().get().token(), equalTo(token));
}
@Test
@@ -775,6 +778,7 @@ public class ServerTests {
public void protocolTests() throws Exception {
String tmpDir = storageService.getTemporaryDirectory();
User user = userService.createUser("me", "secret").orElseThrow(IllegalStateException::new);
+ user = makeUserVerified(user);
Tag yo = tagService.getTag("yo", true);
Message msg = commandsManager
.processCommand(user, "*yo yoyo",
@@ -846,6 +850,7 @@ public class ServerTests {
last = list.get(0);
assertThat(last, equalTo(reply.getCreated()));
assertEquals(2, reply.getReplyto());
+ readerUser = makeUserVerified(readerUser);
assertThat(commandsManager.processCommand(readerUser, "#" + mid + " *yo *there", emptyUri).getText(),
startsWith("Reply posted"));
assertEquals("Tags are updated",
@@ -1230,8 +1235,9 @@ public class ServerTests {
CommandResult result = commandsManager.processCommand(ugnich, "freefd - dick", emptyUri);
int mid = result.getNewMessage().get().getMid();
commandsManager.processCommand(freefd, String.format("#%d ugnich - dick too", mid), emptyUri);
- commandsManager.processCommand(serviceUser, String.format("#%d/1 ban for a hour!", mid), emptyUri);
- commandsManager.processCommand(serviceUser,
+ var juick = makeUserVerified(serviceUser);
+ commandsManager.processCommand(juick, String.format("#%d/1 ban for a hour!", mid), emptyUri);
+ commandsManager.processCommand(juick,
String.format("#%d freefd is here but it is hidden from you", mid),
emptyUri);
assertThat(messagesService.getMessage(mid).get().getReplies(), is(3));
@@ -1246,7 +1252,7 @@ public class ServerTests {
mockMvc.perform(get("/api/thread").with(httpBasic(ugnichName, ugnichPassword)).param("mid",
String.valueOf(mid)))
.andExpect(jsonPath("$[0].replies", is(1)));
- commandsManager.processCommand(serviceUser, String.format("#%d/4 mmm?!", mid), emptyUri);
+ commandsManager.processCommand(juick, String.format("#%d/4 mmm?!", mid), emptyUri);
assertThat(messagesService.getMessage(mid).get().getReplies(), is(5));
replies = messagesService.getReplies(ugnich, mid);
reply = messagesService.getReply(mid, 5);
@@ -1264,8 +1270,8 @@ public class ServerTests {
int freefdMsg = messagesService.createMessage(freefd.getUid(), "sux", null, Set.of(tag));
assertThat(messagesService.getTag(tag.getId(), freefd.getUid(), 0, 10).size(), is(1));
assertThat(messagesService.getTag(tag.getId(), ugnich.getUid(), 0, 10).size(), is(0));
- messagesService.recommendMessage(freefdMsg, serviceUser.getUid());
- assertThat(messagesService.getUserBlogWithRecommendations(serviceUser, ugnich, 0, 0)
+ messagesService.recommendMessage(freefdMsg, juick.getUid());
+ assertThat(messagesService.getUserBlogWithRecommendations(juick, ugnich, 0, 0)
.contains(freefdMsg),
is(false));
commandsManager.processCommand(ugnich, "BL @freefd", emptyUri);
@@ -1591,14 +1597,14 @@ public class ServerTests {
assertThat(CollectionUtils.isEqualCollection(
messagesService.getMessagesRecommendations(monstreek.getUid(), Collections.singletonList(mid)).stream()
.map(Pair::getRight).map(User::getName).toList(),
- Arrays.asList("ermine", "pogo", "test@example.com")), is(true));
+ Arrays.asList("ermine", "pogo", "test")), is(true));
privacyQueriesService.blacklistUser(userService.getUserByName("monstreek"),
userService.getUserByName("pogo"));
assertThat(messagesService.getMessage(mid).get().getRecommendations().size(), is(3));
assertThat(CollectionUtils.isEqualCollection(
messagesService.getMessagesRecommendations(monstreek.getUid(), Collections.singletonList(mid)).stream()
.map(Pair::getRight).map(User::getName).toList(),
- Arrays.asList("ermine", "test@example.com")), is(true));
+ Arrays.asList("ermine", "test")), is(true));
jdbcTemplate.execute("DELETE FROM favorites");
}
@@ -2167,19 +2173,30 @@ public class ServerTests {
assertThat(top.size(), is(1));
}
+ private User makeUserVerified(User user) {
+ var id = System.currentTimeMillis();
+ telegramService.createTelegramUser(id, user.getName());
+ var hash = userService.getSignUpHashByTelegramID(id, user.getName());
+ userService.setTelegramUser(hash, user.getUid());
+ return userService.getUserByName(user.getName());
+ }
+
@Test
public void verifiedUsersTest() {
- assertThat(userService.getUserByName("ugnich").isVerified(), is(false));
- jdbcTemplate.update("INSERT INTO telegram(user_id, tg_id, tg_name) VALUES(?, ?, ?)", ugnich.getUid(),
- 100001866137681L, "tg_test");
- assertThat(userService.canDeleteTelegramUser(userService.getUserByName("ugnich")), is(false));
+ var user = userService.createUser("new_unverified_user", "evil").orElseThrow();
+ assertThat(userService.getUserByName(user.getName()).isVerified(), is(false));
+ user = makeUserVerified(user);
+ assertThat(userService.getUserByName(user.getName()).isVerified(), is(true));
+ assertThat(userService.canDeleteTelegramUser(userService.getUserByName(user.getName())), is(false));
userService.addFacebookState("12345", "http://localhost");
- userService.createFacebookUser(12345, "12345", "5678", "ugnich");
- userService.setFacebookUser("12345", ugnich.getUid());
- assertThat(userService.getUserByName("ugnich").isVerified(), is(true));
- assertThat(userService.canDeleteTelegramUser(userService.getUserByName("ugnich")), is(true));
+ userService.createFacebookUser(12345, "12345", "5678", user.getName());
+ userService.setFacebookUser("12345", user.getUid());
+ assertThat(userService.canDeleteTelegramUser(userService.getUserByName(user.getName())), is(true));
jdbcTemplate.update("DELETE FROM facebook");
- assertThat(userService.canDeleteTelegramUser(userService.getUserByName("ugnich")), is(false));
+ assertThat(userService.canDeleteTelegramUser(userService.getUserByName(user.getName())), is(false));
+ assertThat(userService.getUserByName(user.getName()).isVerified(), is(true));
+ telegramService.deleteTelegramUser(user.getUid());
+ assertThat(userService.getUserByName(user.getName()).isVerified(), is(false));
}
@Test
@@ -2693,4 +2710,11 @@ public class ServerTests {
.with(httpBasic(ugnichName, ugnichPassword)))
.andExpect(status().isBadRequest());
}
+ @Test
+ public void textTruncationShouldNotBreakEmojis() {
+ var text = "Так ты же написал, чтоб я сам поправил отступ \uD83D\uDE00\n";
+ var expected = "Так ты же написал, чтоб я сам поправил отступ …";
+ var truncated = StringUtils.abbreviate(text, "…", 47);
+ assertThat(truncated, is(expected));
+ }
}