Source of file RemoveOrphanedPagesTaskTest.php
Size: 3,821 Bytes - Last Modified: 2021-12-23T10:28:18+00:00
/var/www/docs.ssmods.com/process/src/tests/php/Tasks/RemoveOrphanedPagesTaskTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | <?php namespace SilverStripe\CMS\Tests\Tasks; use SilverStripe\CMS\Tasks\RemoveOrphanedPagesTask; use SilverStripe\Versioned\Versioned; use SilverStripe\Dev\FunctionalTest; /** * <h2>Fixture tree</h2> * <code> * parent1_published * child1_1_published * grandchild1_1_1 * grandchild1_1_2_published * grandchild1_1_3_orphaned * grandchild1_1_4_orphaned_published * child1_2_published * child1_3_orphaned * child1_4_orphaned_published * parent2 * child2_1_published_orphaned // is orphaned because parent is not published * </code> * * <h2>Cleaned up tree</h2> * <code> * parent1_published * child1_1_published * grandchild1_1_1 * grandchild1_1_2_published * child2_1_published_orphaned * parent2 * </code> * * @author Ingo Schommer (<firstname>@silverstripe.com), SilverStripe Ltd. */ class RemoveOrphanedPagesTaskTest extends FunctionalTest { protected static $fixture_file = 'RemoveOrphanedPagesTaskTest.yml'; protected function setUp(): void { parent::setUp(); $parent1_published = $this->objFromFixture('Page', 'parent1_published'); $parent1_published->publishSingle(); $child1_1_published = $this->objFromFixture('Page', 'child1_1_published'); $child1_1_published->publishSingle(); $child1_2_published = $this->objFromFixture('Page', 'child1_2_published'); $child1_2_published->publishSingle(); $child1_3_orphaned = $this->objFromFixture('Page', 'child1_3_orphaned'); $child1_3_orphaned->ParentID = 9999; $child1_3_orphaned->write(); $child1_4_orphaned_published = $this->objFromFixture('Page', 'child1_4_orphaned_published'); $child1_4_orphaned_published->ParentID = 9999; $child1_4_orphaned_published->write(); $child1_4_orphaned_published->publishSingle(); $grandchild1_1_2_published = $this->objFromFixture('Page', 'grandchild1_1_2_published'); $grandchild1_1_2_published->publishSingle(); $grandchild1_1_3_orphaned = $this->objFromFixture('Page', 'grandchild1_1_3_orphaned'); $grandchild1_1_3_orphaned->ParentID = 9999; $grandchild1_1_3_orphaned->write(); $grandchild1_1_4_orphaned_published = $this->objFromFixture( 'Page', 'grandchild1_1_4_orphaned_published' ); $grandchild1_1_4_orphaned_published->ParentID = 9999; $grandchild1_1_4_orphaned_published->write(); $grandchild1_1_4_orphaned_published->publishSingle(); $child2_1_published_orphaned = $this->objFromFixture('Page', 'child2_1_published_orphaned'); $child2_1_published_orphaned->publishSingle(); } public function testGetOrphansByStage() { // all orphans $child1_3_orphaned = $this->objFromFixture('Page', 'child1_3_orphaned'); $child1_4_orphaned_published = $this->objFromFixture('Page', 'child1_4_orphaned_published'); $grandchild1_1_3_orphaned = $this->objFromFixture('Page', 'grandchild1_1_3_orphaned'); $grandchild1_1_4_orphaned_published = $this->objFromFixture( 'Page', 'grandchild1_1_4_orphaned_published' ); $child2_1_published_orphaned = $this->objFromFixture('Page', 'child2_1_published_orphaned'); $task = singleton(RemoveOrphanedPagesTask::class); $orphans = $task->getOrphanedPages(); $orphanIDs = $orphans->column('ID'); sort($orphanIDs); $compareIDs = [ $child1_3_orphaned->ID, $child1_4_orphaned_published->ID, $grandchild1_1_3_orphaned->ID, $grandchild1_1_4_orphaned_published->ID, $child2_1_published_orphaned->ID ]; sort($compareIDs); $this->assertEquals($orphanIDs, $compareIDs); } } |