/**
  * @param string $name
  * @param string $title
  * @param SS_List $dataList
  * @param GridFieldConfig $config
  */
 public function __construct($name, $title = null, SS_List $dataList = null, GridFieldConfig $config = null)
 {
     parent::__construct($name, $title, null);
     $this->name = $name;
     if ($dataList) {
         $this->setList($dataList);
     }
     if (!$config) {
         $config = GridFieldConfig_Base::create();
     }
     $this->setConfig($config);
     $state = $this->config->getComponentByType('SilverStripe\\Forms\\GridField\\GridState_Component');
     if (!$state) {
         $this->config->addComponent(new GridState_Component());
     }
     $this->state = new GridState($this);
     $this->addExtraClass('grid-field');
 }
 public function testChainedDataManipulators()
 {
     $config = new GridFieldConfig();
     $data = new ArrayList(array(1, 2, 3, 4, 5, 6));
     $gridField = new GridField('testfield', 'testfield', $data, $config);
     $endList = $gridField->getManipulatedList();
     $this->assertEquals($endList->Count(), 6);
     $config->addComponent(new GridFieldTest_Component2());
     $endList = $gridField->getManipulatedList();
     $this->assertEquals($endList->Count(), 12);
     $config->addComponent(new GridFieldPaginator(10));
     $endList = $gridField->getManipulatedList();
     $this->assertEquals($endList->Count(), 10);
 }