Home | History | Annotate | Download | only in reconcile
      1 <?xml version="1.0"?>
      2 <tests>
      3 	<test name="adopt_recon_default">
      4 		
      5 		<doc name="doc1"><![CDATA[<p1 xmlns="urn:test:AAA"><a/></p1>]]></doc>
      6 		<doc name="doc2"><![CDATA[<p1 xmlns="urn:test:BBB"><b/></p1>]]></doc>
      7 		<doc name="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"/>]]></doc>
      8 		<var name="a">
      9 			<xpath doc="doc1" select-node="/a:p1/a:a">
     10 				<reg-ns prefix="a" ns="urn:test:AAA"/>
     11 			</xpath>
     12 		</var>
     13 		<var name="b" >
     14 			<xpath doc="doc2" select-node="/b:p1/b:b">
     15 				<reg-ns prefix="b" ns="urn:test:BBB"/>				
     16 			</xpath>
     17 		</var>
     18 		<var name="p2">
     19 			<xpath doc="doc3" select-node="/z:p2">
     20 				<reg-ns prefix="z" ns="urn:test:ZZZ"/>				
     21 			</xpath>
     22 		</var>
     23 
     24 		<remove node="a"/>
     25 		<adopt dest-doc="doc3" node="a"/>
     26 		<append-child parent="p2" child="a"/>
     27 
     28 		<!-- This time without a previous removing. -->
     29 		<adopt dest-doc="doc3" node="b"/>
     30 		<append-child parent="p2" child="b"/>
     31 
     32 		<reconcile-ns node="p2"/>
     33 		<expected doc="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"><a xmlns="urn:test:AAA"/><b xmlns="urn:test:BBB"/></p2>]]></expected>
     34 	</test>
     35 
     36 	<test name="adopt_recon">		
     37 		<doc name="doc1"><![CDATA[<a:p1 xmlns:a="urn:test:AAA"><a:a/></a:p1>]]></doc>
     38 		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
     39 		<var name="a">
     40 			<xpath doc="doc1" select-node="/a:p1/a:a">
     41 				<reg-ns prefix="a" ns="urn:test:AAA"/>
     42 			</xpath>
     43 		</var>
     44 		<var name="p2">
     45 			<xpath doc="doc2" select-node="/a:p2">
     46 				<reg-ns prefix="a" ns="urn:test:AAA"/>				
     47 			</xpath>
     48 		</var>
     49 		<adopt dest-doc="doc2" node="a"/>
     50 		<append-child parent="p2" child="a"/>
     51 		<reconcile-ns node="a"/>
     52 		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"><a:a/></a:p2>]]></expected>
     53 	</test>
     54 
     55 	<test name="adopt_recon_attr">		
     56 		<doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc>
     57 		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
     58 		<var name="attr">
     59 			<xpath doc="doc1" select-node="/p1/@b:attr">
     60 				<reg-ns prefix="b" ns="urn:test:BBB"/>
     61 			</xpath>
     62 		</var>
     63 		<var name="p2">
     64 			<xpath doc="doc2" select-node="/a:p2">
     65 				<reg-ns prefix="a" ns="urn:test:AAA"/>				
     66 			</xpath>
     67 		</var>
     68 		<adopt dest-doc="doc2" node="attr" />
     69 		<append-child parent="p2" child="attr"/>
     70 		<reconcile-ns node="p2"/>
     71 		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected>
     72 	</test>
     73 
     74 	<test name="adopt_recon_attr_2">		
     75 	    <!-- Here we will specify a destination-parent for adoption. -->
     76 		<doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc>
     77 		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc>
     78 		<var name="attr">
     79 			<xpath doc="doc1" select-node="/p1/@b:attr">
     80 				<reg-ns prefix="b" ns="urn:test:BBB"/>
     81 			</xpath>
     82 		</var>
     83 		<var name="p2">
     84 			<xpath doc="doc2" select-node="/a:p2">
     85 				<reg-ns prefix="a" ns="urn:test:AAA"/>				
     86 			</xpath>
     87 		</var>		
     88 		<adopt dest-doc="doc2" dest-parent="p2" node="attr" />		
     89 		<append-child parent="p2" child="attr"/>
     90 		<reconcile-ns node="p2"/>
     91 		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected>
     92 	</test>
     93 
     94 	<test name="adopt_recon_attr_3">		
     95 	    <!-- Conflicting ns-prefixes for the added attribute. -->
     96 		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
     97 		<doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa"/>]]></doc>
     98 		<var name="attr">
     99 			<xpath doc="doc1" select-node="/p1/@a:attr">
    100 				<reg-ns prefix="a" ns="urn:test:AAA"/>
    101 			</xpath>
    102 		</var>
    103 		<var name="p2">
    104 			<xpath doc="doc2" select-node="/a:p2">
    105 				<reg-ns prefix="a" ns="urn:test:aaa"/>
    106 			</xpath>
    107 		</var>		
    108 		<adopt dest-doc="doc2" node="attr" />
    109 		<append-child parent="p2" child="attr"/>
    110 		<reconcile-ns node="p2"/>
    111 		<expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>]]></expected>
    112 	</test>
    113 
    114 	<test name="adopt_recon_attr_4">
    115 	    <!-- Qualified attribute added to default namespaced elem. -->
    116 		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    117 		<doc name="doc2"><![CDATA[<p2 xmlns="urn:test:AAA"/>]]></doc>
    118 		<var name="attr">
    119 			<xpath doc="doc1" select-node="/p1/@a:attr">
    120 				<reg-ns prefix="a" ns="urn:test:AAA"/>
    121 			</xpath>
    122 		</var>
    123 		<var name="p2">
    124 			<xpath doc="doc2" select-node="/a:p2">
    125 				<reg-ns prefix="a" ns="urn:test:AAA"/>
    126 			</xpath>
    127 		</var>		
    128 		<adopt dest-doc="doc2" node="attr" />
    129 		<append-child parent="p2" child="attr"/>
    130 		<reconcile-ns node="p2"/>
    131 		<expected doc="doc2"><![CDATA[<p2 xmlns="urn:test:AAA" xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></expected>
    132 	</test>
    133 
    134 	<test name="adopt_recon_attr_5">
    135 		<!-- Shadowed and conflicting prefix. dest-parent IS given. -->
    136 		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    137 		<doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc>
    138 		<var name="attr">
    139 			<xpath doc="doc1" select-node="/p1/@a:attr">
    140 				<reg-ns prefix="a" ns="urn:test:AAA"/>
    141 			</xpath>
    142 		</var>
    143 		<var name="p3">
    144 			<xpath doc="doc2" select-node="/p2/a:p3">
    145 				<reg-ns prefix="a" ns="urn:test:ZZZ"/>
    146 			</xpath>
    147 		</var>		
    148 		<adopt dest-doc="doc2" node="attr" dest-parent="p3"/>
    149 		<append-child parent="p3" child="attr"/>
    150 		<!-- Note that we don't need to reconcile here, since done during
    151 		     adoption. -->
    152 		<expected doc="doc2"><![CDATA[
    153 <p2 xmlns:a="urn:test:AAA">
    154 	<a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>
    155 </p2>]]></expected>
    156 	</test>
    157 
    158 	<test name="adopt_recon_attr_6">
    159 		<!-- Shadowed and conflicting prefix. dest-parent NOT given. -->
    160 		<doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc>
    161 		<doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc>
    162 		<var name="attr">
    163 			<xpath doc="doc1" select-node="/p1/@a:attr">
    164 				<reg-ns prefix="a" ns="urn:test:AAA"/>
    165 			</xpath>
    166 		</var>
    167 		<var name="p3">
    168 			<xpath doc="doc2" select-node="/p2/a:p3">
    169 				<reg-ns prefix="a" ns="urn:test:ZZZ"/>
    170 			</xpath>
    171 		</var>		
    172 		<adopt dest-doc="doc2" node="attr"/>
    173 		<append-child parent="p3" child="attr"/>
    174 		<reconcile-ns node="p3"/>
    175 		<expected doc="doc2"><![CDATA[
    176 <p2 xmlns:a="urn:test:AAA">
    177 	<a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>
    178 </p2>]]></expected>
    179 	</test>
    180 	
    181 	<test name="shadow_1">
    182 		
    183 		<doc name="doc"><![CDATA[
    184 <foo xmlns:foo="urn:test:mine">
    185 	<p xmlns:bar="urn:test:mine"/>
    186 	<a1>
    187 		<a2 xmlns:bar="urn:test:OTHER">
    188 			<foo:a3/>
    189 		</a2>
    190 	</a1>
    191 </foo>
    192 ]]></doc>
    193 		<var name="a1">
    194 			<xpath doc="doc" select-node="/foo/a1"/>
    195 		</var>
    196 		<var name="p" >
    197 			<xpath doc="doc" select-node="/foo/p"/>
    198 		</var>
    199 		<remove node="a1"/>
    200 		<append-child parent="p" child="a1"/>
    201 		<reconcile-ns node="a1"/>		
    202 		<expected doc="doc"><![CDATA[
    203 <foo xmlns:foo="urn:test:mine">
    204 	<p xmlns:bar="urn:test:mine">
    205 		<a1>
    206 			<a2 xmlns:bar="urn:test:OTHER">
    207 				<foo:a3/>
    208 			</a2>
    209 		</a1>
    210 	</p>
    211 </foo>
    212 ]]></expected>
    213 	</test>
    214 
    215 	<test name="norm_1">
    216 		
    217 		<doc name="doc"><![CDATA[
    218 <foo>
    219 	<p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C">
    220 		<a:a>
    221 			<b:b a:attr="dont" c:attr="panic"/>
    222 		</a:a>
    223 	</p1>
    224 	<p2/>
    225 </foo>
    226 ]]></doc>
    227 		<var name="a">
    228 			<xpath doc="doc" select-node="/foo/p1/a:a">
    229 				<reg-ns prefix="a" ns="urn:test:A"/>
    230 			</xpath>
    231 		</var>
    232 		<var name="p2" >
    233 			<xpath doc="doc" select-node="/foo/p2"/>
    234 		</var>
    235 		<remove node="a"/>
    236 		<append-child parent="p2" child="a"/>
    237 		<reconcile-ns node="a"/>		
    238 		<expected doc="doc"><![CDATA[
    239 <foo>
    240 	<p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C"/>		
    241 	<p2>
    242 		<a:a xmlns:a="urn:test:A">
    243 			<b:b xmlns:b="urn:test:B" xmlns:c="urn:test:C" a:attr="dont" c:attr="panic"/>
    244 		</a:a>
    245 	</p2>
    246 </foo>
    247 ]]></expected>
    248 	</test>
    249 </tests>
    250