Edit

kc3-lang/libxml2/test/namespaces/reconcile/tests.xml

Branch :

  • Show log

    Commit

  • Author : Kasimier T. Buchcik
    Date : 2005-06-27 12:09:02
    Hash : 44555f06
    Message : Added initial tests for some new DOM-wrapper helping functions. * test/namespaces/reconcile/tests.xml test/namespaces/reconcile/tests-to-c.xsl: Added initial tests for some new DOM-wrapper helping functions.

  • test/namespaces/reconcile/tests.xml
  • <?xml version="1.0"?>
    <tests>
    	<test name="adopt_recon_default">
    		
    		<doc name="doc1"><![CDATA[<p1 xmlns="urn:test:AAA"><a/></p1>]]></doc>
    		<doc name="doc2"><![CDATA[<p1 xmlns="urn:test:BBB"><b/></p1>]]></doc>
    		<doc name="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"/>]]></doc>
    		<var name="a">
    			<xpath doc="doc1" select-node="/a:p1/a:a">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="b" >
    			<xpath doc="doc2" select-node="/b:p1/b:b">
    				<reg-ns prefix="b" ns="urn:test:BBB"/>				
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc3" select-node="/z:p2">
    				<reg-ns prefix="z" ns="urn:test:ZZZ"/>				
    			</xpath>
    		</var>
    
    		<remove node="a"/>
    		<adopt dest-doc="doc3" node="a"/>
    		<append-child parent="p2" child="a"/>
    
    		<!-- This time without a previous removing. -->
    		<adopt dest-doc="doc3" node="b"/>
    		<append-child parent="p2" child="b"/>
    
    		<reconcile-ns node="p2"/>
    		<expected doc="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"><a xmlns="urn:test:AAA"/><b xmlns="urn:test:BBB"/></p2>]]></expected>
    	</test>
    
    	<test name="adopt_recon">		
    		<doc name="doc1"><![CDATA[<a:p1 xmlns:a="urn:test:AAA"><a:a/></a:p1>]]></doc>
    		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
    		<var name="a">
    			<xpath doc="doc1" select-node="/a:p1/a:a">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc2" select-node="/a:p2">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>				
    			</xpath>
    		</var>
    		<adopt dest-doc="doc2" node="a"/>
    		<append-child parent="p2" child="a"/>
    		<reconcile-ns node="a"/>
    		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"><a:a/></a:p2>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr">		
    		<doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@b:attr">
    				<reg-ns prefix="b" ns="urn:test:BBB"/>
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc2" select-node="/a:p2">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>				
    			</xpath>
    		</var>
    		<adopt dest-doc="doc2" node="attr" />
    		<append-child parent="p2" child="attr"/>
    		<reconcile-ns node="p2"/>
    		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr_2">		
    	    <!-- Here we will specify a destination-parent for adoption. -->
    		<doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@b:attr">
    				<reg-ns prefix="b" ns="urn:test:BBB"/>
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc2" select-node="/a:p2">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>				
    			</xpath>
    		</var>		
    		<adopt dest-doc="doc2" dest-parent="p2" node="attr" />		
    		<append-child parent="p2" child="attr"/>
    		<reconcile-ns node="p2"/>
    		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr_3">		
    	    <!-- Conflicting ns-prefixes for the added attribute. -->
    		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa"/>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@a:attr">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc2" select-node="/a:p2">
    				<reg-ns prefix="a" ns="urn:test:aaa"/>
    			</xpath>
    		</var>		
    		<adopt dest-doc="doc2" node="attr" />
    		<append-child parent="p2" child="attr"/>
    		<reconcile-ns node="p2"/>
    		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr_4">
    	    <!-- Qualified attribute added to default namespaced elem. -->
    		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<p2 xmlns="urn:test:AAA"/>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@a:attr">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="p2">
    			<xpath doc="doc2" select-node="/a:p2">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>		
    		<adopt dest-doc="doc2" node="attr" />
    		<append-child parent="p2" child="attr"/>
    		<reconcile-ns node="p2"/>
    		<expected doc="doc2"><![CDATA[<p2 xmlns="urn:test:AAA" xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr_5">
    		<!-- Shadowed and conflicting prefix. dest-parent IS given. -->
    		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@a:attr">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="p3">
    			<xpath doc="doc2" select-node="/p2/a:p3">
    				<reg-ns prefix="a" ns="urn:test:ZZZ"/>
    			</xpath>
    		</var>		
    		<adopt dest-doc="doc2" node="attr" dest-parent="p3"/>
    		<append-child parent="p3" child="attr"/>
    		<!-- Note that we don't need to reconcile here, since done during
    		     adoption. -->
    		<expected doc="doc2"><![CDATA[
    <p2 xmlns:a="urn:test:AAA">
    	<a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>
    </p2>]]></expected>
    	</test>
    
    	<test name="adopt_recon_attr_6">
    		<!-- Shadowed and conflicting prefix. dest-parent NOT given. -->
    		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    		<doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc>
    		<var name="attr">
    			<xpath doc="doc1" select-node="/p1/@a:attr">
    				<reg-ns prefix="a" ns="urn:test:AAA"/>
    			</xpath>
    		</var>
    		<var name="p3">
    			<xpath doc="doc2" select-node="/p2/a:p3">
    				<reg-ns prefix="a" ns="urn:test:ZZZ"/>
    			</xpath>
    		</var>		
    		<adopt dest-doc="doc2" node="attr"/>
    		<append-child parent="p3" child="attr"/>
    		<reconcile-ns node="p3"/>
    		<expected doc="doc2"><![CDATA[
    <p2 xmlns:a="urn:test:AAA">
    	<a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>
    </p2>]]></expected>
    	</test>
    	
    	<test name="shadow_1">
    		
    		<doc name="doc"><![CDATA[
    <foo xmlns:foo="urn:test:mine">
    	<p xmlns:bar="urn:test:mine"/>
    	<a1>
    		<a2 xmlns:bar="urn:test:OTHER">
    			<foo:a3/>
    		</a2>
    	</a1>
    </foo>
    ]]></doc>
    		<var name="a1">
    			<xpath doc="doc" select-node="/foo/a1"/>
    		</var>
    		<var name="p" >
    			<xpath doc="doc" select-node="/foo/p"/>
    		</var>
    		<remove node="a1"/>
    		<append-child parent="p" child="a1"/>
    		<reconcile-ns node="a1"/>		
    		<expected doc="doc"><![CDATA[
    <foo xmlns:foo="urn:test:mine">
    	<p xmlns:bar="urn:test:mine">
    		<a1>
    			<a2 xmlns:bar="urn:test:OTHER">
    				<foo:a3/>
    			</a2>
    		</a1>
    	</p>
    </foo>
    ]]></expected>
    	</test>
    
    	<test name="norm_1">
    		
    		<doc name="doc"><![CDATA[
    <foo>
    	<p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C">
    		<a:a>
    			<b:b a:attr="dont" c:attr="panic"/>
    		</a:a>
    	</p1>
    	<p2/>
    </foo>
    ]]></doc>
    		<var name="a">
    			<xpath doc="doc" select-node="/foo/p1/a:a">
    				<reg-ns prefix="a" ns="urn:test:A"/>
    			</xpath>
    		</var>
    		<var name="p2" >
    			<xpath doc="doc" select-node="/foo/p2"/>
    		</var>
    		<remove node="a"/>
    		<append-child parent="p2" child="a"/>
    		<reconcile-ns node="a"/>		
    		<expected doc="doc"><![CDATA[
    <foo>
    	<p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C"/>		
    	<p2>
    		<a:a xmlns:a="urn:test:A">
    			<b:b xmlns:b="urn:test:B" xmlns:c="urn:test:C" a:attr="dont" c:attr="panic"/>
    		</a:a>
    	</p2>
    </foo>
    ]]></expected>
    	</test>
    </tests>