From 4402b8c7db41595ef57b641ac0f4d56f1cb43907 Mon Sep 17 00:00:00 2001 From: rcollier Date: Mon, 4 Feb 2013 15:57:01 +0000 Subject: [PATCH] SMACK-391 Forgot to check in new file. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13438 b35dd754-fafc-0310-a699-88a17e54d16e --- .../org/jivesoftware/smack/TestUtils.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 test-unit/org/jivesoftware/smack/TestUtils.java diff --git a/test-unit/org/jivesoftware/smack/TestUtils.java b/test-unit/org/jivesoftware/smack/TestUtils.java new file mode 100644 index 000000000..151320335 --- /dev/null +++ b/test-unit/org/jivesoftware/smack/TestUtils.java @@ -0,0 +1,58 @@ +package org.jivesoftware.smack; + +import java.io.IOException; +import java.io.StringReader; + +import org.xmlpull.mxp1.MXParser; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +final public class TestUtils +{ + private TestUtils() {} + + public static XmlPullParser getIQParser(String stanza) + { + return getParser(stanza, "iq"); + } + + public static XmlPullParser getMessageParser(String stanza) + { + return getParser(stanza, "message"); + } + + public static XmlPullParser getPresenceParser(String stanza) + { + return getParser(stanza, "presence"); + } + + public static XmlPullParser getParser(String stanza, String startTag) + { + XmlPullParser parser = new MXParser(); + try + { + parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); + parser.setInput(new StringReader(stanza)); + boolean found = false; + + while (!found) + { + if ((parser.next() == XmlPullParser.START_TAG) && parser.getName().equals(startTag)) + found = true; + } + + if (!found) + throw new IllegalArgumentException("Cannot parse start tag [" + startTag + "] from stanze [" + stanza + "]"); + } + catch (XmlPullParserException e) + { + throw new RuntimeException(e); + } + catch (IOException e) + { + throw new RuntimeException(e); + } + return parser; + } + +}