@@ -21,7 +21,6 @@ public class TestNextXxx
21
21
22
22
private final JsonFactory JSON_F = new JsonFactory ();
23
23
24
- // [JACKSON-653]
25
24
public void testIsNextTokenName () throws Exception
26
25
{
27
26
_testIsNextTokenName1 (false );
@@ -32,14 +31,14 @@ public void testIsNextTokenName() throws Exception
32
31
_testIsNextTokenName3 (true );
33
32
}
34
33
35
- // [Issue #34]
34
+ // [jackson-core #34]
36
35
public void testIssue34 () throws Exception
37
36
{
38
37
_testIssue34 (false );
39
38
_testIssue34 (true );
40
39
}
41
40
42
- // [Issue #38] with nextFieldName
41
+ // [jackson-core #38] with nextFieldName
43
42
public void testIssue38 () throws Exception
44
43
{
45
44
_testIssue38 (false );
@@ -52,6 +51,13 @@ public void testNextNameWithLongContent() throws Exception
52
51
_testNextNameWithLong (true );
53
52
}
54
53
54
+ // for [core#220]: problem with `nextFieldName(str)`, indented content
55
+ public void testNextNameWithIndentation () throws Exception
56
+ {
57
+ _testNextFieldNameIndent (false );
58
+ _testNextFieldNameIndent (true );
59
+ }
60
+
55
61
public void testNextTextValue () throws Exception
56
62
{
57
63
_textNextText (false );
@@ -194,40 +200,58 @@ private void _testIsNextTokenName2(boolean useStream) throws Exception
194
200
private void _testIsNextTokenName3 (boolean useStream ) throws Exception
195
201
{
196
202
final String DOC = "{\" name\" :123,\" name2\" :14,\" x\" :\" name\" }" ;
197
- JsonParser jp = useStream ?
203
+ JsonParser p = useStream ?
198
204
JSON_F .createParser (new ByteArrayInputStream (DOC .getBytes ("UTF-8" )))
199
205
: JSON_F .createParser (new StringReader (DOC ));
200
- assertNull (jp .nextFieldName ());
201
- assertToken (JsonToken .START_OBJECT , jp .getCurrentToken ());
202
- assertEquals ("name" , jp .nextFieldName ());
203
- assertToken (JsonToken .FIELD_NAME , jp .getCurrentToken ());
204
- assertEquals ("name" , jp .getCurrentName ());
205
- assertEquals ("name" , jp .getText ());
206
- assertNull (jp .nextFieldName ());
207
- assertToken (JsonToken .VALUE_NUMBER_INT , jp .getCurrentToken ());
208
- assertEquals (123 , jp .getIntValue ());
206
+ assertNull (p .nextFieldName ());
207
+ assertToken (JsonToken .START_OBJECT , p .getCurrentToken ());
208
+ assertEquals ("name" , p .nextFieldName ());
209
+ assertToken (JsonToken .FIELD_NAME , p .getCurrentToken ());
210
+ assertEquals ("name" , p .getCurrentName ());
211
+ assertEquals ("name" , p .getText ());
212
+ assertNull (p .nextFieldName ());
213
+ assertToken (JsonToken .VALUE_NUMBER_INT , p .getCurrentToken ());
214
+ assertEquals (123 , p .getIntValue ());
209
215
210
- assertEquals ("name2" , jp .nextFieldName ());
211
- assertToken (JsonToken .FIELD_NAME , jp .getCurrentToken ());
212
- assertEquals ("name2" , jp .getCurrentName ());
213
- assertToken (JsonToken .VALUE_NUMBER_INT , jp .nextToken ());
216
+ assertEquals ("name2" , p .nextFieldName ());
217
+ assertToken (JsonToken .FIELD_NAME , p .getCurrentToken ());
218
+ assertEquals ("name2" , p .getCurrentName ());
219
+ assertToken (JsonToken .VALUE_NUMBER_INT , p .nextToken ());
214
220
215
- assertEquals ("x" , jp .nextFieldName ());
216
- assertToken (JsonToken .FIELD_NAME , jp .getCurrentToken ());
217
- assertEquals ("x" , jp .getCurrentName ());
221
+ assertEquals ("x" , p .nextFieldName ());
222
+ assertToken (JsonToken .FIELD_NAME , p .getCurrentToken ());
223
+ assertEquals ("x" , p .getCurrentName ());
218
224
219
- assertNull (jp .nextFieldName ());
220
- assertToken (JsonToken .VALUE_STRING , jp .getCurrentToken ());
225
+ assertNull (p .nextFieldName ());
226
+ assertToken (JsonToken .VALUE_STRING , p .getCurrentToken ());
221
227
222
- assertNull (jp .nextFieldName ());
223
- assertToken (JsonToken .END_OBJECT , jp .getCurrentToken ());
228
+ assertNull (p .nextFieldName ());
229
+ assertToken (JsonToken .END_OBJECT , p .getCurrentToken ());
224
230
225
- assertNull (jp .nextFieldName ());
226
- assertNull (jp .getCurrentToken ());
231
+ assertNull (p .nextFieldName ());
232
+ assertNull (p .getCurrentToken ());
227
233
228
- jp .close ();
234
+ p .close ();
229
235
}
230
236
237
+ private void _testNextFieldNameIndent (boolean useStream ) throws Exception
238
+ {
239
+ final String DOC = "{\n \" name\" : \n [\n ]\n }" ;
240
+ JsonParser p = useStream ?
241
+ JSON_F .createParser (new ByteArrayInputStream (DOC .getBytes ("UTF-8" )))
242
+ : JSON_F .createParser (new StringReader (DOC ));
243
+ assertToken (JsonToken .START_OBJECT , p .nextToken ());
244
+ assertTrue (p .nextFieldName (new SerializedString ("name" )));
245
+
246
+ assertToken (JsonToken .START_ARRAY , p .nextToken ());
247
+ assertToken (JsonToken .END_ARRAY , p .nextToken ());
248
+ assertToken (JsonToken .END_OBJECT , p .nextToken ());
249
+
250
+ assertNull (p .nextToken ());
251
+
252
+ p .close ();
253
+ }
254
+
231
255
private void _textNextText (boolean useStream ) throws Exception
232
256
{
233
257
final String DOC = aposToQuotes ("{'a':'123','b':5,'c':[false,'foo']}" );
0 commit comments