String s = "name = value; test; test1 = stuff,with,commas ;" +
" test2 = \"stuff, stuff\"; test3=\"stuff";
CharArrayBuffer buffer = new CharArrayBuffer(16);
buffer.append(s);
ParserCursor cursor = new ParserCursor(0, s.length());
HeaderElement he = parser.parseHeader(buffer, cursor);
Assert.assertEquals("name", he.getName());
Assert.assertEquals("value", he.getValue());
final NameValuePair[] params = he.getParameters();
Assert.assertEquals("test", params[0].getName());
Assert.assertEquals(null, params[0].getValue());
Assert.assertEquals("test1", params[1].getName());
Assert.assertEquals("stuff,with,commas", params[1].getValue());
Assert.assertEquals("test2", params[2].getName());
Assert.assertEquals("\"stuff, stuff\"", params[2].getValue());
Assert.assertEquals("test3", params[3].getName());
Assert.assertEquals("\"stuff", params[3].getValue());
Assert.assertEquals(s.length(), cursor.getPos());
Assert.assertTrue(cursor.atEnd());
s = " ";
buffer = new CharArrayBuffer(16);
buffer.append(s);
cursor = new ParserCursor(0, s.length());
he = parser.parseHeader(buffer, cursor);
Assert.assertEquals("", he.getName());
Assert.assertEquals(null, he.getValue());
}