b1c66f2005-11-07Martin Nilsson dnl $Id: testsuite.in,v 1.5 2005/11/07 14:21:01 nilsson Exp $
408f9e2002-08-02Martin Nilsson  dnl DOM dnl Tree
ccf77a2003-12-23Henrik Grubbström (Grubba) test_eval_error([[ Parser.XML.Tree.parse_input("<foo>", 0, 0, 0, 1); ]])
24443a2002-10-25Martin Nilsson test_eq([[ Parser.XML.Tree.parse_input("<a>foo &gt; hej &x.y; hopp &lt; bar</a>")->render_xml(); ]], [[ "<a>foo &gt; hej &amp;x.y; hopp &lt; bar</a>" ]]) test_eq([[ Parser.XML.Tree.parse_input("<a>foo &gt; hej &x.y; hopp &lt; bar</a>")->render_xml(1); ]], [[ "<a>foo &gt; hej &x.y; hopp &lt; bar</a>" ]]) test_eq([[ Parser.XML.Tree.parse_input("<a>hej &x.y; hopp</a>")->render_xml(); ]], [[ "<a>hej &amp;x.y; hopp</a>" ]]) test_eq([[ Parser.XML.Tree.parse_input("<a>hej &x.y; hopp</a>")->render_xml(1); ]], [[ "<a>hej &x.y; hopp</a>" ]]) test_eq([[ (string)Parser.XML.Tree.parse_input("<a><b> <c/> </b></a>") ]], [[ "<a><b> <c/> </b></a>" ]])
b1c66f2005-11-07Martin Nilsson test_eq([[ Parser.XML.Tree.parse_input("<p>a<![CDATA[b]""]>c</p>")[0][0]->get_text() ]], [[ "abc" ]])
24443a2002-10-25Martin Nilsson 
408f9e2002-08-02Martin Nilsson dnl NSTree dnl XML NS section 2 test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <x> <!-- No namespace here. --> </x>"); x=x[0]; array r = ({}); r += ({ x->get_any_name() }); r += ({ x->get_default_ns() }); r += ({ x->get_ns() }); r += ({ x->get_defined_nss()->edi }); return r; ]], ({ "x", 0, 0, 0 }) ) test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <x xmlns:edi='http://ecommerce.org/schema'> <!-- the 'edi' prefix is bound to http://ecommerce.org/schema for the 'x' element and contents --> </x>"); x=x[0]; array r = ({}); r += ({ x->get_any_name() }); r += ({ x->get_default_ns() }); r += ({ x->get_ns() }); r += ({ x->get_defined_nss()->edi }); r += ({ x[0]->get_default_ns() }); r += ({ x[0]->get_ns() }); r += ({ x[0]->get_defined_nss()->edi }); return r; ]], ({ "x", 0, 0, "http://ecommerce.org/schema", 0, 0, "http://ecommerce.org/schema" }) ) dnl XML NS section 4 test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <x xmlns:edi='http://ecommerce.org/schema'> <!-- the 'price' element's namespace is http://ecommerce.org/schema --> <edi:price units='Euro'>32.18</edi:price> </x>"); x=x[0]; array r = ({}); r += ({ x[3]->get_any_name() }); r += ({ x[3]->get_ns() }); r += ({ x[3]->get_attributes()->units }); r += ({ x[3][0]->get_ns() }); return r; ]], ({ "price", "http://ecommerce.org/schema", "Euro", 0 }) ); test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <x xmlns:edi='http://ecommerce.org/schema'> <!-- the 'taxClass' attribute's namespace is http://ecommerce.org/schema --> <lineItem edi:taxClass=\"exempt\">Baby food</lineItem> </x>"); x=x[0]; array r = ({}); r += ({ x[3]->get_ns() }); r += ({ x[3]->get_attributes() }); r += ({ x[3]->get_ns_attributes() }); return r; ]], ({ 0, ([]), ([ "http://ecommerce.org/schema": ([ "taxClass":"exempt" ]) ]) }) ) dnl XML NS section 5.1 test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <?xml version=\"1.0\"?> <!-- all elements here are explicitly in the HTML namespace --> <html:html xmlns:html='http://www.w3.org/TR/REC-html40'> <html:head><html:title>Frobnostication</html:title></html:head> <html:body><html:p>Moved to <html:a href='http://frob.com'>here.</html:a></html:p></html:body> </html:html>"); x=x[2]; array r = ({}); r += ({ x->get_ns() }); r += ({ x->get_default_ns() }); r += ({ x[0]->get_ns() }); r += ({ x[0]->get_default_ns() }); r += ({ x[3][0][1]->get_attributes()->href }); return r; ]], ({ "http://www.w3.org/TR/REC-html40", 0, 0, 0, "http://frob.com" }) ) test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <?xml version=\"1.0\"?> <!-- both namespace prefixes are available throughout --> <bk:book xmlns:bk='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6'> <bk:title>Cheaper by the Dozen</bk:title> <isbn:number>1568491379</isbn:number> </bk:book>"); x=x[2]; array r = ({}); r += ({ x->get_ns() }); r += ({ x->get_defined_nss() }); r += ({ x[1]->get_ns() }); r += ({ x[3]->get_ns() }); return r; ]], ({ "urn:loc.gov:books", ([ "bk":"urn:loc.gov:books", "isbn":"urn:ISBN:0-395-36341-6" ]), "urn:loc.gov:books", "urn:ISBN:0-395-36341-6" }) ) dnl XML NS section 5.2 test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <?xml version=\"1.0\"?> <!-- initially, the default namespace is \"books\" --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6'> <title>Cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> <notes> <!-- make HTML the default namespace for some commentary --> <p xmlns='urn:w3-org-ns:HTML'> This is a <i>funny</i> book! </p> </notes> </book>"); x=x[2]; array r = ({}); r += ({ x->get_ns() }); r += ({ x->get_default_ns() }); r += ({ x->get_defined_nss() }); r += ({ x[1]->get_ns() }); r += ({ x[3]->get_ns() }); x=x[5]; r += ({ x[3]->get_ns() }); r += ({ x[3][1]->get_ns() }); r += ({ x[3][1]->get_default_ns() }); return r; ]], ({ "urn:loc.gov:books", "urn:loc.gov:books", ([ "isbn":"urn:ISBN:0-395-36341-6" ]), "urn:loc.gov:books", "urn:ISBN:0-395-36341-6", "urn:w3-org-ns:HTML", "urn:w3-org-ns:HTML", "urn:w3-org-ns:HTML" }) ) dnl We don't test the case with empty namespace, since it dnl it is unclear how we should behave. dnl XML Section 5.3 test_any_equal([[ object x=Parser.XML.NSTree.parse_input(#" <!-- http://www.w3.org is bound to n1 and is the default --> <x xmlns:n1=\"http://www.w3.org\" xmlns=\"http://www.w3.org\" > <good a=\"1\" n1:a=\"2\" /> </x>"); x=x[1][1]; array r = ({}); r += ({ x->get_ns() }); r += ({ x->get_ns_attributes()[x->get_ns()] }); r += ({ x->get_attributes() }); return r; ]], ({ "http://www.w3.org", (["a":"2"]), (["a":"1"]) }) )
a6b02d2002-08-20Martin Nilsson dnl End of XML NS spec tests test_do([[ array args = ({ "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'", "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'", "xmlns:xsd='http://www.w3.org/2001/XMLSchema'", "xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'", "soap:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'" }); for(int i; i<120; i++) Parser.XML.NSTree.parse_input("<soap:Envelope "+Array.permute(args,i)*" "+"/>"); ]])
408f9e2002-08-02Martin Nilsson dnl Simple dnl Validating