Search in sources :

Example 11 with MessageBuilder

use of org.jivesoftware.smack.packet.MessageBuilder in project Smack by igniterealtime.

the class ChatConnectionTest method validateMessageTypeWithDefaults2.

@Test
public void validateMessageTypeWithDefaults2() {
    MessageBuilder incomingChat = createChatPacket("134", true);
    incomingChat.ofType(Message.Type.normal);
    processServerMessage(incomingChat.build());
    assertNotNull(listener.getNewChat());
}
Also used : MessageBuilder(org.jivesoftware.smack.packet.MessageBuilder) Test(org.junit.Test)

Example 12 with MessageBuilder

use of org.jivesoftware.smack.packet.MessageBuilder in project Smack by igniterealtime.

the class ChatConnectionTest method validateMessageTypeWithDefaults4.

@Test
public void validateMessageTypeWithDefaults4() {
    MessageBuilder incomingChat = createChatPacket("134", true);
    incomingChat.ofType(Message.Type.headline);
    assertNull(listener.getNewChat());
}
Also used : MessageBuilder(org.jivesoftware.smack.packet.MessageBuilder) Test(org.junit.Test)

Example 13 with MessageBuilder

use of org.jivesoftware.smack.packet.MessageBuilder in project Smack by igniterealtime.

the class ChatConnectionTest method validateMessageTypeWithDefaults3.

@Test
public void validateMessageTypeWithDefaults3() {
    MessageBuilder incomingChat = createChatPacket("134", true);
    incomingChat.ofType(Message.Type.groupchat);
    processServerMessage(incomingChat.build());
    assertNull(listener.getNewChat());
}
Also used : MessageBuilder(org.jivesoftware.smack.packet.MessageBuilder) Test(org.junit.Test)

Example 14 with MessageBuilder

use of org.jivesoftware.smack.packet.MessageBuilder in project Smack by igniterealtime.

the class ChatConnectionTest method validateMessageTypeWithNoNormal2.

@Test
public void validateMessageTypeWithNoNormal2() {
    cm.setNormalIncluded(false);
    MessageBuilder incomingChat = createChatPacket("134", true);
    incomingChat.ofType(Message.Type.normal);
    processServerMessage(incomingChat.build());
    assertNull(listener.getNewChat());
}
Also used : MessageBuilder(org.jivesoftware.smack.packet.MessageBuilder) Test(org.junit.Test)

Example 15 with MessageBuilder

use of org.jivesoftware.smack.packet.MessageBuilder in project Smack by igniterealtime.

the class MessageEncryptionIntegrationTest method messageTest.

/**
 * This test checks whether the following actions are performed.
 *
 * Alice publishes bundle A1
 * Bob publishes bundle B1
 *
 * Alice sends message to Bob (preKeyMessage)
 * Bob publishes bundle B2
 * Alice still has A1
 *
 * Bob responds to Alice (normal message)
 * Alice still has A1
 * Bob still has B2
 * @throws Exception if an exception occurs.
 */
@SuppressWarnings("SynchronizeOnNonFinalField")
@SmackIntegrationTest
public void messageTest() throws Exception {
    OmemoBundleElement a1 = alice.getOmemoService().getOmemoStoreBackend().packOmemoBundle(alice.getOwnDevice());
    OmemoBundleElement b1 = bob.getOmemoService().getOmemoStoreBackend().packOmemoBundle(bob.getOwnDevice());
    // Alice sends message(s) to bob
    // PreKeyMessage A -> B
    final String body1 = "One is greater than zero (for small values of zero).";
    AbstractOmemoMessageListener.PreKeyMessageListener listener1 = new AbstractOmemoMessageListener.PreKeyMessageListener(body1);
    bob.addOmemoMessageListener(listener1);
    OmemoMessage.Sent e1 = alice.encrypt(bob.getOwnJid(), body1);
    XMPPConnection alicesConnection = alice.getConnection();
    MessageBuilder messageBuilder = alicesConnection.getStanzaFactory().buildMessageStanza();
    alicesConnection.sendStanza(e1.buildMessage(messageBuilder, bob.getOwnJid()));
    listener1.getSyncPoint().waitForResult(10 * 1000);
    bob.removeOmemoMessageListener(listener1);
    OmemoBundleElement a1_ = alice.getOmemoService().getOmemoStoreBackend().packOmemoBundle(alice.getOwnDevice());
    OmemoBundleElement b2;
    synchronized (bob) {
        // Circumvent race condition where bundle gets replenished after getting stored in b2
        b2 = bob.getOmemoService().getOmemoStoreBackend().packOmemoBundle(bob.getOwnDevice());
    }
    assertEquals(a1, a1_, "Alice sent bob a preKeyMessage, so her bundle MUST still be the same.");
    assertNotEquals(b1, b2, "Bob just received a preKeyMessage from alice, so his bundle must have changed.");
    // Message B -> A
    final String body3 = "The german words for 'leek' and 'wimp' are the same.";
    AbstractOmemoMessageListener.MessageListener listener3 = new AbstractOmemoMessageListener.MessageListener(body3);
    alice.addOmemoMessageListener(listener3);
    OmemoMessage.Sent e3 = bob.encrypt(alice.getOwnJid(), body3);
    XMPPConnection bobsConnection = bob.getConnection();
    messageBuilder = bobsConnection.getStanzaFactory().buildMessageStanza();
    bobsConnection.sendStanza(e3.buildMessage(messageBuilder, alice.getOwnJid()));
    listener3.getSyncPoint().waitForResult(10 * 1000);
    alice.removeOmemoMessageListener(listener3);
    OmemoBundleElement a1__ = alice.getOmemoService().getOmemoStoreBackend().packOmemoBundle(alice.getOwnDevice());
    OmemoBundleElement b2_ = bob.getOmemoService().getOmemoStoreBackend().packOmemoBundle(bob.getOwnDevice());
    assertEquals(a1_, a1__, "Since alice initiated the session with bob, at no time he sent a preKeyMessage, " + "so her bundle MUST still be the same.");
    assertEquals(b2, b2_, "Bob changed his bundle earlier, but at this point his bundle must be equal to " + "after the first change.");
}
Also used : MessageBuilder(org.jivesoftware.smack.packet.MessageBuilder) OmemoBundleElement(org.jivesoftware.smackx.omemo.element.OmemoBundleElement) XMPPConnection(org.jivesoftware.smack.XMPPConnection) SmackIntegrationTest(org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest)

Aggregations

MessageBuilder (org.jivesoftware.smack.packet.MessageBuilder)34 Message (org.jivesoftware.smack.packet.Message)10 XMPPConnection (org.jivesoftware.smack.XMPPConnection)9 Test (org.junit.jupiter.api.Test)8 Test (org.junit.Test)7 SmackIntegrationTest (org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest)5 Stanza (org.jivesoftware.smack.packet.Stanza)3 RosterExchange (org.jivesoftware.smackx.xroster.packet.RosterExchange)3 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)3 Date (java.util.Date)2 DummyConnection (org.jivesoftware.smack.DummyConnection)2 AndFilter (org.jivesoftware.smack.filter.AndFilter)2 XmlElement (org.jivesoftware.smack.packet.XmlElement)2 OpenPgpMessage (org.jivesoftware.smackx.ox.OpenPgpMessage)2 EntityBareJid (org.jxmpp.jid.EntityBareJid)2 File (java.io.File)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Random (java.util.Random)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1