From 4b60896cb82ebf64f16fc3e8d416411499e23e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muntis=20Gr=C5=ABbe?= Date: Mon, 12 Jan 2015 18:40:50 +0200 Subject: [PATCH] Fix doBuildString for TopScope of NamespaceBinding --- src/main/scala/scala/xml/NamespaceBinding.scala | 2 +- src/main/scala/scala/xml/TopScope.scala | 1 + src/test/scala/scala/xml/XMLTest.scala | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/scala/scala/xml/NamespaceBinding.scala b/src/main/scala/scala/xml/NamespaceBinding.scala index 8409c41e1..b5650500d 100644 --- a/src/main/scala/scala/xml/NamespaceBinding.scala +++ b/src/main/scala/scala/xml/NamespaceBinding.scala @@ -72,7 +72,7 @@ case class NamespaceBinding(prefix: String, uri: String, parent: NamespaceBindin shadowRedefined(stop).doBuildString(sb, stop) } - private def doBuildString(sb: StringBuilder, stop: NamespaceBinding) { + protected def doBuildString(sb: StringBuilder, stop: NamespaceBinding) { if ((this == null) || (this eq stop)) return // contains? val s = " xmlns%s=\"%s\"".format( diff --git a/src/main/scala/scala/xml/TopScope.scala b/src/main/scala/scala/xml/TopScope.scala index 53d4b2c5d..a467a5a37 100644 --- a/src/main/scala/scala/xml/TopScope.scala +++ b/src/main/scala/scala/xml/TopScope.scala @@ -28,4 +28,5 @@ object TopScope extends NamespaceBinding(null, null, null) { override def buildString(stop: NamespaceBinding) = "" override def buildString(sb: StringBuilder, ignore: NamespaceBinding) = {} + override protected def doBuildString(sb: StringBuilder, stop: NamespaceBinding) = {} } diff --git a/src/test/scala/scala/xml/XMLTest.scala b/src/test/scala/scala/xml/XMLTest.scala index 01431baf1..7b22cefb6 100644 --- a/src/test/scala/scala/xml/XMLTest.scala +++ b/src/test/scala/scala/xml/XMLTest.scala @@ -160,6 +160,23 @@ class XMLTest { for (n <- cuckoo \ "_") { assertEquals("http://cuckoo.com", n.namespace) } + val actual: String = new scala.xml.PrettyPrinter(80, 5).format(cuckoo) + val expected = """| + | + | + |""".stripMargin + assertEquals(expected, actual) + } + + @UnitTest + def namespacesWithNestedXmls: Unit = { + val foo = + val bar = {foo} + val actual: String = new scala.xml.PrettyPrinter(80, 5).format(bar) + val expected = """| + | + |""".stripMargin + assertEquals(expected, actual) } @UnitTest