package com.orangelabs.rcs.chat;
import java.io.ByteArrayInputStream;
import org.xml.sax.InputSource;
import android.test.AndroidTestCase;
import com.orangelabs.rcs.core.ims.service.im.chat.imdn.ImdnDocument;
import com.orangelabs.rcs.core.ims.service.im.chat.imdn.ImdnParser;
import com.orangelabs.rcs.utils.logger.Logger;
public class ImdnParserTest extends AndroidTestCase {
private Logger logger = Logger.getLogger(this.getClass().getName());
private static final String CRLF = "\r\n";
/* IMDN SAMPLE:
<?xml version="1.0" encoding="UTF-8"?>
<imdn xmlns="urn:ietf:params:xml:ns:imdn">
<message-id>34jk324j</message-id>
<datetime>2008-04-04T12:16:49-05:00</datetime>
<display-notification>
<status>
<displayed/>
</status>
</display-notification>
</imdn>
*/
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testGetImdnDocument() {
/**
* Parse a delivery report
* @param xml XML document
* @return IMDN document
*/
StringBuffer sb = new StringBuffer("<?xml version=\"1.08\" encoding=\"UTF-8\"?>");
sb.append("<imdn xmlns=\"urn:ietf:params:xml:ns:imdn\">");
sb.append("<message-id>34jk324j</message-id>");
sb.append("DateTime: 2008-12-13T13:40:00-08:00");
sb.append("<display-notification>");
sb.append(CRLF);
sb.append("<status>");
sb.append(CRLF);
sb.append("<displayed/>");
sb.append(CRLF);
sb.append("</status>");
sb.append(CRLF);
sb.append("</display-notification>");
sb.append(CRLF);
sb.append("</imdn>");
String xml = sb.toString();
try {
InputSource inputso = new InputSource(new ByteArrayInputStream(xml.getBytes()));
ImdnParser parser = new ImdnParser(inputso);
ImdnDocument imdnDoc = parser.getImdnDocument();
if (logger.isActivated()) {
logger.info("MsgId=" + imdnDoc.getMsgId() + " status=" + imdnDoc.getStatus());
}
assertEquals(imdnDoc.getMsgId(), "34jk324j");
assertEquals(imdnDoc.getStatus(), "displayed");
} catch(Exception e) {
fail("no Imdn source parsed");
e.printStackTrace();
}
}
}