1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-12-23 21:17:58 +01:00

Had to remove the special characters in Spanish text due to failures in test cases.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@12023 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
rcollier 2011-02-07 00:36:26 +00:00
parent 158e02fb40
commit 91c2b08d4a

View file

@ -52,11 +52,16 @@
package org.jivesoftware.smackx.packet; package org.jivesoftware.smackx.packet;
import java.util.*; import java.util.Iterator;
import org.jivesoftware.smack.*; import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.filter.*; import org.jivesoftware.smack.PacketCollector;
import org.jivesoftware.smack.packet.*; import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.filter.PacketExtensionFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.ThreadFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.test.SmackTestCase; import org.jivesoftware.smack.test.SmackTestCase;
/** /**
@ -70,7 +75,7 @@ public class XHTMLExtensionTest extends SmackTestCase {
private int bodiesReceived; private int bodiesReceived;
public XHTMLExtensionTest(String name) { public XHTMLExtensionTest(String name) {
super(name); super(name);
} }
/** /**
@ -79,27 +84,27 @@ public class XHTMLExtensionTest extends SmackTestCase {
* 1. User_1 will send a message with formatted text (XHTML) to user_2 * 1. User_1 will send a message with formatted text (XHTML) to user_2
*/ */
public void testSendSimpleXHTMLMessage() { public void testSendSimpleXHTMLMessage() {
// User1 creates a chat with user2 // User1 creates a chat with user2
Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null); Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null);
// User1 creates a message to send to user2 // User1 creates a message to send to user2
Message msg = new Message(); Message msg = new Message();
msg.setSubject("Any subject you want"); msg.setSubject("Any subject you want");
msg.setBody("Hey John, this is my new green!!!!"); msg.setBody("Hey John, this is my new green!!!!");
// Create a XHTMLExtension Package and add it to the message // Create a XHTMLExtension Package and add it to the message
XHTMLExtension xhtmlExtension = new XHTMLExtension(); XHTMLExtension xhtmlExtension = new XHTMLExtension();
xhtmlExtension.addBody( xhtmlExtension.addBody(
"<body><p style='font-size:large'>Hey John, this is my new <span style='color:green'>green</span><em>!!!!</em></p></body>"); "<body><p style='font-size:large'>Hey John, this is my new <span style='color:green'>green</span><em>!!!!</em></p></body>");
msg.addExtension(xhtmlExtension); msg.addExtension(xhtmlExtension);
// User1 sends the message that contains the XHTML to user2 // User1 sends the message that contains the XHTML to user2
try { try {
chat1.sendMessage(msg); chat1.sendMessage(msg);
Thread.sleep(200); Thread.sleep(200);
} }
catch (Exception e) { catch (Exception e) {
fail("An error occured sending the message with XHTML"); fail("An error occured sending the message with XHTML");
} }
} }
/** /**
@ -111,48 +116,48 @@ public class XHTMLExtensionTest extends SmackTestCase {
* something is wrong * something is wrong
*/ */
public void testSendSimpleXHTMLMessageAndDisplayReceivedXHTMLMessage() { public void testSendSimpleXHTMLMessageAndDisplayReceivedXHTMLMessage() {
// Create a chat for each connection // Create a chat for each connection
Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null); Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null);
final PacketCollector chat2 = getConnection(1).createPacketCollector( final PacketCollector chat2 = getConnection(1).createPacketCollector(
new ThreadFilter(chat1.getThreadID())); new ThreadFilter(chat1.getThreadID()));
// User1 creates a message to send to user2 // User1 creates a message to send to user2
Message msg = new Message(); Message msg = new Message();
msg.setSubject("Any subject you want"); msg.setSubject("Any subject you want");
msg.setBody("Hey John, this is my new green!!!!"); msg.setBody("Hey John, this is my new green!!!!");
// Create a XHTMLExtension Package and add it to the message // Create a XHTMLExtension Package and add it to the message
XHTMLExtension xhtmlExtension = new XHTMLExtension(); XHTMLExtension xhtmlExtension = new XHTMLExtension();
xhtmlExtension.addBody( xhtmlExtension.addBody(
"<body><p style='font-size:large'>Hey John, this is my new <span style='color:green'>green</span><em>!!!!</em></p></body>"); "<body><p style='font-size:large'>Hey John, this is my new <span style='color:green'>green</span><em>!!!!</em></p></body>");
msg.addExtension(xhtmlExtension); msg.addExtension(xhtmlExtension);
// User1 sends the message that contains the XHTML to user2 // User1 sends the message that contains the XHTML to user2
try { try {
chat1.sendMessage(msg); chat1.sendMessage(msg);
} }
catch (Exception e) { catch (Exception e) {
fail("An error occured sending the message with XHTML"); fail("An error occured sending the message with XHTML");
} }
Packet packet = chat2.nextResult(2000); Packet packet = chat2.nextResult(2000);
Message message = (Message) packet; Message message = (Message) packet;
assertNotNull("Body is null", message.getBody()); assertNotNull("Body is null", message.getBody());
try { try {
xhtmlExtension = xhtmlExtension =
(XHTMLExtension) message.getExtension( (XHTMLExtension) message.getExtension(
"html", "html",
"http://jabber.org/protocol/xhtml-im"); "http://jabber.org/protocol/xhtml-im");
assertNotNull( assertNotNull(
"Message without extension \"http://jabber.org/protocol/xhtml-im\"", "Message without extension \"http://jabber.org/protocol/xhtml-im\"",
xhtmlExtension); xhtmlExtension);
assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0); assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0);
for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) { for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) {
String body = (String) it.next(); String body = (String) it.next();
System.out.println(body); System.out.println(body);
} }
} }
catch (ClassCastException e) { catch (ClassCastException e) {
fail("ClassCastException - Most probable cause is that smack providers is misconfigured"); fail("ClassCastException - Most probable cause is that smack providers is misconfigured");
} }
} }
/** /**
@ -164,77 +169,79 @@ public class XHTMLExtensionTest extends SmackTestCase {
* something is wrong * something is wrong
*/ */
public void testSendComplexXHTMLMessageAndDisplayReceivedXHTMLMessage() { public void testSendComplexXHTMLMessageAndDisplayReceivedXHTMLMessage() {
// Create a chat for each connection // Create a chat for each connection
Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null); Chat chat1 = getConnection(0).getChatManager().createChat(getBareJID(1), null);
final PacketCollector chat2 = getConnection(1).createPacketCollector( final PacketCollector chat2 = getConnection(1).createPacketCollector(
new ThreadFilter(chat1.getThreadID())); new ThreadFilter(chat1.getThreadID()));
// Create a Listener that listens for Messages with the extension // Create a Listener that listens for Messages with the extension
//"http://jabber.org/protocol/xhtml-im" //"http://jabber.org/protocol/xhtml-im"
// This listener will listen on the conn2 and answer an ACK if everything is ok // This listener will listen on the conn2 and answer an ACK if everything is ok
PacketFilter packetFilter = PacketFilter packetFilter =
new PacketExtensionFilter("html", "http://jabber.org/protocol/xhtml-im"); new PacketExtensionFilter("html", "http://jabber.org/protocol/xhtml-im");
PacketListener packetListener = new PacketListener() { PacketListener packetListener = new PacketListener() {
public void processPacket(Packet packet) { @Override
public void processPacket(Packet packet) {
} }
}; };
getConnection(1).addPacketListener(packetListener, packetFilter); getConnection(1).addPacketListener(packetListener, packetFilter);
// User1 creates a message to send to user2 // User1 creates a message to send to user2
Message msg = new Message(); Message msg = new Message();
msg.setSubject("Any subject you want"); msg.setSubject("Any subject you want");
msg.setBody( msg.setBody(
"awesome! As Emerson once said: A foolish consistency is the hobgoblin of little minds."); "awesome! As Emerson once said: A foolish consistency is the hobgoblin of little minds.");
// Create an XHTMLExtension and add it to the message // Create an XHTMLExtension and add it to the message
XHTMLExtension xhtmlExtension = new XHTMLExtension(); XHTMLExtension xhtmlExtension = new XHTMLExtension();
xhtmlExtension.addBody( xhtmlExtension.addBody(
"<body xml:lang=\"es-ES\"><h1>impresionante!</h1><p>Como Emerson dijo una vez:</p><blockquote><p>Una consistencia ridícula es el espantajo de mentes pequeñas.</p></blockquote></body>"); "<body xml:lang=\"es-ES\"><h1>impresionante!</h1><p>Como Emerson dijo una vez:</p><blockquote><p>Una consistencia ridicula es el espantajo de mentes pequenas.</p></blockquote></body>");
xhtmlExtension.addBody( xhtmlExtension.addBody(
"<body xml:lang=\"en-US\"><h1>awesome!</h1><p>As Emerson once said:</p><blockquote><p>A foolish consistency is the hobgoblin of little minds.</p></blockquote></body>"); "<body xml:lang=\"en-US\"><h1>awesome!</h1><p>As Emerson once said:</p><blockquote><p>A foolish consistency is the hobgoblin of little minds.</p></blockquote></body>");
msg.addExtension(xhtmlExtension); msg.addExtension(xhtmlExtension);
// User1 sends the message that contains the XHTML to user2 // User1 sends the message that contains the XHTML to user2
try { try {
bodiesSent = xhtmlExtension.getBodiesCount(); bodiesSent = xhtmlExtension.getBodiesCount();
bodiesReceived = 0; bodiesReceived = 0;
chat1.sendMessage(msg); chat1.sendMessage(msg);
} }
catch (Exception e) { catch (Exception e) {
fail("An error occured sending the message with XHTML"); fail("An error occured sending the message with XHTML");
} }
Packet packet = chat2.nextResult(2000); Packet packet = chat2.nextResult(2000);
int received = 0; int received = 0;
Message message = (Message) packet; Message message = (Message) packet;
assertNotNull("Body is null", message.getBody()); assertNotNull("Body is null", message.getBody());
try { try {
xhtmlExtension = xhtmlExtension =
(XHTMLExtension) message.getExtension( (XHTMLExtension) message.getExtension(
"html", "html",
"http://jabber.org/protocol/xhtml-im"); "http://jabber.org/protocol/xhtml-im");
assertNotNull( assertNotNull(
"Message without extension \"http://jabber.org/protocol/xhtml-im\"", "Message without extension \"http://jabber.org/protocol/xhtml-im\"",
xhtmlExtension); xhtmlExtension);
assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0); assertTrue("Message without XHTML bodies", xhtmlExtension.getBodiesCount() > 0);
for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) { for (Iterator it = xhtmlExtension.getBodies(); it.hasNext();) {
received++; received++;
System.out.println((String) it.next()); System.out.println((String) it.next());
} }
bodiesReceived = received; bodiesReceived = received;
} }
catch (ClassCastException e) { catch (ClassCastException e) {
fail("ClassCastException - Most probable cause is that smack providers is " + fail("ClassCastException - Most probable cause is that smack providers is " +
"misconfigured"); "misconfigured");
} }
// Wait half second so that the complete test can run // Wait half second so that the complete test can run
assertEquals( assertEquals(
"Number of sent and received XHTMP bodies does not match", "Number of sent and received XHTMP bodies does not match",
bodiesSent, bodiesSent,
bodiesReceived); bodiesReceived);
} }
@Override
protected int getMaxConnections() { protected int getMaxConnections() {
return 2; return 2;
} }
} }