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

Aleksander Andrzej Slominski <[email protected]> Mon, 23 Oct 2006 09:54:54 -0400 (EDT)
Newsgroups gmane.text.xml.xmlpull.devel
Message-ID <[email protected]>
aslom       06/10/23 09:54:54

  Modified:    src/java/tests/org/xmlpull/v1/tests TestCdsect.java
  Log:
  additional API test for large CDATA section
  
  Revision  Changes    Path
  1.5       +66 -19    xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestCdsect.java
  
  Index: TestCdsect.java
  ===================================================================
  RCS file: /l/extreme/cvspub/xmlpull-api-v1/src/java/tests/org/xmlpull/v1/tests/TestCdsect.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -t -w -r1.4 -r1.5
  --- TestCdsect.java	12 Jan 2004 16:20:59 -0000	1.4
  +++ TestCdsect.java	23 Oct 2006 13:54:53 -0000	1.5
  @@ -116,5 +116,52 @@
       }
   
   
  +    public void testBigCdsect() throws Exception {
  +        testBigCdsect(1);
  +        testBigCdsect(10);
  +        testBigCdsect(15);
  +        testBigCdsect(16);
  +        testBigCdsect(100);
  +        testBigCdsect(127);
  +        testBigCdsect(128);
  +        testBigCdsect(1023);
  +        testBigCdsect(1024);
  +        testBigCdsect(1025);
  +        testBigCdsect(16*1024-1);
  +        testBigCdsect(16*1024);
  +        testBigCdsect(16*1024+1);
  +    }
  +    
  +    public void testBigCdsect(int size) throws Exception {
  +        XmlPullParser xpp = factory.newPullParser();
  +        assertEquals(true, xpp.getFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES));
  +        
  +        // inspired by http://www.extreme.indiana.edu/bugzilla/show_bug.cgi?id=238
  +        char[] oneToTen = "0123456789".toCharArray();
  +        StringBuffer cdataContent = new StringBuffer(size+16);
  +        for (int i = 0; i < size; i++) {
  +            char c = oneToTen[i % 10];
  +            cdataContent.append(c);
  +        }
  +
  +        StringBuffer XML = new StringBuffer(size+16);
  +        XML.append("<foo><![CDATA[");
  +        XML.append(cdataContent);
  +        XML.append("]]></foo>");
  +        
  +        xpp.setInput(new StringReader(XML.toString()));
  +        
  +        checkParserStateNs(xpp, 0, XmlPullParser.START_DOCUMENT, null, 0, null, null, null, false, -1);
  +        xpp.next();
  +        checkParserStateNs(xpp, 1, XmlPullParser.START_TAG, null, 0, "", "foo", null, false/*empty*/, 0);
  +        xpp.next();
  +        //System.err.println(getClass()+" text="+printable(xpp.getText()+" expected="+cdataContent.toString()));
  +        checkParserStateNs(xpp, 1, XmlPullParser.TEXT, null, 0, null, null, cdataContent.toString(), false, -1);
  +        xpp.next();
  +        checkParserStateNs(xpp, 1, XmlPullParser.END_TAG, null, 0, "", "foo", null, false, -1);
  +        xpp.next();
  +        checkParserStateNs(xpp, 0, XmlPullParser.END_DOCUMENT, null, 0, null, null, null, false, -1);
  +        
  +    }
   }
   
  
  
  



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/xmlpull-dev/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/xmlpull-dev/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> 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/