private String parseValue(final CharArrayBuffer buf, final ParserCursor cursor, final BitSet delimiters) { return tokenParser.parseValue(buf, cursor, delimiters); }
NameValuePair parseTokenOrParameter(final CharSequence buffer, final ParserCursor cursor) { tokenParser.skipWhiteSpace(buffer, cursor); final String token = tokenParser.parseToken(buffer, cursor, TERMINATORS); if (!cursor.atEnd()) { if (buffer.charAt(cursor.getPos()) == BLANK) { tokenParser.skipWhiteSpace(buffer, cursor); } if (!cursor.atEnd() && buffer.charAt(cursor.getPos()) == EQUAL_CHAR) { cursor.updatePos(cursor.getPos() + 1); final String value = tokenParser.parseValue(buffer, cursor, DELIMITER); return new BasicNameValuePair(token, value); } } return new BasicNameValuePair(token, null); }
@Test public void testTokenParsingMixedValuesAndQuotedValues2() throws Exception { final String s = "stuff\"more\"stuff;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuffmorestuff", result); }
@Test public void testTokenParsingEscapedQuotes() throws Exception { final String s = "stuff\"\\\"more\\\"\"stuff;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuff\"more\"stuff", result); }
@Test public void testTokenParsingSlashOutsideQuotes() throws Exception { final String s = "stuff\\; more stuff;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuff\\", result); } }
@Test public void testTokenParsingMixedValuesAndQuotedValues() throws Exception { final String s = " stuff and \" some more \" \"stuff ;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuff and some more stuff ;", result); }
@Test public void testTokenParsingEscapedDelimiter() throws Exception { final String s = "stuff\"\\\"more\\\";\"stuff;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuff\"more\";stuff", result); }
@Test public void testTokenParsingEscapedSlash() throws Exception { final String s = "stuff\"\\\"more\\\";\\\\\"stuff;"; final CharArrayBuffer raw = createBuffer(s); final ParserCursor cursor = new ParserCursor(0, s.length()); final String result = parser.parseValue(raw, cursor, TokenParser.INIT_BITSET(';')); Assert.assertEquals("stuff\"more\";\\stuff", result); }
throw new MalformedCookieException("Cookie value is invalid: '" + header.toString() + "'"); final String value = tokenParser.parseValue(buffer, cursor, VALUE_DELIMS); if (!cursor.atEnd()) { cursor.updatePos(cursor.getPos() + 1);
@Override public NameValuePair parseNameValuePair(final CharSequence buffer, final ParserCursor cursor) { Args.notNull(buffer, "Char sequence"); Args.notNull(cursor, "Parser cursor"); final String name = tokenParser.parseToken(buffer, cursor, TOKEN_DELIMS); if (cursor.atEnd()) { return new BasicNameValuePair(name, null); } final int delim = buffer.charAt(cursor.getPos()); cursor.updatePos(cursor.getPos() + 1); if (delim != '=') { return new BasicNameValuePair(name, null); } final String value = tokenParser.parseValue(buffer, cursor, VALUE_DELIMS); if (!cursor.atEnd()) { cursor.updatePos(cursor.getPos() + 1); } return new BasicNameValuePair(name, value); }
@Override public NameValuePair parseNameValuePair(final CharSequence buffer, final ParserCursor cursor) { Args.notNull(buffer, "Char sequence"); Args.notNull(cursor, "Parser cursor"); final String name = tokenParser.parseToken(buffer, cursor, TOKEN_DELIMS); if (cursor.atEnd()) { return new BasicNameValuePair(name, null); } final int delim = buffer.charAt(cursor.getPos()); cursor.updatePos(cursor.getPos() + 1); if (delim != '=') { return new BasicNameValuePair(name, null); } final String value = tokenParser.parseValue(buffer, cursor, VALUE_DELIMS); if (!cursor.atEnd()) { cursor.updatePos(cursor.getPos() + 1); } return new BasicNameValuePair(name, value); }