summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2015-06-21 12:33:44 (GMT)
committerTarun Gupta <tarun1995gupta@gmail.com>2015-06-30 13:24:34 (GMT)
commit25fade1995f559c8937b57585f462aaa2ae01c6a (patch)
tree008b432b08decc871f07bece2bc4307c033a6651 /test/com/isode/stroke/parser
parentb830f64de47271777d8e45ddb0a18dc2ac740dd9 (diff)
downloadstroke-25fade1995f559c8937b57585f462aaa2ae01c6a.zip
stroke-25fade1995f559c8937b57585f462aaa2ae01c6a.tar.bz2
Add tests for Payloads Parsers and Payloads Serializers.
Updates DiscoInfoParser, DiscoItemsParser and VCard Element. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Test are added for: DeliveryReceipt Parser and Serializer. DiscoInfo Parser and Serializer, DiscoItemsParser. Replace Parser and Serializer. ResourceBind Parser and Serializer. SecurityLabel Parser and Serializer. SecurityLabelsCatalog Parser and Serializer. Status Parser and Serializer. StatusShow Parser and Serializer. SoftwareVersion Parser and Serializer. VCard Parser and Serializer. All tests passes. Change-Id: I8023372273e63813e1c8fe708fa6cdf39614e1f7
Diffstat (limited to 'test/com/isode/stroke/parser')
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/DeliveryReceiptParserTest.java52
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/DiscoInfoParserTest.java115
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/DiscoItemsParserTest.java50
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/ReplaceTest.java46
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/ResourceBindParserTest.java51
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/SecurityLabelParserTest.java56
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/SecurityLabelsCatalogParserTest.java69
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/SoftwareVersionParserTest.java45
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/StatusParserTest.java38
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/StatusShowParserTest.java78
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/VCardParserTest.java215
11 files changed, 815 insertions, 0 deletions
diff --git a/test/com/isode/stroke/parser/payloadparsers/DeliveryReceiptParserTest.java b/test/com/isode/stroke/parser/payloadparsers/DeliveryReceiptParserTest.java
new file mode 100644
index 0000000..fc74067
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/DeliveryReceiptParserTest.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2011 Tobias Markmann
+ * Licensed under the BSD license.
+ * See http://www.opensource.org/licenses/bsd-license.php for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.DeliveryReceiptRequest;
+import com.isode.stroke.elements.DeliveryReceipt;
+import com.isode.stroke.parser.payloadparsers.DeliveryReceiptParser;
+import com.isode.stroke.parser.payloadparsers.DeliveryReceiptRequestParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class DeliveryReceiptParserTest {
+
+ public DeliveryReceiptParserTest() {
+
+ }
+
+ @Test
+ public void testParseXEP0184Example3() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<request xmlns='urn:xmpp:receipts'/>"));
+
+ DeliveryReceiptRequest request = (DeliveryReceiptRequest)(parser.getPayload());
+
+ assertNotNull(request);
+ }
+
+ @Test
+ public void testParseXEP0184Example4() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<received xmlns='urn:xmpp:receipts' id='richard2-4.1.247'/>"));
+
+ DeliveryReceipt receipt = (DeliveryReceipt)(parser.getPayload());
+
+ assertEquals("richard2-4.1.247", receipt.getReceivedID());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/DiscoInfoParserTest.java b/test/com/isode/stroke/parser/payloadparsers/DiscoInfoParserTest.java
new file mode 100644
index 0000000..ef6fd72
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/DiscoInfoParserTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import com.isode.stroke.elements.DiscoInfo;
+import com.isode.stroke.parser.payloadparsers.DiscoInfoParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class DiscoInfoParserTest {
+
+ public DiscoInfoParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<query xmlns=\"http://jabber.org/protocol/disco#info\">" +
+ "<identity name=\"Swift\" category=\"client\" type=\"pc\" xml:lang=\"en\"/>" +
+ "<identity name=\"Vlug\" category=\"client\" type=\"pc\" xml:lang=\"nl\"/>" +
+ "<feature var=\"foo-feature\"/>" +
+ "<feature var=\"bar-feature\"/>" +
+ "<feature var=\"baz-feature\"/>" +
+ "</query>"));
+
+ DiscoInfo payload = (DiscoInfo)(parser.getPayload());
+ assertEquals(2, payload.getIdentities().size());
+ assertEquals("Swift", payload.getIdentities().get(0).getName());
+ assertEquals("pc", payload.getIdentities().get(0).getType());
+ assertEquals("client", payload.getIdentities().get(0).getCategory());
+ assertEquals("en", payload.getIdentities().get(0).getLanguage());
+ assertEquals("Vlug", payload.getIdentities().get(1).getName());
+ assertEquals("pc", payload.getIdentities().get(1).getType());
+ assertEquals("client", payload.getIdentities().get(1).getCategory());
+ assertEquals("nl", payload.getIdentities().get(1).getLanguage());
+ assertEquals(3, payload.getFeatures().size());
+ assertEquals("foo-feature", payload.getFeatures().get(0));
+ assertEquals("bar-feature", payload.getFeatures().get(1));
+ assertEquals("baz-feature", payload.getFeatures().get(2));
+ assertTrue(payload.getNode().isEmpty());
+ }
+
+ @Test
+ public void testParse_Node() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<query xmlns=\"http://jabber.org/protocol/disco#info\" node=\"blahblah\">" +
+ "<identity name=\"Swift\" category=\"client\" type=\"pc\" xml:lang=\"en\"/>" +
+ "<identity name=\"Vlug\" category=\"client\" type=\"pc\" xml:lang=\"nl\"/>" +
+ "<feature var=\"foo-feature\"/>" +
+ "<feature var=\"bar-feature\"/>" +
+ "<feature var=\"baz-feature\"/>" +
+ "</query>"));
+
+ DiscoInfo payload = (DiscoInfo)(parser.getPayload());
+ assertEquals(2, payload.getIdentities().size());
+ assertEquals("Swift", payload.getIdentities().get(0).getName());
+ assertEquals("pc", payload.getIdentities().get(0).getType());
+ assertEquals("client", payload.getIdentities().get(0).getCategory());
+ assertEquals("en", payload.getIdentities().get(0).getLanguage());
+ assertEquals("Vlug", payload.getIdentities().get(1).getName());
+ assertEquals("pc", payload.getIdentities().get(1).getType());
+ assertEquals("client", payload.getIdentities().get(1).getCategory());
+ assertEquals("nl", payload.getIdentities().get(1).getLanguage());
+ assertEquals(3, payload.getFeatures().size());
+ assertEquals("foo-feature", payload.getFeatures().get(0));
+ assertEquals("bar-feature", payload.getFeatures().get(1));
+ assertEquals("baz-feature", payload.getFeatures().get(2));
+ assertEquals("blahblah", payload.getNode());
+ }
+
+ @Test
+ public void testParse_Form() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<query xmlns=\"http://jabber.org/protocol/disco#info\">" +
+ "<feature var=\"foo-feature\"/>" +
+ "<x type=\"submit\" xmlns=\"jabber:x:data\">" +
+ "<title>Bot Configuration</title>" +
+ "<instructions>Hello!</instructions>" +
+ "</x>" +
+ "<feature var=\"bar-feature\"/>" +
+ "</query>"));
+
+ DiscoInfo payload = (DiscoInfo)(parser.getPayload());
+ assertEquals(1, payload.getExtensions().size());
+ assertEquals("Bot Configuration", payload.getExtensions().get(0).getTitle());
+ assertEquals(2, payload.getFeatures().size());
+ assertEquals("foo-feature", payload.getFeatures().get(0));
+ assertEquals("bar-feature", payload.getFeatures().get(1));
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/DiscoItemsParserTest.java b/test/com/isode/stroke/parser/payloadparsers/DiscoItemsParserTest.java
new file mode 100644
index 0000000..2564633
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/DiscoItemsParserTest.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2012 Jan Kaluza
+ * Licensed under the Simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.DiscoItems;
+import com.isode.stroke.parser.payloadparsers.DiscoItemsParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class DiscoItemsParserTest {
+
+ public DiscoItemsParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<query xmlns='http://jabber.org/protocol/disco#items' node='http://jabber.org/protocol/commands'>" +
+ "<item jid='responder@domain' node='list' name='List Service Configurations'/>" +
+ "<item jid='responder@domain' node='config' name='Configure Service'/>" +
+ "</query>"));
+
+ DiscoItems payload =(DiscoItems)(parser.getPayload());
+ assertEquals(2, payload.getItems().size());
+ assertEquals("List Service Configurations", payload.getItems().get(0).getName());
+ assertEquals("list", payload.getItems().get(0).getNode());
+ assertEquals("responder@domain", payload.getItems().get(0).getJID().toString());
+ assertEquals("Configure Service", payload.getItems().get(1).getName());
+ assertEquals("config", payload.getItems().get(1).getNode());
+ assertEquals("responder@domain", payload.getItems().get(1).getJID().toString());
+ assertEquals("http://jabber.org/protocol/commands", payload.getNode());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/ReplaceTest.java b/test/com/isode/stroke/parser/payloadparsers/ReplaceTest.java
new file mode 100644
index 0000000..256a09e
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/ReplaceTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2011 Vlad Voicu
+ * Licensed under the Simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.Replace;
+import com.isode.stroke.parser.payloadparsers.ReplaceParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class ReplaceTest {
+
+ public ReplaceTest() {
+
+ }
+
+ @Test
+ public void testParseTrivial() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<replace id='bad1' xmlns='http://swift.im/protocol/replace'/>"));
+ Replace payload = (Replace)(parser.getPayload());
+ assertEquals("bad1", payload.getID());
+ }
+
+ @Test
+ public void testParseChild() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<replace id='bad1' xmlns='http://swift.im/protocol/replace' ><child xmlns='blah' id=\"hi\"/></replace>"));
+ Replace payload = (Replace)(parser.getPayload());
+ assertEquals("bad1", payload.getID());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/ResourceBindParserTest.java b/test/com/isode/stroke/parser/payloadparsers/ResourceBindParserTest.java
new file mode 100644
index 0000000..337876a
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/ResourceBindParserTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.ResourceBind;
+import com.isode.stroke.parser.payloadparsers.ResourceBindParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+import com.isode.stroke.jid.JID;
+
+public class ResourceBindParserTest {
+
+ public ResourceBindParserTest() {
+
+ }
+
+ @Test
+ public void testParse_JID() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse("<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>somenode@example.com/someresource</jid></bind>"));
+
+ ResourceBind payload = (ResourceBind)(parser.getPayload());
+ assertEquals(new JID("somenode@example.com/someresource"), payload.getJID());
+ }
+
+ @Test
+ public void testParse_Resource() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse("<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>someresource</resource></bind>"));
+
+ ResourceBind payload = (ResourceBind)(parser.getPayload());
+ assertEquals("someresource", payload.getResource());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/SecurityLabelParserTest.java b/test/com/isode/stroke/parser/payloadparsers/SecurityLabelParserTest.java
new file mode 100644
index 0000000..7c97ee1
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/SecurityLabelParserTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.SecurityLabel;
+import com.isode.stroke.parser.payloadparsers.SecurityLabelParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class SecurityLabelParserTest {
+
+ public SecurityLabelParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<securitylabel xmlns=\"urn:xmpp:sec-label:0\">" +
+ "<displaymarking fgcolor=\"black\" bgcolor=\"red\">SECRET</displaymarking>" +
+ "<label>" +
+ "<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel>" +
+ "</label>" +
+ "<equivalentlabel>" +
+ "<icismlabel xmlns=\"http://example.gov/IC-ISM/0\" classification=\"S\" ownerProducer=\"USA\" disseminationControls=\"FOUO\"/>" +
+ "</equivalentlabel>" +
+ "<equivalentlabel>" +
+ "<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MRUCAgD9DA9BcXVhIChvYnNvbGV0ZSk=</esssecuritylabel>" +
+ "</equivalentlabel>" +
+ "</securitylabel>"));
+
+ SecurityLabel payload = (SecurityLabel)(parser.getPayload());
+ assertEquals("SECRET", payload.getDisplayMarking());
+ assertEquals("black", payload.getForegroundColor());
+ assertEquals("red", payload.getBackgroundColor());
+ assertEquals("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel>", payload.getLabel());
+ assertEquals("<icismlabel classification=\"S\" disseminationControls=\"FOUO\" ownerProducer=\"USA\" xmlns=\"http://example.gov/IC-ISM/0\"/>", payload.getEquivalentLabels().toArray()[0]);
+ assertEquals("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MRUCAgD9DA9BcXVhIChvYnNvbGV0ZSk=</esssecuritylabel>", payload.getEquivalentLabels().toArray()[1]);
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/SecurityLabelsCatalogParserTest.java b/test/com/isode/stroke/parser/payloadparsers/SecurityLabelsCatalogParserTest.java
new file mode 100644
index 0000000..49bc4aa
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/SecurityLabelsCatalogParserTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.SecurityLabelsCatalog;
+import com.isode.stroke.parser.payloadparsers.SecurityLabelsCatalogParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+import com.isode.stroke.jid.JID;
+
+public class SecurityLabelsCatalogParserTest {
+
+ public SecurityLabelsCatalogParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+
+ assertNotNull(parser.parse(
+ "<catalog desc=\"an example set of labels\" name=\"Default\" to=\"example.com\" xmlns=\"urn:xmpp:sec-label:catalog:2\">"
+ + "<item selector='Classified|SECRET'>"
+ + "<securitylabel xmlns=\"urn:xmpp:sec-label:0\">"
+ + "<displaymarking bgcolor=\"red\" fgcolor=\"black\">SECRET</displaymarking>"
+ + "<label><esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel></label>"
+ + "</securitylabel>"
+ + "</item>"
+ + "<item selector='Classified|CONFIDENTIAL' default='true'>"
+ + "<securitylabel xmlns=\"urn:xmpp:sec-label:0\">"
+ + "<displaymarking bgcolor=\"navy\" fgcolor=\"black\">CONFIDENTIAL</displaymarking>"
+ + "<label><esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQMGASk=</esssecuritylabel></label>"
+ + "</securitylabel>"
+ + "</item>"
+ + "<item selector='Unclassified|UNCLASSIFIED'/>"
+ + "</catalog>"));
+
+ SecurityLabelsCatalog payload = (SecurityLabelsCatalog)(parser.getPayload());
+ assertEquals("Default", payload.getName());
+ assertEquals("an example set of labels", payload.getDescription());
+ assertEquals(new JID("example.com"), payload.getTo());
+ assertEquals(3, payload.getItems().size());
+ assertEquals("SECRET", payload.getItems().get(0).getLabel().getDisplayMarking());
+ assertEquals("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQYCAQQGASk=</esssecuritylabel>", payload.getItems().get(0).getLabel().getLabel());
+ assertEquals(false, payload.getItems().get(0).getIsDefault());
+ assertEquals("Classified|SECRET", payload.getItems().get(0).getSelector());
+ assertEquals("CONFIDENTIAL", payload.getItems().get(1).getLabel().getDisplayMarking());
+ assertEquals("<esssecuritylabel xmlns=\"urn:xmpp:sec-label:ess:0\">MQMGASk=</esssecuritylabel>", payload.getItems().get(1).getLabel().getLabel());
+ assertEquals(true, payload.getItems().get(1).getIsDefault());
+ assertEquals("Classified|CONFIDENTIAL", payload.getItems().get(1).getSelector());
+ assertEquals(false, payload.getItems().get(2).getIsDefault());
+ assertEquals("Unclassified|UNCLASSIFIED", payload.getItems().get(2).getSelector());
+ assertNull(payload.getItems().get(2).getLabel());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/SoftwareVersionParserTest.java b/test/com/isode/stroke/parser/payloadparsers/SoftwareVersionParserTest.java
new file mode 100644
index 0000000..46617bf
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/SoftwareVersionParserTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.SoftwareVersion;
+import com.isode.stroke.parser.payloadparsers.SoftwareVersionParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class SoftwareVersionParserTest {
+
+ public SoftwareVersionParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<query xmlns=\"jabber:iq:version\">"
+ + "<name>myclient</name>"
+ + "<version>1.0</version>"
+ + "<os>Mac OS X</os>"
+ + "</query>"));
+
+ SoftwareVersion payload = (SoftwareVersion)parser.getPayload();
+ assertEquals("myclient", payload.getName());
+ assertEquals("1.0", payload.getVersion());
+ assertEquals("Mac OS X", payload.getOS());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/StatusParserTest.java b/test/com/isode/stroke/parser/payloadparsers/StatusParserTest.java
new file mode 100644
index 0000000..3ecc736
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/StatusParserTest.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.Status;
+import com.isode.stroke.parser.payloadparsers.StatusParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class StatusParserTest {
+
+ public StatusParserTest() {
+
+ }
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<status>foo<baz>bar</baz>fum</status>"));
+
+ Status payload = (Status)(parser.getPayload());
+ assertEquals("foobarfum", payload.getText());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/StatusShowParserTest.java b/test/com/isode/stroke/parser/payloadparsers/StatusShowParserTest.java
new file mode 100644
index 0000000..6e30f1c
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/StatusShowParserTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import org.junit.Test;
+import com.isode.stroke.elements.StatusShow;
+import com.isode.stroke.parser.payloadparsers.StatusShowParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+
+public class StatusShowParserTest {
+
+ public StatusShowParserTest() {
+
+ }
+
+ @Test
+ public void testParse_Invalid() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<show>invalid</show>"));
+
+ StatusShow payload = (StatusShow)(parser.getPayload());
+ assertEquals(StatusShow.Type.Online, payload.getType());
+ }
+
+ @Test
+ public void testParse_Away() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<show>away</show>"));
+
+ StatusShow payload = (StatusShow)(parser.getPayload());
+ assertEquals(StatusShow.Type.Away, payload.getType());
+ }
+
+ @Test
+ public void testParse_FFC() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<show>chat</show>"));
+
+ StatusShow payload = (StatusShow)(parser.getPayload());
+ assertEquals(StatusShow.Type.FFC, payload.getType());
+ }
+
+ @Test
+ public void testParse_XA() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<show>xa</show>"));
+
+ StatusShow payload = (StatusShow)(parser.getPayload());
+ assertEquals(StatusShow.Type.XA, payload.getType());
+ }
+
+ @Test
+ public void testParse_DND() {
+ DummyEventLoop eventLoop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventLoop);
+ assertNotNull(parser.parse("<show>dnd</show>"));
+
+ StatusShow payload = (StatusShow)(parser.getPayload());
+ assertEquals(StatusShow.Type.DND, payload.getType());
+ }
+} \ No newline at end of file
diff --git a/test/com/isode/stroke/parser/payloadparsers/VCardParserTest.java b/test/com/isode/stroke/parser/payloadparsers/VCardParserTest.java
new file mode 100644
index 0000000..292df11
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/VCardParserTest.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright (c) 2010 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertNotNull;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import com.isode.stroke.elements.VCard;
+import com.isode.stroke.elements.Payload;
+import com.isode.stroke.parser.payloadparsers.VCardParser;
+import com.isode.stroke.parser.payloadparsers.PayloadsParserTester;
+import com.isode.stroke.eventloop.DummyEventLoop;
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.base.DateTime;
+import com.isode.stroke.base.ByteArray;
+import com.isode.stroke.stringcodecs.Hexify;
+
+public class VCardParserTest {
+
+ @Test
+ public void testParse() {
+ DummyEventLoop eventloop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventloop);
+
+ assertNotNull(parser.parse(
+ "<vCard xmlns=\"vcard-temp\">" +
+ "<VERSION>2.0</VERSION>" +
+ "<FN>Alice In Wonderland</FN>" +
+ "<N>" +
+ "<FAMILY>Wonderland</FAMILY>" +
+ "<GIVEN>Alice</GIVEN>" +
+ "<MIDDLE>In</MIDDLE>" +
+ "<PREFIX>Mrs</PREFIX>" +
+ "<SUFFIX>PhD</SUFFIX>" +
+ "</N>" +
+ "<EMAIL>" +
+ "<USERID>alice@wonderland.lit</USERID>" +
+ "<HOME/>" +
+ "<INTERNET/>" +
+ "<PREF/>" +
+ "</EMAIL>" +
+ "<EMAIL>" +
+ "<USERID>alice@teaparty.lit</USERID>" +
+ "<WORK/>" +
+ "<X400/>" +
+ "</EMAIL>" +
+ "<TEL>" +
+ "<NUMBER>555-6273</NUMBER>" +
+ "<HOME/>" +
+ "<VOICE/>" +
+ "</TEL>" +
+ "<ADR>" +
+ "<LOCALITY>Any Town</LOCALITY>" +
+ "<STREET>Fake Street 123</STREET>" +
+ "<PCODE>12345</PCODE>" +
+ "<CTRY>USA</CTRY>" +
+ "<HOME/>" +
+ "</ADR>" +
+ "<LABEL>" +
+ "<LINE>Fake Street 123</LINE>" +
+ "<LINE>12345 Any Town</LINE>" +
+ "<LINE>USA</LINE>" +
+ "<HOME/>" +
+ "</LABEL>" +
+ "<NICKNAME>DreamGirl</NICKNAME>" +
+ "<BDAY>1865-05-04T00:00:00Z</BDAY>" +
+ "<JID>alice@teaparty.lit</JID>" +
+ "<JID>alice@wonderland.lit</JID>" +
+ "<DESC>I once fell down a rabbit hole.</DESC>" +
+ "<ORG>" +
+ "<ORGNAME>Alice In Wonderland Inc.</ORGNAME>" +
+ "</ORG>" +
+ "<TITLE>Some Title</TITLE>" +
+ "<ROLE>Main Character</ROLE>" +
+ "<URL>http://wonderland.lit/~alice</URL>" +
+ "<URL>http://teaparty.lit/~alice2</URL>" +
+ "<MAILER>mutt</MAILER>" +
+ "</vCard>"));
+
+ VCard payload = (VCard)(parser.getPayload());
+ assertEquals(("2.0"), payload.getVersion());
+ assertEquals(("Alice In Wonderland"), payload.getFullName());
+ assertEquals(("Alice"), payload.getGivenName());
+ assertEquals(("In"), payload.getMiddleName());
+ assertEquals(("Wonderland"), payload.getFamilyName());
+ assertEquals(("Mrs"), payload.getPrefix());
+ assertEquals(("PhD"), payload.getSuffix());
+ assertEquals(("DreamGirl"), payload.getNickname());
+ assertEquals(DateTime.stringToDate("1865-05-04T00:00:00Z"), payload.getBirthday());
+ assertEquals(2, (payload.getEMailAddresses().size()));
+ assertEquals(("alice@wonderland.lit"), payload.getEMailAddresses().get(0).address);
+ assertTrue(payload.getEMailAddresses().get(0).isHome);
+ assertTrue(payload.getEMailAddresses().get(0).isInternet);
+ assertTrue(payload.getEMailAddresses().get(0).isPreferred);
+ assertFalse(payload.getEMailAddresses().get(0).isWork);
+ assertFalse(payload.getEMailAddresses().get(0).isX400);
+ assertEquals(("alice@teaparty.lit"), payload.getEMailAddresses().get(1).address);
+ assertFalse(payload.getEMailAddresses().get(1).isHome);
+ assertFalse(payload.getEMailAddresses().get(1).isInternet);
+ assertFalse(payload.getEMailAddresses().get(1).isPreferred);
+ assertTrue(payload.getEMailAddresses().get(1).isWork);
+ assertTrue(payload.getEMailAddresses().get(1).isX400);
+
+ assertEquals(1, (payload.getTelephones().size()));
+ assertEquals(("555-6273"), payload.getTelephones().get(0).number);
+ assertTrue(payload.getTelephones().get(0).isHome);
+ assertTrue(payload.getTelephones().get(0).isVoice);
+ assertFalse(payload.getTelephones().get(0).isPreferred);
+
+ assertEquals(1, (payload.getAddresses().size()));
+ assertEquals(("Any Town"), payload.getAddresses().get(0).locality);
+ assertEquals(("Fake Street 123"), payload.getAddresses().get(0).street);
+ assertEquals(("12345"), payload.getAddresses().get(0).postalCode);
+ assertEquals(("USA"), payload.getAddresses().get(0).country);
+ assertTrue(payload.getAddresses().get(0).isHome);
+
+ assertEquals(1, (payload.getAddressLabels().size()));
+ assertEquals(("Fake Street 123"), payload.getAddressLabels().get(0).lines.get(0));
+ assertEquals(("12345 Any Town"), payload.getAddressLabels().get(0).lines.get(1));
+ assertEquals(("USA"), payload.getAddressLabels().get(0).lines.get(2));
+ assertTrue(payload.getAddressLabels().get(0).isHome);
+
+ assertEquals(2, (payload.getJIDs().size()));
+ assertEquals(new JID("alice@teaparty.lit"), payload.getJIDs().get(0));
+ assertEquals(new JID("alice@wonderland.lit"), payload.getJIDs().get(1));
+
+ assertEquals(("I once fell down a rabbit hole."), payload.getDescription());
+
+ assertEquals(1, (payload.getOrganizations().size()));
+ assertEquals(("Alice In Wonderland Inc."), payload.getOrganizations().get(0).name);
+ assertEquals(0, (payload.getOrganizations().get(0).units.size()));
+
+ assertEquals(1, (payload.getTitles().size()));
+ assertEquals(("Some Title"), payload.getTitles().get(0));
+ assertEquals(1, (payload.getRoles().size()));
+ assertEquals(("Main Character"), payload.getRoles().get(0));
+ assertEquals(2, (payload.getURLs().size()));
+ assertEquals(("http://wonderland.lit/~alice"), payload.getURLs().get(0));
+ assertEquals(("http://teaparty.lit/~alice2"), payload.getURLs().get(1));
+
+ assertEquals(("<MAILER xmlns=\"vcard-temp\">mutt</MAILER>"), payload.getUnknownContent());
+ }
+
+ @Test
+ public void testParse_Photo() {
+ DummyEventLoop eventloop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventloop);
+
+ assertNotNull(parser.parse(
+ "<vCard xmlns='vcard-temp'>" +
+ "<PHOTO>" +
+ "<TYPE>image/jpeg</TYPE>" +
+ "<BINVAL>" +
+ "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ej" +
+ "EyMzQ1Njc4OTA=" +
+ "</BINVAL>" +
+ "</PHOTO>" +
+ "</vCard>"));
+
+ VCard payload = (VCard)(parser.getPayload());
+ assertEquals(("image/jpeg"), payload.getPhotoType());
+ assertEquals(new ByteArray("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"), payload.getPhoto());
+ }
+
+ void testParse_NewlinedPhoto() {
+ DummyEventLoop eventloop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventloop);
+
+ assertNotNull(parser.parse(
+ "<vCard xmlns='vcard-temp'>" +
+ "<PHOTO>" +
+ "<TYPE>image/jpeg</TYPE>" +
+ "<BINVAL>" +
+ "dTsETKSAskgu2/BqVO+ogcu3DJy4QATGJqpsa6znWwNGiLnVElVVB6PtS+mTiHUXsrOlKvRjtvzV\n" +
+ "VDknNaRF58Elmu5EC6VoCllBEEB/lFf0emYn2gkp0X1khNi75dl+rOj95Ar6XuwLh+ZoSStqwOWj\n" +
+ "pIpxmZmVw7E69qr0FY0oI3zcaxXwzHw7Lx9Qf4sH7ufQvIN88ga+hwp8MiXevh3Ac8pN00kgINlq\n" +
+ "9AY/bYJL418Y/6wWsJbgmrJ/N78wSMpC7VVszLBZVv8uFnupubyi8Ophd/1wIWWzPPwAbBhepWVb\n" +
+ "1oPiFEBT5MNKCMTPEi0npXtedVz0HQbbPNIVwmo=" +
+ "</BINVAL>" +
+ "</PHOTO>" +
+ "</vCard>"));
+
+ VCard payload = (VCard)(parser.getPayload());
+ assertEquals(("image/jpeg"), payload.getPhotoType());
+ assertEquals("753B044CA480B2482EDBF06A54EFA881CBB70C9CB84004C626AA6C6BACE75B034688B9D512555507A3ED4BE993887517B2B3A52AF463B6FCD554392735A445E7C1259AEE440BA5680A594110407F9457F47A6627DA0929D17D6484D8BBE5D97EACE8FDE40AFA5EEC0B87E668492B6AC0E5A3A48A71999995C3B13AF6AAF4158D28237CDC6B15F0CC7C3B2F1F507F8B07EEE7D0BC837CF206BE870A7C3225DEBE1DC073CA4DD3492020D96AF4063F6D824BE35F18FFAC16B096E09AB27F37BF3048CA42ED556CCCB05956FF2E167BA9B9BCA2F0EA6177FD702165B33CFC006C185EA5655BD683E2144053E4C34A08C4CF122D27A57B5E755CF41D06DB3CD215C26A", Hexify.hexify(payload.getPhoto()));
+ }
+
+
+ @Test
+ public void testParse_Nickname() {
+ DummyEventLoop eventloop = new DummyEventLoop();
+ PayloadsParserTester parser = new PayloadsParserTester(eventloop);
+
+ assertNotNull(parser.parse(
+ "<vCard xmlns='vcard-temp'>" +
+ "<NICKNAME>mynick</NICKNAME>" +
+ "</vCard>"));
+
+ VCard payload = (VCard)(parser.getPayload());
+ assertEquals(("mynick"), payload.getNickname());
+ }
+} \ No newline at end of file