@Override public void run() { con.processStanza(chatPacket); } }
private void answerWithEmptyRosterResult() { // We expect that the roster request is the only packet sent. This is not part of the specification, // but a shortcut in the test implementation. Stanza sentPacket = connection.getSentPacket(); if (sentPacket instanceof RosterPacket) { final IQ emptyIQ = IQ.createResultIQ((RosterPacket) sentPacket); connection.processStanza(emptyIQ); } else { assertTrue("Expected to get a RosterPacket ", false); } }
rosterPush.setTo(connection.getUser()); rosterPush.addRosterItem(item); connection.processStanza(rosterPush); connection.processStanza(response);
connection.processStanza(rosterPush); rosterListener.waitUntilInvocationOrTimeout();
connection.processStanza(rosterPush); rosterListener.waitUntilInvocationOrTimeout();
rosterPush.setTo(connection.getUser()); rosterPush.addRosterItem(item); connection.processStanza(rosterPush); connection.processStanza(response);
/** * Remove all roster entries by iterating trough {@link Roster#getEntries()} * and simulating receiving roster pushes from the server. * * @param connection the dummy connection of which the provided roster belongs to. * @param roster the roster (or buddy list) which should be initialized. */ public static void removeAllRosterEntries(DummyConnection connection, Roster roster) { for (RosterEntry entry : roster.getEntries()) { // prepare the roster push packet final RosterPacket rosterPush = new RosterPacket(); rosterPush.setType(Type.set); rosterPush.setTo(connection.getUser()); // prepare the buddy's item entry which should be removed final RosterPacket.Item item = new RosterPacket.Item(entry.getJid(), entry.getName()); item.setItemType(ItemType.remove); rosterPush.addRosterItem(item); // simulate receiving the roster push connection.processStanza(rosterPush); } }
@Test public void receiptManagerListenerTest() throws Exception { DummyConnection c = new DummyConnection(); c.connect(); DeliveryReceiptManager drm = DeliveryReceiptManager.getInstanceFor(c); TestReceiptReceivedListener rrl = new TestReceiptReceivedListener(); drm.addReceiptReceivedListener(rrl); Message m = new Message(JidCreate.from("romeo@montague.com"), Message.Type.normal); m.setFrom(JidCreate.from("julia@capulet.com")); m.setStanzaId("reply-id"); m.addExtension(new DeliveryReceipt("original-test-id")); c.processStanza(m); rrl.waitUntilInvocationOrTimeout(); }
@Test public void checkProvider() throws Exception { // @formatter:off String control = "<iq from='capulet.lit' to='juliet@capulet.lit/balcony' id='s2c1' type='get'>" + "<ping xmlns='urn:xmpp:ping'/>" + "</iq>"; // @formatter:on DummyConnection con = new DummyConnection(); con.connect(); // Enable ping for this connection PingManager.getInstanceFor(con); IQ pingRequest = PacketParserUtils.parseStanza(control); assertTrue(pingRequest instanceof Ping); con.processStanza(pingRequest); Stanza pongPacket = con.getSentPacket(); assertTrue(pongPacket instanceof IQ); IQ pong = (IQ) pongPacket; assertThat("capulet.lit", equalsCharSequence(pong.getTo())); assertEquals("s2c1", pong.getStanzaId()); assertEquals(IQ.Type.result, pong.getType()); }
rosterPush.addRosterItem(pushedItem); rosterListener.reset(); connection.processStanza(rosterPush); rosterListener.waitAndReset(); rosterPush.addRosterItem(item); rosterListener.reset(); connection.processStanza(rosterPush); rosterListener.waitAndReset();
connection.processStanza(answer); rosterListener.waitUntilInvocationOrTimeout(); } else {
@Test public void checkProvider() throws Exception { XMLBuilder xml = XMLBuilder.create("iq"); xml.a("from", "romeo@montague.net/orchard") .a("id", "last2") .a("to", "juliet@capulet.com/balcony") .a("type", "get") .e("query") .namespace(LastActivity.NAMESPACE); DummyConnection c = new DummyConnection(); c.connect(); IQ lastRequest = PacketParserUtils.parseStanza(xml.asString()); assertTrue(lastRequest instanceof LastActivity); c.processStanza(lastRequest); Stanza reply = c.getSentPacket(); assertTrue(reply instanceof LastActivity); LastActivity l = (LastActivity) reply; assertEquals("last2", l.getStanzaId()); assertEquals(IQ.Type.result, l.getType()); } }
@Test public void receiptManagerAutoReplyTest() throws Exception { DummyConnection c = new DummyConnection(); c.connect(); DeliveryReceiptManager drm = DeliveryReceiptManager.getInstanceFor(c); drm.setAutoReceiptMode(AutoReceiptMode.always); assertEquals(AutoReceiptMode.always, drm.getAutoReceiptMode()); // test auto-receipts Message m = new Message(JidCreate.from("julia@capulet.com"), Message.Type.normal); m.setFrom(JidCreate.from("romeo@montague.com")); m.setStanzaId("test-receipt-request"); DeliveryReceiptRequest.addTo(m); // the DRM will send a reply-packet c.processStanza(m); Stanza reply = c.getSentPacket(); DeliveryReceipt r = DeliveryReceipt.from((Message) reply); assertThat("romeo@montague.com", equalsCharSequence(reply.getTo())); assertEquals("test-receipt-request", r.getId()); } }
/** * Tests that roster pushes with invalid from are ignored. * @throws XmppStringprepException * * @see <a href="http://xmpp.org/rfcs/rfc6121.html#roster-syntax-actions-push">RFC 6121, Section 2.1.6</a> */ @Test public void testIgnoreInvalidFrom() throws XmppStringprepException { final BareJid spammerJid = JidCreate.entityBareFrom("spam@example.com"); RosterPacket packet = new RosterPacket(); packet.setType(Type.set); packet.setTo(connection.getUser()); packet.setFrom(JidCreate.entityBareFrom("mallory@example.com")); packet.addRosterItem(new Item(spammerJid, "Cool products!")); final String requestId = packet.getStanzaId(); // Simulate receiving the roster push connection.processStanza(packet); // Smack should reply with an error IQ ErrorIQ errorIQ = connection.getSentPacket(); assertEquals(requestId, errorIQ.getStanzaId()); assertEquals(Condition.service_unavailable, errorIQ.getError().getCondition()); assertNull("Contact was added to roster", Roster.getInstanceFor(connection).getEntry(spammerJid)); }
con.processStanza(versionRequest);
connection.processStanza(rosterResult); break;