summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMili Verma <mili.verma@isode.com>2012-01-06 15:00:55 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-01-09 15:54:52 (GMT)
commitcc760bfd15caadb56bfef477cb54dc94c25f7fa7 (patch)
tree05f5918b97488b05ca1266c0644a3874adb98129 /test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java
parent12b1d667965556002ea0fd300a71bcdf57634e90 (diff)
downloadstroke-cc760bfd15caadb56bfef477cb54dc94c25f7fa7.zip
stroke-cc760bfd15caadb56bfef477cb54dc94c25f7fa7.tar.bz2
Port Adhoc commands to Stroke
This patch ports the Adhoc commands from Swiften to Stroke. It also ports their unit tests. Test-information: Unit tests pass. MLC able to use the ad-hoc command fine.
Diffstat (limited to 'test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java')
-rw-r--r--test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java b/test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java
new file mode 100644
index 0000000..d5614fb
--- /dev/null
+++ b/test/com/isode/stroke/parser/payloadparsers/PayloadsParserTester.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2012 Isode Limited, London, England.
+ * All rights reserved.
+ */
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * All rights reserved.
+ */
+
+package com.isode.stroke.parser.payloadparsers;
+
+import com.isode.stroke.elements.Payload;
+import com.isode.stroke.eventloop.EventLoop;
+import com.isode.stroke.parser.AttributeMap;
+import com.isode.stroke.parser.PayloadParser;
+import com.isode.stroke.parser.PayloadParserFactory;
+import com.isode.stroke.parser.PlatformXMLParserFactory;
+import com.isode.stroke.parser.XMLParser;
+import com.isode.stroke.parser.XMLParserClient;
+
+public class PayloadsParserTester implements XMLParserClient {
+ private XMLParser xmlParser;
+ private FullPayloadParserFactoryCollection factories = new FullPayloadParserFactoryCollection();
+ private PayloadParser payloadParser;
+ private int level;
+
+ public PayloadsParserTester(EventLoop eventLoop) {
+ level = 0;
+ xmlParser = PlatformXMLParserFactory.createXMLParser(this, eventLoop);
+ }
+
+ public boolean parse(String data) {
+ return xmlParser.parse(data);
+ }
+
+ public void handleStartElement(String element, String ns,
+ AttributeMap attributes) {
+ if (level == 0) {
+ assert (payloadParser == null);
+ PayloadParserFactory payloadParserFactory = factories
+ .getPayloadParserFactory(element, ns, attributes);
+ assert (payloadParserFactory != null);
+ payloadParser = payloadParserFactory.createPayloadParser();
+ }
+ payloadParser.handleStartElement(element, ns, attributes);
+ level++;
+ }
+
+ public void handleEndElement(String element, String ns) {
+ level--;
+ payloadParser.handleEndElement(element, ns);
+ }
+
+ public void handleCharacterData(String data) {
+ payloadParser.handleCharacterData(data);
+ }
+
+ public Payload getPayload() {
+ if (payloadParser == null) {
+ return null;
+ }
+ return payloadParser.getPayload();
+ }
+}