N°6870 - Community re-integration support

Cherry-pick from support/3.1
This commit is contained in:
Eric Espie
2023-10-25 14:30:16 +02:00
committed by Molkobain
parent 85f66f5e0c
commit 31e0327b0a
2 changed files with 56 additions and 3 deletions

View File

@@ -1466,7 +1466,7 @@ EOF
switch ($sAlteration) {
case '':
if ($oNodeClone->hasAttribute('id')) {
$oNodeClone->setAttribute('_delta', 'must_exist');
//$oNodeClone->setAttribute('_delta', 'merge');
}
break;
case 'added':

View File

@@ -678,6 +678,59 @@ XML
<nodeA>
<nodeB>Luke Banner</nodeB>
</nodeA>
XML
];
$aDeltas['_delta="define_and_must_exits"'] = [
'sInitialXML' => <<<XML
<nodeA>
</nodeA>
XML
,
'sDeltaXML' => <<<XML
<nodeA>
<nodeB id="Banner" _delta="define"/>
<nodeB id="Banner" _delta="must_exist">
<nodeC _delta="define"/>
</nodeB>
</nodeA>
XML
,
'sExpectedXML' => <<<XML
<nodeA>
<nodeB id="Banner">
<nodeC/>
</nodeB>
</nodeA>
XML
];
$aDeltas['_delta="define_then_must_exist"'] = [
'sInitialXML' => <<<XML
<nodeA>
</nodeA>
XML
,
'sDeltaXML' => <<<XML
<nodeA>
<nodeB id="Banner" _delta="define">
<nodeE/>
</nodeB>
<nodeB id="Banner" _delta="must_exist">
<nodeC _delta="define_if_not_exists">
<nodeD id="Bruce" _delta="define"/>
</nodeC>
</nodeB>
</nodeA>
XML
,
'sExpectedXML' => <<<XML
<nodeA>
<nodeB id="Banner">
<nodeE/>
<nodeC>
<nodeD id="Bruce" _delta="define"/>
</nodeC>
</nodeB>
</nodeA>
XML
];
@@ -1320,7 +1373,7 @@ XML
'sExpectedXMLDelta' => <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root_node>
<james_bond id="Sean" _rename_from="Roger" _delta="must_exist"/>
<james_bond id="Sean" _rename_from="Roger"/>
</root_node>
XML
],
@@ -1336,7 +1389,7 @@ XML
'sExpectedXMLDelta' => <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root_node>
<james_bond id="Sean" _rename_from="Roger" _delta="must_exist">
<james_bond id="Sean" _rename_from="Roger">
<subtree _delta="define">etc.</subtree>
</james_bond>
</root_node>