}
private void _testElements(int chunkSize, String SPC) throws Exception
{
AsyncXMLInputFactory f = new InputFactoryImpl();
AsyncXMLStreamReader sr = f.createAsyncXMLStreamReader();
// final String XML = SPC+"<root attr='1&2'><leaf xmlns='abc' a ='3'\rb='' /></root>";
final String XML = SPC+"<root attr='1&2'><leaf xmlns='abc' a ='3'\rxmlns:foo='bar' b='' /></root>";
AsyncReaderWrapper reader = new AsyncReaderWrapper(sr, chunkSize, XML);
// should start with START_DOCUMENT, but for now skip
int t = verifyStart(reader);
assertTokenType(START_ELEMENT, t);
assertEquals("root", sr.getLocalName());
assertEquals("", sr.getNamespaceURI());
assertEquals(1, sr.getAttributeCount());
assertEquals("1&2", sr.getAttributeValue(0));
assertEquals("attr", sr.getAttributeLocalName(0));
assertEquals("", sr.getAttributeNamespace(0));
assertTokenType(START_ELEMENT, reader.nextToken());
assertEquals("leaf", sr.getLocalName());
assertEquals("abc", sr.getNamespaceURI());
assertEquals(2, sr.getAttributeCount());
assertEquals(2, sr.getNamespaceCount());
assertEquals("a", sr.getAttributeLocalName(0));
assertEquals("", sr.getAttributeNamespace(0));
assertEquals("3", sr.getAttributeValue(0));
assertEquals("b", sr.getAttributeLocalName(1));
assertEquals("", sr.getAttributeNamespace(1));
assertEquals("", sr.getAttributeValue(1));
assertEquals("", sr.getNamespacePrefix(0));
assertEquals("abc", sr.getNamespaceURI(0));
assertEquals("foo", sr.getNamespacePrefix(1));
assertEquals("bar", sr.getNamespaceURI(1));
assertTokenType(END_ELEMENT, reader.nextToken());
assertEquals("leaf", sr.getLocalName());
assertEquals("abc", sr.getNamespaceURI());
assertTokenType(END_ELEMENT, reader.nextToken());
assertEquals("root", sr.getLocalName());
assertEquals("", sr.getNamespaceURI());
assertTokenType(XMLStreamConstants.END_DOCUMENT, reader.nextToken());
assertFalse(sr.hasNext());
}