Source of file UserTemplatesExtensionTest.php
Size: 2,554 Bytes - Last Modified: 2021-12-23T10:35:46+00:00
/var/www/docs.ssmods.com/process/src/tests/UserTemplatesExtensionTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <?php namespace Symbiote\UserTemplates\Tests; use Page; use PageController; use SilverStripe\CMS\Model\SiteTree; use Symbiote\UserTemplates\UserTemplate; use Symbiote\UserTemplates\UserTemplatesExtension; use Symbiote\UserTemplates\UserTemplatesControllerExtension; use SilverStripe\Dev\SapphireTest; class UserTemplatesExtensionTest extends SapphireTest { protected $usesDatabase = true; protected static $required_extensions = array( SiteTree::class => array(UserTemplatesExtension::class), PageController::class => array(UserTemplatesControllerExtension::class) ); public function testCreateUserDefinedTemplate() { $this->logInWithPermission(); $ut = new UserTemplate(); $ut->Title = 'Template 1'; $ut->Use = 'Layout'; $ut->Content = 'UserTemplate 1 $Content'; $ut->write(); $page = Page::create(); $page->Title = 'My page'; $page->Content = 'PageContent'; $page->write(); $out = $page->renderWith(array('Page', 'Page')); $this->assertTrue(strpos($out, 'PageContent') > 0); $this->assertTrue(strpos($out, 'UserTemplate 1') === false); // bind the user template $page->LayoutTemplateID = $ut->ID; $page->write(); $action = 'index'; $ctrl = PageController::create($page); $viewer = $ctrl->getViewer($action); // to mimic the patch needed for this module $ctrl->extend('updateViewer', $action, $viewer); $out = $viewer->process($ctrl); $this->assertTrue(strpos($out, 'UserTemplate 1 PageContent') > 0); } public function testRegenerateOnDelete() { $this->logInWithPermission(); $ut = new UserTemplate(); $ut->Title = 'Template 1'; $ut->Use = 'Layout'; $ut->Content = 'UserTemplate 1 $Content'; $ut->write(); $file = $ut->getTemplateFile(); clearstatcache(); $size = filesize($file); $this->assertTrue($size > 0); unlink($file); $file = $ut->getTemplateFile(); clearstatcache(); $size = filesize($file); $this->assertTrue($size > 0); } public function testRegenerateOnChange() { $this->logInWithPermission(); $ut = new UserTemplate(); $ut->Title = 'Template 1'; $ut->Use = 'Layout'; $ut->Content = 'UserTemplate 1 $Content'; $ut->write(); $file = $ut->getTemplateFile(); $ut->Content = "New template"; sleep(2); $ut->write(); $nextFile = $ut->getTemplateFile(); $basename = basename($nextFile); $this->assertNotEquals($file, $nextFile); $this->assertEquals($ut->Title . '-' . strtotime($ut->LastEdited) . '.ss', $basename); } } |