private final static String XML = "<root><![CDATA[cdata\r\n&] ]] stuff]]>...<![CDATA[this\r\r and Unicode: "+UNICODE_SEGMENT+"!]]></root>";
private void _testCData(int chunkSize, String SPC) throws Exception
{
AsyncXMLInputFactory f = new InputFactoryImpl();
AsyncXMLStreamReader sr = f.createAsyncXMLStreamReader();
AsyncReaderWrapper reader = new AsyncReaderWrapper(sr, chunkSize, SPC + XML);
int t = verifyStart(reader);
assertTokenType(START_ELEMENT, t);
assertEquals("root", sr.getLocalName());
assertEquals("", sr.getNamespaceURI());
assertEquals(0, sr.getAttributeCount());
// note: moved to next element by now, so:
assertTokenType(CDATA, reader.nextToken());
String str = collectAsyncText(reader, CDATA); // moves to end-element
assertEquals("cdata\n&] ]] stuff", str);
assertTokenType(XMLStreamConstants.CHARACTERS, reader.currentToken());
str = collectAsyncText(reader, CHARACTERS);
assertEquals("...", str);
assertTokenType(XMLStreamConstants.CDATA, reader.currentToken());
str = collectAsyncText(reader, CDATA);
assertEquals("this\n\n and Unicode: "+UNICODE_SEGMENT+"!", str);
assertTokenType(XMLStreamConstants.END_ELEMENT, reader.currentToken());
assertEquals("root", sr.getLocalName());
assertEquals("", sr.getNamespaceURI());
assertTokenType(XMLStreamConstants.END_DOCUMENT, reader.nextToken());
assertFalse(sr.hasNext());
}