Skip to content

Commit b1fee97

Browse files
ashawleyRogach
authored andcommitted
Add test for ISO-8859-1 defect found with XML.save in #121
Try to closely mimic bug in XML.save and XML.loadFile, but write tests that don't use the file system. Will fail in 1.0.6 and earlier: expected:<...klmnopqrstuvwxyz{|}~[ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ]</x>> but was:<...klmnopqrstuvwxyz{|}~[????????????????????????????????????????????????????????????????????????????????????????????????]</x>> Will be fixed in #122.
1 parent 1f8a649 commit b1fee97

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Diff for: jvm/src/test/scala/scala/xml/XMLTest.scala

+23
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,29 @@ expected closing tag of foo
631631
</wsdl:definitions>""", wsdlTemplate4("service4", () => "target4") toString)
632632
}
633633

634+
// Issue found with ISO-8859-1 in #121 that was fixed with UTF-8 default
635+
@UnitTest
636+
def writeReadNoDeclarationDefaultEncoding: Unit = {
637+
val chars = ((32 to 126) ++ (160 to 255)).map(_.toChar)
638+
val xml = <x>{ chars.mkString }</x>
639+
640+
// com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:
641+
// Invalid byte 1 of 1-byte UTF-8 sequence.
642+
// scala.xml.XML.save("foo.xml", xml)
643+
// scala.xml.XML.loadFile("foo.xml").toString)
644+
645+
val outputStream = new java.io.ByteArrayOutputStream
646+
val streamWriter = new java.io.OutputStreamWriter(outputStream, XML.encoding)
647+
648+
XML.write(streamWriter, xml, XML.encoding, false, null)
649+
streamWriter.flush
650+
651+
val inputStream = new java.io.ByteArrayInputStream(outputStream.toByteArray)
652+
val streamReader = new java.io.InputStreamReader(inputStream)
653+
654+
assertEquals(xml.toString, XML.load(streamReader).toString)
655+
}
656+
634657
@UnitTest
635658
def t0663 = {
636659
val src = scala.io.Source.fromString("<?xml version='1.0' encoding='UTF-8'?><feed/>")

0 commit comments

Comments
 (0)