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');
 }
示例#3
0
 public function testFirstLast()
 {
     $list = new ArrayList(array(array('Key' => 1), array('Key' => 2), array('Key' => 3)));
     $this->assertEquals($list->first(), array('Key' => 1));
     $this->assertEquals($list->last(), array('Key' => 3));
 }
示例#4
0
	public function testMultiSort() {
		$list = new ArrayList(array(
			(object) array('ID'=>3, 'Name'=>'Bert', 'Importance'=>1),
			(object) array('ID'=>1, 'Name'=>'Aron', 'Importance'=>2),
			(object) array('ID'=>2, 'Name'=>'Aron', 'Importance'=>1),
		));
		
		$list->sort(array('Name'=>'ASC', 'Importance'=>'ASC'));
		$this->assertEquals($list->first()->ID, 2, 'Aron.2 should be first in the list');
		$this->assertEquals($list->last()->ID, 3, 'Bert.3 should be last in the list');
		
		$list->sort(array('Name'=>'ASC', 'Importance'=>'DESC'));
		$this->assertEquals($list->first()->ID, 1, 'Aron.2 should be first in the list');
		$this->assertEquals($list->last()->ID, 3, 'Bert.3 should be last in the list');
	}
示例#5
0
 public function testMultiSort()
 {
     $list = new ArrayList(array((object) array('Name' => 'Object1', 'F1' => 1, 'F2' => 2, 'F3' => 3), (object) array('Name' => 'Object2', 'F1' => 2, 'F2' => 1, 'F3' => 4), (object) array('Name' => 'Object3', 'F1' => 5, 'F2' => 2, 'F3' => 2)));
     $list->sort('F3', 'ASC');
     $this->assertEquals($list->first()->Name, 'Object3', 'Object3 should be first in the list');
     $list->sort('F3', 'DESC');
     $this->assertEquals($list->first()->Name, 'Object2', 'Object2 should be first in the list');
     $list->sort(array('F2' => 'ASC', 'F1' => 'ASC'));
     $this->assertEquals($list->last()->Name, 'Object3', 'Object3 should be last in the list');
     $list->sort(array('F2' => 'ASC', 'F1' => 'DESC'));
     $this->assertEquals($list->last()->Name, 'Object1', 'Object1 should be last in the list');
 }