diff options
Diffstat (limited to 'test/files/jvm/xmlstuff.scala')
-rw-r--r-- | test/files/jvm/xmlstuff.scala | 292 |
1 files changed, 130 insertions, 162 deletions
diff --git a/test/files/jvm/xmlstuff.scala b/test/files/jvm/xmlstuff.scala index 6e711a0f86..08aa716352 100644 --- a/test/files/jvm/xmlstuff.scala +++ b/test/files/jvm/xmlstuff.scala @@ -1,10 +1,8 @@ import java.io.StringReader import org.xml.sax.InputSource - -import scala.testing.SUnit.Assert import scala.xml.{Node, NodeSeq, Elem, Text, XML} -object Test extends AnyRef with Assert { +object Test { /** returns true if exception was thrown */ def catcher(att: Function1[Unit, scala.xml.MetaData]): Boolean = { @@ -21,193 +19,163 @@ object Test extends AnyRef with Assert { def main(args: Array[String]) { - //val e: scala.xml.MetaData = null; //Node.NoAttributes; - //val sc: scala.xml.NamespaceBinding = null; - - // ------------------------------------------ tests for class NodeSeq - - /** - println("checking wellformed attributes"); - { - import scala.xml.{ UnprefixedAttribute, Null } - assertTrue(catcher {x:Unit => new UnprefixedAttribute("key", "<", Null)}); // < illegal - assertTrue(catcher(x:Unit => new UnprefixedAttribute("key", "&", Null))); // & illegal - assertTrue(catcher(x:Unit => new UnprefixedAttribute("key", "a&a", Null))); // & illegal - assertTrue(catcher(x:Unit => new UnprefixedAttribute("key", "a&a;&", Null))); // 2nd & - - assertFalse(catcher(x:Unit => new UnprefixedAttribute("key", "a&a; <<", Null))); - } -*/ - -/* -checking wellformed attributes -< not allowed in attribute value -passed ok -malformed entity reference in attribute value [&] -passed ok -malformed entity reference in attribute value [a&a] -passed ok -malformed entity reference in attribute value [a&a;&] -passed ok -passed ok -*/ - - println("NodeSeq") + println("NodeSeq") val p = <foo> - <bar gt='ga' value="3"/> - <baz bazValue="8"/> - <bar value="5" gi='go'/> - </foo>; + <bar gt='ga' value="3"/> + <baz bazValue="8"/> + <bar value="5" gi='go'/> + </foo>; val pelems_1 = for( val x <- p \ "bar"; val y <- p \ "baz" ) yield { Text(x.attributes("value").toString + y.attributes("bazValue").toString+ "!") }; val pelems_2 = new NodeSeq { val theSeq = List(Text("38!"),Text("58!")) }; - assertSameElementsXML(pelems_1, pelems_2) + assert(pelems_1 sameElements pelems_2) - assertEqualsXML(p \\ "@bazValue", Text("8")) + assert(Text("8") sameElements (p \\ "@bazValue")) val books = - <bks> - <book><title>Blabla</title></book> - <book><title>Blubabla</title></book> - <book><title>Baaaaaaalabla</title></book> + <bks> + <book><title>Blabla</title></book> + <book><title>Blubabla</title></book> + <book><title>Baaaaaaalabla</title></book> </bks>; - val reviews = - <reviews> - <entry><title>Blabla</title> - <remarks> - Hallo Welt. - </remarks> + val reviews = + <reviews> + <entry><title>Blabla</title> + <remarks> + Hallo Welt. + </remarks> + </entry> + <entry><title>Blubabla</title> + <remarks> + Hello Blu + </remarks> + </entry> + <entry><title>Blubabla</title> + <remarks> + rem 2 + </remarks> </entry> - <entry><title>Blubabla</title> - <remarks> - Hello Blu - </remarks> - </entry> - <entry><title>Blubabla</title> - <remarks> - rem 2 - </remarks> - </entry> </reviews>; - println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( - for (t <- books \\ "title"; - r <- reviews \\ "entry" - if (r \ "title") xml_== t) yield - <result> - { t } - { r \ "remarks" } - </result> - )); - - // example - println( - for (t @ <book><title>Blabla</title></book> <- new NodeSeq { val theSeq = books.child }.toList) - yield t - ); -val phoneBook = - <phonebook> - <descr> - This is the <b>phonebook</b> of the - <a href="http://acme.org">ACME</a> corporation. - </descr> - <entry> - <name>John</name> - <phone where="work"> +41 21 693 68 67</phone> - <phone where="mobile">+41 79 602 23 23</phone> - </entry> + println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( + for (t <- books \\ "title"; + r <- reviews \\ "entry" + if (r \ "title") xml_== t) yield + <result> + { t } + { r \ "remarks" } + </result> + )); + + // example + println( + for (t @ <book><title>Blabla</title></book> <- new NodeSeq { val theSeq = books.child }.toList) + yield t + ); + val phoneBook = + <phonebook> + <descr> + This is the <b>phonebook</b> of the + <a href="http://acme.org">ACME</a> corporation. + </descr> + <entry> + <name>John</name> + <phone where="work"> +41 21 693 68 67</phone> + <phone where="mobile">+41 79 602 23 23</phone> + </entry> </phonebook>; -val addrBook = - <addrbook> - <descr> - This is the <b>addressbook</b> of the - <a href="http://acme.org">ACME</a> corporation. - </descr> - <entry> - <name>John</name> - <street> Elm Street</street> - <city>Dolphin City</city> - </entry> + val addrBook = + <addrbook> + <descr> + This is the <b>addressbook</b> of the + <a href="http://acme.org">ACME</a> corporation. + </descr> + <entry> + <name>John</name> + <street> Elm Street</street> + <city>Dolphin City</city> + </entry> </addrbook>; - println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( - for (t <- addrBook \\ "entry"; - r <- phoneBook \\ "entry" - if (t \ "name") xml_== (r \ "name")) yield - <result> - { t.child } - { r \ "phone" } - </result> - )); - - - /* namespaces */ - // begin tmp - println("namespaces") - val cuckoo = <cuckoo xmlns="http://cuckoo.com"> + println( new scala.xml.PrettyPrinter(80, 5).formatNodes ( + for (t <- addrBook \\ "entry"; + r <- phoneBook \\ "entry" + if (t \ "name") xml_== (r \ "name")) yield + <result> + { t.child } + { r \ "phone" } + </result> + )); + + + /* namespaces */ + // begin tmp + println("namespaces") + val cuckoo = <cuckoo xmlns="http://cuckoo.com"> <foo/> <bar/> - </cuckoo>; - assertEquals(cuckoo.namespace, "http://cuckoo.com") - for (n <- cuckoo \ "_" ) { - //println("n = "+n); - //println("n.prefix = "+n.prefix); - //.println("n.scope = "+n.scope); - assertEquals( n.namespace, "http://cuckoo.com") - } + </cuckoo>; + assert(cuckoo.namespace == "http://cuckoo.com") + for (n <- cuckoo \ "_" ) { + //println("n = "+n); + //println("n.prefix = "+n.prefix); + //.println("n.scope = "+n.scope); + assert( n.namespace == "http://cuckoo.com") + } - println("validation - elements") - val vtor = new scala.xml.dtd.ElementValidator(); - { - import scala.xml.dtd.ELEMENTS - import scala.xml.dtd.ContentModel._ - vtor.setContentModel( - ELEMENTS( - Sequ( - Letter(ElemName("bar")), - Star(Letter(ElemName("baz"))) ))); + println("validation - elements") + val vtor = new scala.xml.dtd.ElementValidator(); + { + import scala.xml.dtd.ELEMENTS + import scala.xml.dtd.ContentModel._ + vtor.setContentModel( + ELEMENTS( + Sequ( + Letter(ElemName("bar")), + Star(Letter(ElemName("baz"))) ))); - } - assertEquals(vtor( <foo><bar/><baz/><baz/></foo> ), true); - { - import scala.xml.dtd.MIXED - import scala.xml.dtd.ContentModel._ - - vtor.setContentModel( - MIXED( - Alt(Letter(ElemName("bar")), - Letter(ElemName("baz")), - Letter(ElemName("bal"))))); - } + } + assert(vtor( <foo><bar/><baz/><baz/></foo> )) - assertEquals(vtor(<foo><bar/><baz/><baz/></foo> ), true) - assertEquals(vtor(<foo>ab<bar/>cd<baz/>ed<baz/>gh</foo> ), true) - assertEquals(vtor(<foo> <ugha/> <bugha/> </foo> ), false) + { + import scala.xml.dtd.MIXED + import scala.xml.dtd.ContentModel._ + + vtor.setContentModel( + MIXED( + Alt(Letter(ElemName("bar")), + Letter(ElemName("baz")), + Letter(ElemName("bal"))))); + } - println("validation - attributes") - vtor.setContentModel(null) - vtor.setMetaData(List()) - assertEquals(vtor( <foo bar="hello"/> ), false) + assert(vtor(<foo><bar/><baz/><baz/></foo> )) + assert(vtor(<foo>ab<bar/>cd<baz/>ed<baz/>gh</foo> )) + assert(!vtor(<foo> <ugha/> <bugha/> </foo> )) - { - import scala.xml.dtd._ - vtor setMetaData List(AttrDecl("bar", "CDATA", IMPLIED)) - } - assertEquals(vtor(<foo href="http://foo.com" bar="hello"/>), false) - assertEquals(vtor(<foo bar="hello"/>), true) + println("validation - attributes") + vtor.setContentModel(null) + vtor.setMetaData(List()) + assert(!vtor( <foo bar="hello"/> )) - { - import scala.xml.dtd._ - vtor.setMetaData(List(AttrDecl("bar","CDATA",REQUIRED))) - } - assertEquals( vtor( <foo href="http://foo.com" /> ), false ) - assertEquals( vtor( <foo bar="http://foo.com" /> ), true ) + { + import scala.xml.dtd._ + vtor setMetaData List(AttrDecl("bar", "CDATA", IMPLIED)) + } + assert(!vtor(<foo href="http://foo.com" bar="hello"/>)) + assert(vtor(<foo bar="hello"/>)) + + { + import scala.xml.dtd._ + vtor.setMetaData(List(AttrDecl("bar","CDATA",REQUIRED))) + } + assert(!vtor( <foo href="http://foo.com" /> )) + assert( vtor( <foo bar="http://foo.com" /> )) } } |