CVS Update: xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests

Aleksander Andrzej Slominski <[email protected]>
Newsgroups gmane.text.xml.xmlpull.devel
Message-ID <[email protected]>
aslom       02/10/12 17:17:59

  Modified:    doc      changes.html
               src/java/api/org/xmlpull/v1 XmlPullParser.java
                        XmlSerializer.java
               src/java/tests/org/xmlpull/v1/tests TestMisc.java
                        TestSerialize.java TestSerializeWithNs.java
  Log:
  added to XmlSerialzier three new utility methods:
  getDepth(), getName(), and getNamespace()
  to allows intelligent closing of serialized output for example
  when writing error/fault information into serialized XML stream
  from inside exception handler
  
  Revision  Changes    Path
  1.39      +6 -1      xmlpull-api-v1/doc/changes.html
  
  Index: changes.html
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/doc/changes.html,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -b -t -w -r1.38 -r1.39
  --- changes.html	2002/10/10 06:57:59	1.38
  +++ changes.html	2002/10/12 22:17:58	1.39
  @@ -17,7 +17,12 @@
   <h3>IN PROGRESS INTERIM RELEASE: </h3>
   
   <h3><a name="XMLPULL_1_1_2"></a>2002-09 (XMLPULL_1_1_2)</h3>
  -<ul>
  +<ul>added to XmlSerialzier three new utility methods:
  +getDepth(), getName(), and getNamespace()
  +to allows intelligent closing of serialized output for example
  +when writing error/fault information into serialized XML stream
  +from inside exception handler
  +
   <li><b>NOTE:</b> <b>potentially backward incompatible change to nextToken</b>():
   XMLDecl (&lt;?xml ... ?&gt;) will no longer be reported as PROCESSING_INSTRUCTION
   but instead content of XMLDecl is made available as set of properties
  
  
  
  1.71      +0 -1      xmlpull-api-v1/src/java/api/org/xmlpull/v1/XmlPullParser.java
  
  Index: XmlPullParser.java
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/api/org/xmlpull/v1/XmlPullParser.java,v
  retrieving revision 1.70
  retrieving revision 1.71
  diff -u -b -t -w -r1.70 -r1.71
  --- XmlPullParser.java	2002/09/11 16:55:42	1.70
  +++ XmlPullParser.java	2002/10/12 22:17:59	1.71
  @@ -621,7 +621,6 @@
        *     &lt;/foobar&gt;        2
        * &lt;/root&gt;              1
        * &lt;!-- outside --&gt;     0
  -     * &lt;/pre&gt;
        * </pre>
        */
       public int getDepth();
  
  
  
  1.11      +31 -0     xmlpull-api-v1/src/java/api/org/xmlpull/v1/XmlSerializer.java
  
  Index: XmlSerializer.java
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/api/org/xmlpull/v1/XmlSerializer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -b -t -w -r1.10 -r1.11
  --- XmlSerializer.java	2002/09/19 23:33:13	1.10
  +++ XmlSerializer.java	2002/10/12 22:17:59	1.11
  @@ -156,6 +156,37 @@
           throws IllegalArgumentException;
   
       /**
  +     * Returns the current depth of the element.
  +     * Outside the root element, the depth is 0. The
  +     * depth is incremented by 1 when startTag() is called.
  +     * The depth is decremented after the call to endTag()
  +     * event was observed.
  +     *
  +     * <pre>
  +     * &lt;!-- outside --&gt;     0
  +     * &lt;root>                  1
  +     *   sometext                 1
  +     *     &lt;foobar&gt;         2
  +     *     &lt;/foobar&gt;        2
  +     * &lt;/root&gt;              1
  +     * &lt;!-- outside --&gt;     0
  +     * </pre>
  +     */
  +    public int getDepth();
  +
  +    /**
  +     * Returns the namespace URI of the current element as set by startTag().
  +     */
  +    public String getNamespace ();
  +
  +    /**
  +     * Returns the name of the current element as set by startTag().
  +     * It can only be null before first call to startTag()
  +     * or when last endTag() is called to close first startTag().
  +     */
  +    public String getName();
  +
  +    /**
        * Writes a start tag with the given namespace and name.
        * If there is no prefix defined for the given namespace,
        * a prefix will be defined automatically.
  
  
  
  1.15      +3 -1      xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestMisc.java
  
  Index: TestMisc.java
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestMisc.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -b -t -w -r1.14 -r1.15
  --- TestMisc.java	2002/10/10 06:58:00	1.14
  +++ TestMisc.java	2002/10/12 22:17:59	1.15
  @@ -371,7 +371,7 @@
       public void testRoundtripNext() throws Exception {
           // check that entiy reference is reported in start tag as unexpanded when roundtrip is enabled
           final String SAMPLE_XML =
  -            "<foo attr=\"baz &amp; bar\"/>";
  +            "<foo attEol='a\r\nv\n\ra\n\r\r\nio\rn\nica' attr=\"baz &amp; bar\"/>";
   
           XmlPullParser pp = factory.newPullParser();
           assertEquals(true, pp.getFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES));
  @@ -388,6 +388,8 @@
           pp.next();
           String attrValue = pp.getAttributeValue(pp.NO_NAMESPACE, "attr");
           assertEquals("baz & bar", attrValue);
  +        String attEolValue = pp.getAttributeValue(pp.NO_NAMESPACE, "attEol");
  +        assertEquals("a v  a   io n ica", attEolValue);
           if(roundtripSupported) {
               String text = pp.getText();
               assertEquals(SAMPLE_XML, text);
  
  
  
  1.4       +36 -0     xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestSerialize.java
  
  Index: TestSerialize.java
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestSerialize.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -t -w -r1.3 -r1.4
  --- TestSerialize.java	2002/08/28 04:32:57	1.3
  +++ TestSerialize.java	2002/10/12 22:17:59	1.4
  @@ -138,16 +138,52 @@
           // one step further - it has an attribute and content ...
   
           StringWriter sw = new StringWriter();
  +
  +        assertEquals(0, ser.getDepth());
           ser.setOutput(sw);
  +        assertEquals(0, ser.getDepth());
  +
           ser.startDocument(null, null);
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
  +
           ser.startTag(null, "foo");
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.attribute(null, "attrName", "attrVal");
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.text("bar");
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.startTag("", "p:t");
  +        assertEquals(2, ser.getDepth());
  +        assertEquals("", ser.getNamespace());
  +        assertEquals("p:t", ser.getName());
  +
           ser.text("\n\t ");
  +
           ser.endTag("", "p:t");
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.endTag(null, "foo");
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
  +
           ser.endDocument();
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
   
           //xpp.setInput(new StringReader("<foo attrName='attrVal'>bar<p:t>\r\n\t </p:t></foo>"));
           String serialized = sw.toString();
  
  
  
  1.12      +51 -3     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.11
  retrieving revision 1.12
  diff -u -b -t -w -r1.11 -r1.12
  --- TestSerializeWithNs.java	2002/10/10 06:58:00	1.11
  +++ TestSerializeWithNs.java	2002/10/12 22:17:59	1.12
  @@ -169,8 +169,17 @@
           StringWriter sw = new StringWriter();
           ser.setOutput(sw);
   
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
  +
           // all comments etc
           ser.startDocument(null, Boolean.TRUE);
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
  +
  +
           final String docdecl = " foo [\n"+
               "<!ELEMENT foo (#PCDATA|bar)* >\n"+
               "<!ELEMENT pbar (#PCDATA) >\n"
  @@ -179,21 +188,60 @@
           ser.processingInstruction("pi test");
           final String iws = "\n\t";
           ser.ignorableWhitespace(iws);
  +
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
  +
           ser.startTag(null, "foo");
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
  +
           //check escaping & < > " '
           final String attrVal = "attrVal&<>\"''&amp;";
           //final String attrVal = "attrVal&;";
           ser.attribute(null, "attrName", attrVal);
  +
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.entityRef("amp");
           final String cdsect = "hello<test>\"test";
           ser.cdsect(cdsect);
  +
  +        ser.setPrefix("ns1", "usri2");
  +
  +        assertEquals(1, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals("foo", ser.getName());
  +
           ser.startTag("uri1", "bar");
  +        assertEquals(2, ser.getDepth());
  +        assertEquals("uri1", ser.getNamespace());
  +        assertEquals("bar", ser.getName());
  +
           final String text = "test\n\ntest";
           char[] buf = text.toCharArray();
           ser.text(buf, 0, buf.length);
  +
           final String comment = "comment B- ";
           ser.comment(comment);
  +        assertEquals(2, ser.getDepth());
  +        assertEquals("uri1", ser.getNamespace());
  +        assertEquals("bar", ser.getName());
  +
  +        assertEquals(2, ser.getDepth());
  +        assertEquals("uri1", ser.getNamespace());
  +        assertEquals("bar", ser.getName());
  +
  +
           ser.endDocument(); // should close unclosed foo and bar start tag
  +        assertEquals(0, ser.getDepth());
  +        assertEquals(null, ser.getNamespace());
  +        assertEquals(null, ser.getName());
   
           // -- now check that we get back what we serialized ...
   
  @@ -232,16 +280,16 @@
           assertEquals(false, xpp.isWhitespace());
   
           xpp.nextToken();
  -        checkParserStateNs(xpp, 2, xpp.START_TAG, 1, "uri1", "bar", false, 0);
  +        checkParserStateNs(xpp, 2, xpp.START_TAG, 2, "uri1", "bar", false, 0);
   
           String gotText = nextTokenGathered(xpp, xpp.TEXT, false);
           assertEquals(printable(text), printable(gotText));
   
           //xpp.nextToken();
  -        checkParserStateNs(xpp, 2, xpp.COMMENT, null, 1, null, null, comment, false, -1);
  +        checkParserStateNs(xpp, 2, xpp.COMMENT, null, 2, null, null, comment, false, -1);
   
           xpp.nextToken();
  -        checkParserStateNs(xpp, 2, xpp.END_TAG, 1, "uri1", "bar", false, -1);
  +        checkParserStateNs(xpp, 2, xpp.END_TAG, 2, "uri1", "bar", false, -1);
   
           xpp.nextToken();
           checkParserStateNs(xpp, 1, xpp.END_TAG, 0, "", "foo", false, -1);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.