public function testDeleteActionRemoveRelation() { $this->logInWithPermission('ADMIN'); $config = GridFieldConfig::create()->addComponent(new GridFieldDeleteAction(true)); $gridField = new GridField('testfield', 'testfield', $this->list, $config); $form = new Form(new Controller(), 'mockform', new FieldList(array($this->gridField)), new FieldList()); $stateID = 'testGridStateActionField'; Session::set($stateID, array('grid' => '', 'actionName' => 'deleterecord', 'args' => array('RecordID' => $this->idFromFixture('GridFieldAction_Delete_Team', 'team1')))); $request = new SS_HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true)); $this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request); $this->assertEquals(2, $this->list->count(), 'User should be able to delete records with ADMIN permission.'); }
public function testSortActionWithAdminPermission() { $team1 = $this->objFromFixture('GridFieldAction_SortOrder_Team', 'team1'); $team2 = $this->objFromFixture('GridFieldAction_SortOrder_Team', 'team2'); $team3 = $this->objFromFixture('GridFieldAction_SortOrder_Team', 'team3'); $this->logInWithPermission('ADMIN'); $stateID = 'testGridStateActionField'; Session::set($stateID, array('grid' => '', 'actionName' => 'saveGridRowSort', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true)))); $request = new SS_HTTPRequest('POST', 'url', array('ItemIDs' => "{$team1->ID}, {$team3->ID}, {$team2->ID}"), array('action_gridFieldAlterAction?StateID=' . $stateID => true)); $this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request); $this->assertEquals($team2->ID, $this->list->last()->ID, 'User should be able to sort records with ADMIN permission.'); }
public function testAppendToTopAutoSort() { if (Member::currentUser()) { Member::currentUser()->logOut(); } $this->gridField->getConfig()->getComponentByType('GridFieldSortableRows')->setAppendToTop(true); $this->assertEquals(0, $this->list->last()->SortOrder, 'Auto sort should not have run'); $stateID = 'testGridStateActionField'; Session::set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true)))); $request = new SS_HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true)); $this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request); //Insure sort ran $this->assertEquals(3, $this->list->last()->SortOrder, 'Auto sort should have run'); //Check for duplicates (there shouldn't be any) $count = $this->list->Count(); $indexes = count(array_unique($this->list->column('SortOrder'))); $this->assertEquals(0, $count - $indexes, 'Duplicate indexes detected'); }
/** * @covers GridField::gridFieldAlterAction */ public function testGridFieldAlterAction() { $config = GridFieldConfig::create()->addComponent(new GridFieldTest_Component()); $obj = new GridField('testfield', 'testfield', ArrayList::create(), $config); $id = 'testGridStateActionField'; Session::set($id, array('grid' => '', 'actionName' => 'jump')); $form = new Form(new Controller(), 'mockform', new FieldList(array($obj)), new FieldList()); $request = new SS_HTTPRequest('POST', 'url'); $obj->gridFieldAlterAction(array('StateID' => $id), $form, $request); }