CVS Update: xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests
Aleksander Andrzej Slominski <[email protected]> Mon, 19 May 2003 09:43:04 -0500 (EST)
| Newsgroups | gmane.text.xml.xmlpull.devel |
|---|---|
| Message-ID | <[email protected]> |
aslom 03/05/19 09:43:04
Modified: addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic
StaticXmlSerializerWrapper.java
addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit
TestXmlPullWrapper.java
doc addons.html
src/java/samples Roundtrip.java
src/java/tests/org/xmlpull/v1/tests TestSerializeWithNs.java
Log:
fixed XmlSerializerWrapper.event() to correctly print all namespace declarations
updated tests to check for it and to check that setPrefix(null, ...) is supported and equivalent to setPrefix("", ...)
Revision Changes Path
1.6 +4 -2 xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlSerializerWrapper.java
Index: StaticXmlSerializerWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlSerializerWrapper.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -t -w -r1.5 -r1.6
--- StaticXmlSerializerWrapper.java 18 May 2003 13:21:15 -0000 1.5
+++ StaticXmlSerializerWrapper.java 19 May 2003 14:43:03 -0000 1.6
@@ -254,9 +254,11 @@
private void writeStartTag(XmlPullParser pp) throws XmlPullParserException, IOException {
if (!pp.getFeature (XmlPullParser.FEATURE_REPORT_NAMESPACE_ATTRIBUTES)) {
for (int i = pp.getNamespaceCount (pp.getDepth ()-1);
- i < pp.getNamespaceCount (pp.getDepth ())-1; i++)
+ i < pp.getNamespaceCount (pp.getDepth ()); i++)
{
- setPrefix(pp.getNamespacePrefix (i), pp.getNamespaceUri (i));
+ String prefix = pp.getNamespacePrefix(i);
+ String ns = pp.getNamespaceUri(i);
+ setPrefix(prefix, ns);
}
}
startTag(pp.getNamespace(), pp.getName());
1.4 +45 -1 xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit/TestXmlPullWrapper.java
Index: TestXmlPullWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit/TestXmlPullWrapper.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -t -w -r1.3 -r1.4
--- TestXmlPullWrapper.java 19 May 2003 03:28:27 -0000 1.3
+++ TestXmlPullWrapper.java 19 May 2003 14:43:03 -0000 1.4
@@ -60,7 +60,7 @@
xs.endDocument();
String s = sw.toString();
- System.out.println(getClass()+" s="+s);
+ //System.out.println(getClass()+" s="+s);
XmlPullParserWrapper pw = wrapperFactory.newPullParserWrapper();
pw.setInput(new StringReader(s));
pw.nextStartTag("test");
@@ -71,6 +71,50 @@
assertTrue(pw.matches(XmlPullParser.END_TAG, null, "hello"));
pw.nextEndTag("test");
}
+
+
+
+ public void testSerializeEvent() throws IOException, XmlPullParserException
+ {
+
+ //final String XML ="<html xmlns=\"http://www.w3.org/1999/xhtml\"><body /></html>";
+ final String NS = "http://exmaple.com/foofoo";
+ final String XHTML_NS = "http://www.w3.org/1999/xhtml";
+ final String XML = "<m:blog xmlns:m='"+NS+"' xmlns='"+XHTML_NS+"'><html /></m:blog>";
+
+ XmlPullWrapperFactory wf = XmlPullWrapperFactory.newInstance();
+ wf.setNamespaceAware(true);
+
+ XmlPullParserWrapper pp = wf.newPullParserWrapper();
+ pp.setInput( new StringReader(XML) );
+
+ XmlSerializerWrapper ser = wf.newSerializerWrapper();
+ StringWriter sw = new StringWriter();
+ ser.setOutput(sw);
+ //ser.setCurrentNamespaceForElements("http://www.w3.org/1999/xhtml");
+ //ser.startTag("p").attribute("class", "abstract").text("Hello");
+ //ser.endTag("p");
+
+ while (pp.nextToken() != XmlPullParser.END_DOCUMENT) {
+ ser.event(pp);
+ }
+ //System.out.println(getClass()+" sw="+sw);
+ String s = sw.toString();
+ pp.setInput(new StringReader( s ));
+ //assertEquals(
+
+ pp.nextStartTag(NS, "blog");
+ int start = pp.getNamespaceCount(pp.getDepth() - 1);
+ int end = pp.getNamespaceCount(pp.getDepth());
+ assertEquals(2, end - start);
+ assertEquals("m", pp.getNamespacePrefix(start));
+ assertEquals(NS, pp.getNamespaceUri(start));
+ assertEquals(null, pp.getNamespacePrefix(start+1));
+ assertEquals(XHTML_NS, pp.getNamespaceUri(start+1));
+ pp.nextStartTag(XHTML_NS, "html");
+
+ }
+
public void testPI() throws IOException, XmlPullParserException {
final String PI_TARGET = "xml-stylesheet";
1.7 +3 -3 xmlpull-api-v1/doc/addons.html
Index: addons.html
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/doc/addons.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -t -w -r1.6 -r1.7
--- addons.html 18 May 2003 13:49:30 -0000 1.6
+++ addons.html 19 May 2003 14:43:03 -0000 1.7
@@ -33,9 +33,9 @@
<p>Here is example usage:</p>
<pre>import org.xmlpull.v1.wrapper.*;
-XmlPullWrapperFactory wrapper = XmlPullWrapperFactory.newInstance();
+XmlPullWrapperFactory wf = XmlPullWrapperFactory.newInstance();
-XmlPullParserWrapper pw = wrapper.newPullWrapper();
+XmlPullParserWrapper pw = wf.newPullParserWrapper();
pw.setInput( ... );
pw.require(XmlPullParser.START_TAG, ..., ...);
pw.skipSubTree();
@@ -265,7 +265,7 @@
</p><hr>
<font size="-1">
-Last modified $Id: addons.html,v 1.6 2003/05/18 13:49:30 aslom Exp $
+Last modified $Id: addons.html,v 1.7 2003/05/19 14:43:03 aslom Exp $
</font>
<!--extra space at bottom for hyperlinks #anchors to work -->
1.11 +14 -15 xmlpull-api-v1/src/java/samples/Roundtrip.java
Index: Roundtrip.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/samples/Roundtrip.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -t -w -r1.10 -r1.11
--- Roundtrip.java 18 Feb 2003 19:48:11 -0000 1.10
+++ Roundtrip.java 19 May 2003 14:43:03 -0000 1.11
@@ -20,26 +20,23 @@
public class Roundtrip {
//private static final String FEATURE_XML_ROUNDTRIP=
// "http://xmlpull.org/v1/doc/features.html#xml-roundtrip";
- protected final static String PROPERTY_XMLDECL_STANDALONE =
+ private final static String PROPERTY_XMLDECL_STANDALONE =
"http://xmlpull.org/v1/doc/features.html#xmldecl-standalone";
- XmlPullParser parser;
- XmlSerializer serializer;
+ private XmlPullParser parser;
+ private XmlSerializer serializer;
- public Roundtrip (XmlPullParser parser, XmlSerializer serializer) {
+ private Roundtrip (XmlPullParser parser, XmlSerializer serializer) {
this.parser = parser;
this.serializer = serializer;
}
- public void writeStartTag () throws XmlPullParserException, IOException {
+ private void writeStartTag () throws XmlPullParserException, IOException {
//check forcase when feature xml roundtrip is supported
//if (parser.getFeature (FEATURE_XML_ROUNDTRIP)) {
- //TODO: how to do pass through string with actual start tag in getText()
- //return;
- //}
if (!parser.getFeature (XmlPullParser.FEATURE_REPORT_NAMESPACE_ATTRIBUTES)) {
for (int i = parser.getNamespaceCount (parser.getDepth ()-1);
- i < parser.getNamespaceCount (parser.getDepth ())-1; i++) {
+ i <= parser.getNamespaceCount (parser.getDepth ())-1; i++) {
serializer.setPrefix
(parser.getNamespacePrefix (i),
parser.getNamespaceUri (i));
@@ -57,7 +54,7 @@
}
- public void writeToken (int eventType) throws XmlPullParserException, IOException {
+ private void writeToken (int eventType) throws XmlPullParserException, IOException {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
//use Boolean.TRUE to make it standalone
@@ -109,7 +106,7 @@
}
}
- public void roundTrip () throws XmlPullParserException, IOException {
+ private void roundTrip() throws XmlPullParserException, IOException {
parser.nextToken(); // read first token
writeToken (XmlPullParser.START_DOCUMENT); // write optional XMLDecl if present
while (parser.getEventType () != XmlPullParser.END_DOCUMENT) {
@@ -119,15 +116,17 @@
writeToken (XmlPullParser.END_DOCUMENT);
}
+
public static void main(String[] args) throws Exception {
//for (int i = 0; i < args.length; i++)
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+ factory.setNamespaceAware(true);
for (int i = 0; i < 1; i++)
{
- XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser pp = factory.newPullParser();
- XmlSerializer serializer = factory.newSerializer();
-
pp.setInput(new java.net.URL(args[ i ]).openStream(), null);
+
+ XmlSerializer serializer = factory.newSerializer();
serializer.setOutput( System.out, null);
(new Roundtrip(pp, serializer)).roundTrip();
1.17 +25 -1 xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestSerializeWithNs.java
Index: TestSerializeWithNs.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestSerializeWithNs.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -t -w -r1.16 -r1.17
--- TestSerializeWithNs.java 3 May 2003 06:37:45 -0000 1.16
+++ TestSerializeWithNs.java 19 May 2003 14:43:04 -0000 1.17
@@ -644,9 +644,33 @@
return s;
}
- //setPrefix check that prefix is not duplicated ...
+ public void testSetPrefix(String prefix) throws Exception {
+ XmlSerializer ser = factory.newSerializer();
+ StringWriter sw = new StringWriter();
+ ser.setOutput(sw);
+ final String NS = "http://example.com/test";
+ ser.setPrefix(prefix, NS);
+ ser.startTag(NS, "foo");
+ ser.endDocument();
+
+ String serialized = sw.toString();
+ //System.out.println(getClass()+" sw="+sw);
+ xpp.setInput(new StringReader(serialized));
+
+ checkParserStateNs(xpp, 0, xpp.START_DOCUMENT, null, 0, null, null, null, false, -1);
+ xpp.next();
+ String expectedPrefix = (prefix != null && prefix.length() == 0) ? null : prefix;
+ checkParserStateNs(xpp, 1, xpp.START_TAG, expectedPrefix, 1, NS, "foo", null, xpp.isEmptyElementTag() /*empty*/, 0);
+ }
public void testSetPrefix() throws Exception {
+ testSetPrefix("ns");
+ testSetPrefix("");
+ testSetPrefix(null);
+ }
+
+ //setPrefix check that prefix is not duplicated ...
+ public void testSetPrefixAdv() throws Exception {
//TODO check redeclaring defult namespace
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get A Free Psychic Reading! Your Online Answer To Life's Important Questions.
http://us.click.yahoo.com/Lj3uPC/Me7FAA/uetFAA/2U_rlB/TM
---------------------------------------------------------------------~->
To unsubscribe from this group, send an email to:
[email protected]
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/