Skip to content

Commit 0361cc5

Browse files
committed
one more test - and a bug?
1 parent b39c3df commit 0361cc5

1 file changed

Lines changed: 24 additions & 7 deletions

File tree

XMLTest.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,8 @@ public void contentOperations() {
364364
assertTrue("2. content array found", jsonObject.get("content") instanceof JSONArray);
365365
JSONArray jsonArray = jsonObject.getJSONArray("content");
366366
assertTrue("2. array size", jsonArray.length() == 2);
367-
assertTrue("2. content array entry 1", "if (a < b && a > 0) then return".equals(jsonArray.get(0)));
368-
assertTrue("2. content array entry 2", "here is another cdata".equals(jsonArray.get(1)));
367+
assertTrue("2. content array entry 0", "if (a < b && a > 0) then return".equals(jsonArray.get(0)));
368+
assertTrue("2. content array entry 1", "here is another cdata".equals(jsonArray.get(1)));
369369

370370
/**
371371
* text content is accumulated in a "content" inside a local JSONObject.
@@ -388,8 +388,8 @@ public void contentOperations() {
388388
assertTrue("4. content array found", jsonObject.get("tag1") instanceof JSONArray);
389389
jsonArray = jsonObject.getJSONArray("tag1");
390390
assertTrue("4. array size", jsonArray.length() == 3);
391-
assertTrue("4. content array entry 1", "value 1".equals(jsonArray.get(0)));
392-
assertTrue("4. content array entry 2", jsonArray.getInt(1) == 2);
391+
assertTrue("4. content array entry 0", "value 1".equals(jsonArray.get(0)));
392+
assertTrue("4. content array entry 1", jsonArray.getInt(1) == 2);
393393
assertTrue("4. content array entry 2", jsonArray.getBoolean(2) == true);
394394

395395
/**
@@ -407,8 +407,8 @@ public void contentOperations() {
407407
assertTrue("5. contained content jsonArray found", jsonObject.get("content") instanceof JSONArray);
408408
jsonArray = jsonObject.getJSONArray("content");
409409
assertTrue("5. array size", jsonArray.length() == 2);
410-
assertTrue("5. content array entry 1", "val1".equals(jsonArray.get(0)));
411-
assertTrue("5. content array entry 2", "val2".equals(jsonArray.get(1)));
410+
assertTrue("5. content array entry 0", "val1".equals(jsonArray.get(0)));
411+
assertTrue("5. content array entry 1", "val2".equals(jsonArray.get(1)));
412412

413413
/**
414414
* If there is only 1 complex text content, then it is accumulated in a
@@ -421,5 +421,22 @@ public void contentOperations() {
421421
jsonObject = jsonObject.getJSONObject("tag1");
422422
assertTrue("6. contained content found", "val1".equals(jsonObject.get("content")));
423423
assertTrue("6. contained tag2", "".equals(jsonObject.get("tag2")));
424-
}
424+
425+
/**
426+
* In this corner case, the content sibling happens to have key=content
427+
* We end up with an array within an array, and no content element.
428+
* This is probably a bug.
429+
*/
430+
xmlStr = "<tag1>val1<content/></tag1>";
431+
jsonObject = XML.toJSONObject(xmlStr);
432+
assertTrue("7. 1 item", 1 == jsonObject.length());
433+
assertTrue("7. jsonArray found", jsonObject.get("tag1") instanceof JSONArray);
434+
jsonArray = jsonObject.getJSONArray("tag1");
435+
assertTrue("array size 1", jsonArray.length() == 1);
436+
assertTrue("7. contained array found", jsonArray.get(0) instanceof JSONArray);
437+
jsonArray = jsonArray.getJSONArray(0);
438+
assertTrue("7. inner array size 2", jsonArray.length() == 2);
439+
assertTrue("7. inner array item 0", "val1".equals(jsonArray.get(0)));
440+
assertTrue("7. inner array item 1", "".equals(jsonArray.get(1)));
441+
}
425442
}

0 commit comments

Comments
 (0)