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

133 lines
3.7 KiB
PHP
Raw Normal View History

<?php
use SilverStripe\ORM\ArrayList;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\GridField\GridFieldConfig;
use SilverStripe\Forms\GridField\GridField_URLHandler;
/**
* @package framework
* @subpackage tests
*/
class GridFieldConfigTest extends SapphireTest {
public function testGetComponents() {
$config = GridFieldConfig::create();
$this->assertInstanceOf('SilverStripe\\ORM\\ArrayList', $config->getComponents());
$this->assertEquals($config->getComponents()->Count(), 0);
$config
->addComponent($c1 = new GridFieldConfigTest_MyComponent())
->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
$this->assertEquals(
2014-08-15 08:53:05 +02:00
new ArrayList(array($c1, $c2, $c3)),
$config->getComponents()
);
}
public function testGetComponentsByType() {
$config = GridFieldConfig::create()
->addComponent($c1 = new GridFieldConfigTest_MyComponent())
->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
$this->assertEquals(
2014-08-15 08:53:05 +02:00
new ArrayList(array($c1)),
$config->getComponentsByType('GridFieldConfigTest_MyComponent')
);
$this->assertEquals(
new ArrayList(array($c2, $c3)),
$config->getComponentsByType('GridFieldConfigTest_MyOtherComponent')
);
$this->assertEquals(
new ArrayList(array($c1, $c2, $c3)),
$config->getComponentsByType('SilverStripe\\Forms\\GridField\\GridField_URLHandler')
);
$this->assertEquals(
new ArrayList(),
$config->getComponentsByType('GridFieldConfigTest_UnknownComponent')
);
2014-08-15 08:53:05 +02:00
}
public function testGetComponentByType() {
$config = GridFieldConfig::create()
->addComponent($c1 = new GridFieldConfigTest_MyComponent())
->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
$this->assertEquals(
2014-08-15 08:53:05 +02:00
$c1,
$config->getComponentByType('GridFieldConfigTest_MyComponent')
);
$this->assertEquals(
$c2,
$config->getComponentByType('GridFieldConfigTest_MyOtherComponent')
);
$this->assertNull(
$config->getComponentByType('GridFieldConfigTest_UnknownComponent')
);
}
public function testAddComponents() {
$config = GridFieldConfig::create()
->addComponents(
$c1 = new GridFieldConfigTest_MyComponent(),
$c2 = new GridFieldConfigTest_MyOtherComponent()
);
$this->assertEquals(
2014-08-15 08:53:05 +02:00
$c1,
$config->getComponentByType('GridFieldConfigTest_MyComponent')
);
$this->assertEquals(
$c2,
$config->getComponentByType('GridFieldConfigTest_MyOtherComponent')
);
}
2014-08-15 08:53:05 +02:00
public function testRemoveComponents() {
$config = GridFieldConfig::create()
->addComponent($c1 = new GridFieldConfigTest_MyComponent())
->addComponent($c2 = new GridFieldConfigTest_MyComponent())
->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent())
->addComponent($c4 = new GridFieldConfigTest_MyOtherComponent());
$this->assertEquals(
2014-08-15 08:53:05 +02:00
4,
$config->getComponents()->count()
);
2014-08-15 08:53:05 +02:00
$config->removeComponent($c1);
$this->assertEquals(
2014-08-15 08:53:05 +02:00
3,
$config->getComponents()->count()
);
2014-08-15 08:53:05 +02:00
$config->removeComponentsByType("GridFieldConfigTest_MyComponent");
$this->assertEquals(
2014-08-15 08:53:05 +02:00
2,
$config->getComponents()->count()
);
2014-08-15 08:53:05 +02:00
$config->removeComponentsByType("GridFieldConfigTest_MyOtherComponent");
$this->assertEquals(
2014-08-15 08:53:05 +02:00
0,
$config->getComponents()->count()
);
}
2014-08-15 08:53:05 +02:00
}
class GridFieldConfigTest_MyComponent implements GridField_URLHandler, TestOnly {
public function getURLHandlers($gridField) {return array();}
}
class GridFieldConfigTest_MyOtherComponent implements GridField_URLHandler, TestOnly {
public function getURLHandlers($gridField) {return array();}
}