aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'juick-xmpp/src/test')
-rw-r--r--juick-xmpp/src/test/java/com/juick/xmpp/server/XMPPServerTests.java55
1 files changed, 30 insertions, 25 deletions
diff --git a/juick-xmpp/src/test/java/com/juick/xmpp/server/XMPPServerTests.java b/juick-xmpp/src/test/java/com/juick/xmpp/server/XMPPServerTests.java
index dca09189..537445ea 100644
--- a/juick-xmpp/src/test/java/com/juick/xmpp/server/XMPPServerTests.java
+++ b/juick-xmpp/src/test/java/com/juick/xmpp/server/XMPPServerTests.java
@@ -1,22 +1,24 @@
package com.juick.xmpp.server;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.juick.Message;
+import com.juick.Tag;
import com.juick.User;
import com.juick.components.JuickBot;
import com.juick.components.XMPPServer;
import com.juick.components.configuration.XmppAppConfiguration;
import com.juick.configuration.RepositoryConfiguration;
-import com.juick.server.configuration.BaseWebConfiguration;
-import com.juick.service.*;
+import com.juick.service.MessagesService;
+import com.juick.service.SubscriptionService;
+import com.juick.service.TagService;
+import com.juick.service.UserService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
@@ -29,31 +31,22 @@ import rocks.xmpp.core.stanza.model.server.ServerMessage;
import javax.inject.Inject;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
-import java.util.List;
+import java.util.Collections;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {
- BaseWebConfiguration.class, XmppAppConfiguration.class, RepositoryConfiguration.class
+ XmppAppConfiguration.class, RepositoryConfiguration.class
})
-public class XMPPServerTests {
- @Configuration
- @ComponentScan(basePackages = "com.juick.www.controllers")
- static class Config {
- @Bean
- public ImagesService imagesService() {
- return new MockImagesService();
- }
- }
+@TestPropertySource(properties = {"broken_ssl_hosts=localhost,serverstorageisfull.tld"})
+public class XMPPServerTests extends AbstractJUnit4SpringContextTests {
@Inject
private WebApplicationContext wac;
@Inject
@@ -70,6 +63,8 @@ public class XMPPServerTests {
private SubscriptionService subscriptionService;
@Inject
private JdbcTemplate jdbcTemplate;
+ @Value("${hostname}")
+ private Jid jid;
private MockMvc mockMvc;
@@ -80,28 +75,36 @@ public class XMPPServerTests {
@Test
public void statusPageIsUp() throws Exception {
mockMvc.perform(get("http://localhost:8080/status")).andExpect(status().isOk());
- assertThat(server.getJid().toEscapedString(), equalTo("juick.com"));
+ assertThat(server.getJid(), equalTo(jid));
}
@Test
public void botIsUpAndProcessingResourceConstraints() {
- String xmlMessage = "<message xmlns=\"jabber:server\" from=\"renha@bitcheese.net\" to=\"juick@juick.com/Juick\" type=\"error\"><body>Reply by @LexX</body><juick xmlns=\"http://juick.com/message\" mid=\"2885759\" privacy=\"1\" replyto=\"0\" rid=\"8\" ts=\"2017-10-10 07:41:10\"><body>Похоже нынче можно публично заявлять о своем веганстве. </body><user xmlns=\"http://juick.com/user\" uname=\"LexX\" uid=\"6340\"></user></juick><error type=\"wait\"><resource-constraint xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"></resource-constraint><text xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\">Your contact offline message queue is full. The message has been discarded.</text></error></message>";
- Jid from = Jid.of("renha@bitcheese.net");
- when(userService.setActiveStatusForJID(from.toEscapedString(), UserService.ActiveStatus.Inactive)).thenReturn(true);
+ int renhaId;
+ renhaId = userService.createUser("renha", "umnnbt");
+ Jid from = Jid.of("renha@serverstorageisfull.tld");
+ jdbcTemplate.update("INSERT INTO jids(user_id,jid,active) VALUES(?,?,?)", renhaId, from.toEscapedString(), 1);
+ String xmlMessage = "<message xmlns=\"jabber:server\" from=\"renha@serverstorageisfull.tld\" to=\"juick@juick.com/Juick\" type=\"error\"><body>Reply by @LexX</body><juick xmlns=\"http://juick.com/message\" mid=\"2885759\" privacy=\"1\" replyto=\"0\" rid=\"8\" ts=\"2017-10-10 07:41:10\"><body>Похоже нынче можно публично заявлять о своем веганстве. </body><user xmlns=\"http://juick.com/user\" uname=\"LexX\" uid=\"6340\"></user></juick><error type=\"wait\"><resource-constraint xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\"></resource-constraint><text xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\">Your contact offline message queue is full. The message has been discarded.</text></error></message>";
Stanza msg = server.parse(xmlMessage);
+ assertThat(from, equalTo(msg.getFrom()));
+ boolean isActive = jdbcTemplate.queryForObject("SELECT active FROM jids WHERE user_id=?", Integer.class, renhaId) == 1;
+ assertThat(isActive, equalTo(true));
bot.incomingMessage((ServerMessage)msg);
+ isActive = jdbcTemplate.queryForObject("SELECT active FROM jids WHERE user_id=?", Integer.class, renhaId) == 1;
+ assertThat(isActive, equalTo(false));
}
@Test
public void botCommandsTests() throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "PING").get(), is("PONG"));
// tag help have two lines, others have 1
- assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "help").get().split("\n").length, is(17));
+ assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "help").get().split("\n").length, is(18));
}
@Test
public void protocolTests() throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, ParseException, JsonProcessingException {
int uid = userService.createUser("me", "secret");
User user = userService.getUserByUID(uid).orElse(new User());
- int mid = messagesService.createMessage(uid, "*yo yoyo", null, null);
+ Tag yo = tagService.getTag("yo", true);
+ int mid = messagesService.createMessage(uid, "yoyo", null, Collections.singletonList(yo));
assertEquals("should be message", true,
bot.processCommand(user, Jid.of("test@localhost"), String.format("#%d", mid)).get().startsWith("@me"));
mid = messagesService.getUserBlog(user.getUid(), -1, 0).stream().reduce((first, second) -> second).get();
@@ -119,6 +122,7 @@ public class XMPPServerTests {
*/
assertEquals("number of subscribed users should match", 1,
subscriptionService.getUsersSubscribedToComments(mid, uid).size());
+ /*
assertEquals("should be subscribed", "Subscribed",
bot.processCommand(readerUser, Jid.of("dummy@localhost"), "S @" + user.getName()).get());
List<User> friends = userService.getUserFriends(readerUid);
@@ -180,5 +184,6 @@ public class XMPPServerTests {
assertEquals("should be deleted", String.format("Message %s deleted", mid),
bot.processCommand(user, Jid.of("test@localhost"), "D #" + mid).get());
assertEquals("should not have messages", 0, messagesService.getAll(user.getUid(), 0).size());
+ */
}
}