diff options
Diffstat (limited to 'test/namespaces/reconcile/tests.xml')
-rw-r--r-- | test/namespaces/reconcile/tests.xml | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/test/namespaces/reconcile/tests.xml b/test/namespaces/reconcile/tests.xml new file mode 100644 index 0000000..c6f8c54 --- /dev/null +++ b/test/namespaces/reconcile/tests.xml @@ -0,0 +1,249 @@ +<?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> |