Source of file SiteTreeExtensionTest.php
Size: 2,729 Bytes - Last Modified: 2021-12-23T10:28:10+00:00
/var/www/docs.ssmods.com/process/src/tests/php/SiteTreeExtensionTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | <?php namespace SilverStripe\CampaignAdmin\Tests; use SilverStripe\CampaignAdmin\SiteTreeExtension; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Dev\SapphireTest; use SilverStripe\Versioned\Versioned; class SiteTreeExtensionTest extends SapphireTest { protected $usesDatabase = true; protected static $required_extensions = [ SiteTree::class => [ SiteTreeExtension::class, ], ]; public function testAddToCampaignButtonIsAdded() { $this->logInWithPermission(); $page = new SiteTree(); $page->CanEditType = 'LoggedInUsers'; $page->write(); $page->publishRecursive(); $actions = $page->getCMSActions(); $addToCampaignAction = $actions->dataFieldByName('action_addtocampaign'); $this->assertNotNull($addToCampaignAction, 'Add To Campaign button should have been added'); } public function testAddToCampaignButtonIsNotAddedWhenUserDoesNotHavePermission() { $this->logInWithPermission('EDIT_PERMISSIONS'); $page = new SiteTree(); $page->CanEditType = 'LoggedInUsers'; $page->write(); $page->publishRecursive(); $actions = $page->getCMSActions(); $addToCampaignAction = $actions->dataFieldByName('action_addtocampaign'); $this->assertNull( $addToCampaignAction, 'Add To Campaign button should not be shown to users without permission' ); } public function testActionsDeletedFromStageRecord() { $this->logInWithPermission(); $page = new SiteTree(); $page->CanEditType = 'LoggedInUsers'; $pageID = $page->write(); $page->publishRecursive(); $page->deleteFromStage('Stage'); // Get the live version of the page $page = Versioned::get_one_by_stage(SiteTree::class, "Live", "\"SiteTree\".\"ID\" = $pageID"); $this->assertInstanceOf(SiteTree::class, $page); $actions = $page->getCMSActions(); // Theoretically allow deletions to be staged via add to campaign $this->assertNotNull($actions->dataFieldByName('action_addtocampaign')); } public function testActionsChangedOnStageRecord() { $this->logInWithPermission(); $page = new SiteTree(); $page->CanEditType = 'LoggedInUsers'; $page->write(); $page->publishRecursive(); $page->Content = 'Changed on Stage'; $page->write(); $page->flushCache(); // Reload latest version $page = SiteTree::get()->byID($page->ID); $actions = $page->getCMSActions(); $this->assertNotNull($actions->dataFieldByName('action_addtocampaign')); } } |