Source of file BannerBlockTest.php
Size: 2,080 Bytes - Last Modified: 2021-12-23T10:29:57+00:00
/var/www/docs.ssmods.com/process/src/tests/Block/BannerBlockTest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | <?php namespace SilverStripe\ElementalBlocks\Tests\Block; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Dev\SapphireTest; use SilverStripe\ElementalBlocks\Block\BannerBlock; use SilverStripe\Forms\HTMLEditor\TinyMCEConfig; use SilverStripe\View\ArrayData; use SilverStripe\View\Requirements; class BannerBlockTest extends SapphireTest { protected static $fixture_file = 'BannerBlockTest.yml'; public function testTinyMceJavascriptIsRequiredBeforeBlocks() { $block = new BannerBlock(); $block->getCMSFields(); $javascript = Requirements::backend()->getJavascript(); // Ensure TinyMCE's scripts are loaded first $mcePath = TinyMCEConfig::get()->getScriptURL(); $this->assertArrayHasKey($mcePath, $javascript, 'TinyMCE is loaded first'); // By pushing the bundle reference again, the size of the requirements shouldn't change $this->assertNotEmpty($javascript); Requirements::javascript('silverstripe/elemental-blocks:client/dist/js/bundle.js'); $this->assertSame( count($javascript), count(Requirements::backend()->getJavascript()), 'Blocks bundle is added' ); } public function testCallToActionLink() { $block = new BannerBlock(); $this->assertNull($block->CallToActionLink(), 'No link data set returns null'); $block->CallToActionLink = json_encode([ 'PageID' => $this->idFromFixture(SiteTree::class, 'test_page'), 'Text' => 'Click here', 'Description' => 'Link title text', 'TargetBlank' => true, ]); $result = $block->CallToActionLink(); $this->assertInstanceOf(ArrayData::class, $result, 'ArrayData object is returned'); $this->assertEquals($this->idFromFixture(SiteTree::class, 'test_page'), $result->Page->ID, 'Page is attached'); $this->assertInstanceOf(SiteTree::class, $result->Page); $this->assertSame('Link title text', $result->Description, 'Link attributes are available'); } } |