Skip to content

Commit

Permalink
TESTS CarouselPageExtensionTest initial (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
jsirish authored Oct 3, 2023
1 parent 095b1cd commit 86ecc06
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 21 deletions.
43 changes: 22 additions & 21 deletions src/Extension/CarouselPageExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\CompositeField;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\ToggleCompositeField;
use SilverStripe\Forms\GridField\GridFieldAddNewButton;
use SilverStripe\Forms\GridField\GridFieldFilterHeader;
use Symbiote\GridFieldExtensions\GridFieldOrderableRows;
Expand Down Expand Up @@ -72,27 +71,29 @@ class CarouselPageExtension extends DataExtension
*/
public function updateCMSFields(\SilverStripe\Forms\FieldList $fields)
{
$grid = GridField::create(
'Slides',
'Slides',
$this->owner->Slides(),
GridFieldConfig_RelationEditor::create()
);
$grid->getConfig()
->removeComponentsByType([
GridFieldAddNewButton::class,
GridFieldAddExistingAutocompleter::class,
GridFieldFilterHeader::class,
])
->addComponents([
$multiClass = GridFieldAddNewMultiClass::create(),
new GridFieldOrderableRows('SortOrder'),
new GridFieldAddExistingSearchButton(),
]);
if ($this->owner->exists()) {
$grid = GridField::create(
'Slides',
'Slides',
$this->owner->Slides(),
GridFieldConfig_RelationEditor::create()
);
$grid->getConfig()
->removeComponentsByType([
GridFieldAddNewButton::class,
GridFieldAddExistingAutocompleter::class,
GridFieldFilterHeader::class,
])
->addComponents([
$multiClass = GridFieldAddNewMultiClass::create(),
new GridFieldOrderableRows('SortOrder'),
new GridFieldAddExistingSearchButton(),
]);

$fields->addFieldsToTab('Root.Carousel', [
$grid,
]);
$fields->addFieldsToTab('Root.Carousel', [
$grid,
]);
}
}

/**
Expand Down
60 changes: 60 additions & 0 deletions tests/Extension/CarouselPageExtensionTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

namespace Dynamic\Carousel\Test\Extension;

use Dynamic\Carousel\Model\ImageSlide;
use SilverStripe\Forms\FieldList;
use SilverStripe\Dev\SapphireTest;
use Dynamic\Carousel\Test\Test\Page\TestPage;
use Dynamic\Carousel\Extension\CarouselPageExtension;

class CarouselPageExtensionTest extends SapphireTest
{
/**
* @var array
*/
protected static $extra_dataobjects = [
TestPage::class,
];

/**
* @var string
*/
protected static $fixture_file = 'carousel.yml';

/**
* @var array
*/
protected static $required_extensions = [
TestPage::class => [
CarouselPageExtension::class,
],
];

/**
* Tests updateCMSFields().
*/
public function testUpdateCMSFields()
{
$object = TestPage::create();
$fields = $object->getCMSFields();
$this->assertFalse($object->exists());
$this->assertNull($fields->dataFieldByName('Slides'));

$object->write();
$fields = $object->getCMSFields();
$this->assertInstanceOf(FieldList::class, $fields);
$this->assertNotNull($fields->dataFieldbyName('Slides'));
}

/**
* Tests getSlides().
*/
public function testGetSlides()
{
$object = TestPage::create();
$object->write();
$object->Slides()->add($this->objFromFixture(ImageSlide::class, 'one'));
$this->assertEquals(1, $object->Slides()->count());
}
}
4 changes: 4 additions & 0 deletions tests/Extension/carousel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Dynamic\Carousel\Model\ImageSlide:
one:
Title: 'Image Slide 1'
Content: 'Image Slide 1 Content'
10 changes: 10 additions & 0 deletions tests/Test/Page/TestPage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Dynamic\Carousel\Test\Test\Page;

use SilverStripe\Dev\TestOnly;

class TestPage extends \Page implements TestOnly
{
private static $table_name = 'Carousel_TestPage';
}

0 comments on commit 86ecc06

Please sign in to comment.