silverstripe-framework/tests/php/Forms/GridField/GridFieldVersionTagTest.php

78 lines
2.5 KiB
PHP

<?php
namespace SilverStripe\Forms\Tests\GridField;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\Tests\GridField\GridFieldTest\Cheerleader;
use SilverStripe\Forms\Tests\GridField\GridFieldTest\Team;
use SilverStripe\Versioned\Versioned;
use SilverStripe\Forms\GridField\GridFieldVersionTag;
class GridFieldVersionTagTest extends SapphireTest
{
protected static $fixture_file = 'GridFieldVersionTagTest.yml';
protected static $extra_dataobjects = [
Cheerleader::class,
Team::class,
];
protected static $required_extensions = [
Cheerleader::class => [
Versioned::class,
],
];
public function testGetColumnContent()
{
$team = Team::get();
$cheerleader = Cheerleader::get()->first();
$gridField = new GridField('TestGridField', 'TestGridFields', $team);
$columns = $gridField->getConfig()->getComponentByType(GridFieldVersionTag::class);
$nameColumn = $columns->getColumnContent($gridField, $team->first(), 'Name');
$this->assertEquals(
$nameColumn,
' <span class="ss-gridfield-badge badge status-modified" title="Item has unpublished changes">Modified</span>'
);
$cheerleader->publishRecursive();
$nameColumn = $columns->getColumnContent($gridField, $team->first(), 'Name');
$this->assertEquals($nameColumn, '');
}
public function testAugmentColumns()
{
$team = Team::get();
$cheerleader = Cheerleader::get()->first();
$gridField = new GridField('TestGridField', 'TestGridFields', $team);
$columns = $gridField->getConfig()->getComponentByType(GridFieldVersionTag::class);
$columns->setVersionedLabelFields(['Title']);
$column = $columns->getVersionedLabelFields();
$this->assertEquals($column, ['Title']);
$augmentColumns = ['Name', 'Title', 'ID'];
$columns->augmentColumns($gridField, $augmentColumns);
$nameColumn = $columns->getColumn();
$this->assertEquals($nameColumn, 'Title');
$columns->setVersionedLabelFields(['Non-Title']);
$column = $columns->getVersionedLabelFields();
$this->assertEquals($column, ['Non-Title']);
$columns->augmentColumns($gridField, $augmentColumns);
$nameColumn = $columns->getColumn();
$this->assertNotEquals($nameColumn, 'Non-Title');
$this->assertEquals($nameColumn, 'Title');
}
}