From d2fd0985e38c9a110a77edcdf6d3e3fc1af99b17 Mon Sep 17 00:00:00 2001 From: Matthew Vivian Date: Thu, 29 Jun 2023 09:13:59 +0100 Subject: [PATCH] WIP: OF-2559 Fixed tests after refactor XMLLightweightParserTest now works with the newly refactored XMLLightweightParser (which had MINA specifics extracted). --- .../nio/XMLLightweightParserTest.java | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/xmppserver/src/test/java/org/jivesoftware/openfire/nio/XMLLightweightParserTest.java b/xmppserver/src/test/java/org/jivesoftware/openfire/nio/XMLLightweightParserTest.java index 9af315a045..6a637dcbb4 100644 --- a/xmppserver/src/test/java/org/jivesoftware/openfire/nio/XMLLightweightParserTest.java +++ b/xmppserver/src/test/java/org/jivesoftware/openfire/nio/XMLLightweightParserTest.java @@ -16,8 +16,13 @@ package org.jivesoftware.openfire.nio; import org.apache.mina.core.buffer.IoBuffer; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; +import java.nio.CharBuffer; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CodingErrorAction; import java.nio.charset.StandardCharsets; import static org.junit.Assert.assertEquals; @@ -30,6 +35,27 @@ */ public class XMLLightweightParserTest { + private CharsetDecoder encoder; + private XMLLightweightParser parser; + + @Before + public void setUp() throws Exception { + parser = new XMLLightweightParser(); + + encoder = StandardCharsets.UTF_8.newDecoder() + .onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE); + } + + private char[] ioBufferToChars(IoBuffer buffer) { + CharBuffer charBuffer = CharBuffer.allocate(buffer.capacity()); + encoder.decode(buffer.buf(), charBuffer, false); + char[] buf = new char[charBuffer.position()]; + charBuffer.flip(); + charBuffer.get(buf); + return buf; + } + /** * Asserts that a start-tag name can be parsed when it is followed by a space character. * @@ -45,10 +71,9 @@ public void testOF2329OpenAndCloseWithSpace() throws Exception final IoBuffer buffer = IoBuffer.allocate(input.length(), false); buffer.putString(input, StandardCharsets.UTF_8.newEncoder()); buffer.flip(); - final XMLLightweightParser parser = new XMLLightweightParser(StandardCharsets.UTF_8); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results. @@ -74,7 +99,7 @@ public void testOF2329OpenAndCloseWithSpaceAndNewline() throws Exception final XMLLightweightParser parser = new XMLLightweightParser(); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results. @@ -100,7 +125,7 @@ public void testOF2329OpenAndCloseWithNewline() throws Exception final XMLLightweightParser parser = new XMLLightweightParser(); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results. @@ -126,7 +151,7 @@ public void testOF2329SelfTerminatingWithSpace() throws Exception final XMLLightweightParser parser = new XMLLightweightParser(); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results. @@ -152,7 +177,7 @@ public void testOF2329SelfTerminatingWithSpaceAndNewline() throws Exception final XMLLightweightParser parser = new XMLLightweightParser(); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results. @@ -178,7 +203,7 @@ public void testOF2329SelfTerminatingWithNewline() throws Exception final XMLLightweightParser parser = new XMLLightweightParser(); // Execute system under test. - parser.read(buffer); + parser.read(ioBufferToChars(buffer)); final String[] result = parser.getMsgs(); // Verify results.