Skip to content

Commit 157634b

Browse files
authored
Merge pull request #182 from phpcr/preserve_child_order_on_copy
Added test for preserving child node order on copy
2 parents c78aeb4 + d73a56b commit 157634b

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

fixtures/10_Writing/copy.xml

+32
Original file line numberDiff line numberDiff line change
@@ -523,4 +523,36 @@
523523
</sv:node>
524524
</sv:node>
525525
</sv:node>
526+
527+
<sv:node sv:name="testCopyPreserveChildOrder">
528+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
529+
<sv:value>nt:unstructured</sv:value>
530+
</sv:property>
531+
532+
<sv:node sv:name="srcNode">
533+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
534+
<sv:value>nt:unstructured</sv:value>
535+
</sv:property>
536+
<sv:node sv:name="one">
537+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
538+
<sv:value>nt:unstructured</sv:value>
539+
</sv:property>
540+
</sv:node>
541+
<sv:node sv:name="two">
542+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
543+
<sv:value>nt:unstructured</sv:value>
544+
</sv:property>
545+
</sv:node>
546+
<sv:node sv:name="three">
547+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
548+
<sv:value>nt:unstructured</sv:value>
549+
</sv:property>
550+
</sv:node>
551+
</sv:node>
552+
<sv:node sv:name="dstNode">
553+
<sv:property sv:name="jcr:primaryType" sv:type="Name">
554+
<sv:value>nt:unstructured</sv:value>
555+
</sv:property>
556+
</sv:node>
557+
</sv:node>
526558
</sv:node>

tests/Writing/CopyMethodsTest.php

+18
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,24 @@ public function testWorkspaceCopy()
7979
$this->assertNotEquals($sfile->getPropertyValue('jcr:data'), $dfile->getPropertyValue('jcr:data'));
8080
}
8181

82+
public function testCopyPreserveChildOrder()
83+
{
84+
$expected = [ 'three', 'one', 'two' ];
85+
86+
$src = '/tests_write_manipulation_copy/testCopyPreserveChildOrder/srcNode';
87+
$dst = '/tests_write_manipulation_copy/testCopyPreserveChildOrder/dstNode/srcNode';
88+
89+
$node = $this->session->getNode($src);
90+
$node->orderBefore('three', 'one');
91+
$this->session->save();
92+
$this->assertEquals($expected, iterator_to_array($node->getNodeNames()));
93+
94+
$this->ws->copy($src, $dst);
95+
96+
$node = $this->session->getNode($dst);
97+
$this->assertEquals($expected, iterator_to_array($node->getNodeNames()));
98+
}
99+
82100
public function testWorkspaceCopyReference()
83101
{
84102
$src = '/tests_write_manipulation_copy/testWorkspaceCopy/referencedNodeSet';

0 commit comments

Comments
 (0)