|
30 | 30 | import org.codehaus.plexus.util.IOUtil;
|
31 | 31 | import org.codehaus.plexus.util.xml.XmlStreamReader;
|
32 | 32 | import org.junit.jupiter.api.Test;
|
| 33 | +import org.junit.jupiter.params.ParameterizedTest; |
| 34 | +import org.junit.jupiter.params.provider.ValueSource; |
33 | 35 |
|
| 36 | +import static org.hamcrest.MatcherAssert.*; |
| 37 | +import static org.hamcrest.Matchers.*; |
34 | 38 | import static org.junit.jupiter.api.Assertions.*;
|
35 | 39 |
|
36 | 40 | /**
|
@@ -1473,4 +1477,22 @@ public void testProcessingInstructionTokenizeAfterXMLDeclAndBeforeFirstTag() thr
|
1473 | 1477 | assertEquals(XmlPullParser.END_TAG, parser.nextToken());
|
1474 | 1478 | assertEquals(XmlPullParser.END_DOCUMENT, parser.nextToken());
|
1475 | 1479 | }
|
| 1480 | + |
| 1481 | + @ParameterizedTest |
| 1482 | + @ValueSource(strings = {" ", "\n", "\r", "\r\n", " ", "\n "}) |
| 1483 | + void testBlankAtBeginning(String ws) throws XmlPullParserException, IOException { |
| 1484 | + String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><test>nnn</test>"; |
| 1485 | + |
| 1486 | + MXParser parser = new MXParser(); |
| 1487 | + parser.setInput(new StringReader(ws + xml)); |
| 1488 | + assertThat( |
| 1489 | + assertThrows(XmlPullParserException.class, parser::next).getMessage(), |
| 1490 | + containsString("XMLDecl is only allowed as first characters in input")); |
| 1491 | + |
| 1492 | + parser.setInput(new StringReader(ws + xml)); |
| 1493 | + assertEquals(XmlPullParser.IGNORABLE_WHITESPACE, parser.nextToken()); |
| 1494 | + assertThat( |
| 1495 | + assertThrows(XmlPullParserException.class, parser::nextToken).getMessage(), |
| 1496 | + containsString("processing instruction can not have PITarget with reserved xml name")); |
| 1497 | + } |
1476 | 1498 | }
|
0 commit comments