Re-worked unit tests for Silverstripe 4.4+ compatibility

This commit is contained in:
UndefinedOffset 2020-05-29 10:44:04 -03:00
parent dd955ff1bb
commit 74756cad52
No known key found for this signature in database
GPG Key ID: 59C4EE2B6468B796
3 changed files with 49 additions and 57 deletions

View File

@ -4,20 +4,17 @@ namespace UndefinedOffset\SortableGridField\Tests;
use SilverStripe\Control\Controller;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Control\Session;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\Form;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig;
use SilverStripe\ORM\DataList;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DB;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\FieldType\DBInt;
use SilverStripe\ORM\FieldType\DBVarchar;
use SilverStripe\Security\Member;
use SilverStripe\Security\Security;
use SilverStripe\Versioned\Versioned;
use UndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
@ -42,8 +39,8 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
public function testAutoSort()
{
if (Member::currentUser()) {
Member::currentUser()->logOut();
if (Security::getCurrentUser()) {
$this->logOut();
}
$list = GridFieldAction_SortOrder_Player::get();
@ -53,10 +50,10 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $form->getSecurityToken()->getName() => $form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($form->getSecurityToken()->getName(), $form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$gridField->gridFieldAlterAction(array('StateID' => $stateID), $form, $request);
@ -72,8 +69,8 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
public function testAppendToTopAutoSort()
{
if (Member::currentUser()) {
Member::currentUser()->logOut();
if (Security::getCurrentUser()) {
$this->logOut();
}
$list = GridFieldAction_SortOrder_Player::get();
@ -89,10 +86,10 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $form->getSecurityToken()->getName() => $form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($form->getSecurityToken()->getName(), $form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$gridField->gridFieldAlterAction(array('StateID' => $stateID), $form, $request);
//Insure sort ran
@ -107,8 +104,8 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
public function testAutoSortVersioned()
{
if (Member::currentUser()) {
Member::currentUser()->logOut();
if (Security::getCurrentUser()) {
$this->logOut();
}
//Force versioned to reset
@ -128,10 +125,10 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $form->getSecurityToken()->getName() => $form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($form->getSecurityToken()->getName(), $form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$gridField->gridFieldAlterAction(array('StateID' => $stateID), $form, $request);
@ -164,8 +161,8 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
public function testAppendToTopAutoSortVersioned()
{
if (Member::currentUser()) {
Member::currentUser()->logOut();
if (Security::getCurrentUser()) {
$this->logOut();
}
//Force versioned to reset
@ -191,10 +188,10 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $form->getSecurityToken()->getName() => $form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($form->getSecurityToken()->getName(), $form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$gridField->gridFieldAlterAction(array('StateID' => $stateID), $form, $request);
@ -223,8 +220,8 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
public function testAppendToTopAutoSortChild()
{
if (Member::currentUser()) {
Member::currentUser()->logOut();
if (Security::getCurrentUser()) {
$this->logOut();
}
//Push the edit date into the past, we're checking this later
@ -249,10 +246,10 @@ class GridFieldSortableRowsAutoSortTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array(), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $form->getSecurityToken()->getName() => $form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($form->getSecurityToken()->getName(), $form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortableRowsToggle', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$gridField->gridFieldAlterAction(array('StateID' => $stateID), $form, $request);
//Insure sort ran

View File

@ -4,15 +4,12 @@ namespace UndefinedOffset\SortableGridField\Tests;
use SilverStripe\Control\Controller;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Control\Session;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\Form;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_Base;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\FieldType\DBInt;
use SilverStripe\ORM\FieldType\DBVarchar;
@ -62,10 +59,10 @@ class GridFieldSortableRowsPageTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemID' => $team3->ID, 'Target' => 'nextpage'), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortToPage', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true), 'GridFieldPaginator' => array('currentPage' => 1))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);
$team6 = $this->objFromFixture('UndefinedOffset\SortableGridField\Tests\GridFieldAction_PageSortOrder_Team', 'team6');
@ -84,10 +81,10 @@ class GridFieldSortableRowsPageTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemID' => $team7->ID, 'Target' => 'previouspage'), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortToPage', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true), 'GridFieldPaginator' => array('currentPage' => 1))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);
@ -122,10 +119,10 @@ class GridFieldSortableRowsPageTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemID' => $team3->ID, 'Target' => 'nextpage'), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortToPage', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true), 'GridFieldPaginator' => array('currentPage' => 1))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);
@ -169,10 +166,10 @@ class GridFieldSortableRowsPageTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemID' => $team7->ID, 'Target' => 'previouspage'), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'sortToPage', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true), 'GridFieldPaginator' => array('currentPage' => 1))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);

View File

@ -2,16 +2,14 @@
namespace UndefinedOffset\SortableGridField\Tests;
use SilverStripe\Control\Controller;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Control\Session;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\Form;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\ValidationException;
use SilverStripe\ORM\FieldType\DBInt;
@ -61,10 +59,10 @@ class GridFieldSortableRowsTest extends SapphireTest
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemIDs' => "$team1->ID, $team3->ID, $team2->ID"), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'saveGridRowSort', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);
$this->assertEquals($team3->ID, $this->list->last()->ID, 'User should\'t be able to sort records without correct permissions.');
}
@ -77,10 +75,10 @@ class GridFieldSortableRowsTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemIDs' => "$team1->ID, $team3->ID, $team2->ID"), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'saveGridRowSort', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$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.');
}
@ -109,10 +107,10 @@ class GridFieldSortableRowsTest extends SapphireTest
$this->logInWithPermission('ADMIN');
$stateID = 'testGridStateActionField';
$request = new HTTPRequest('POST', 'url', array('ItemIDs' => "$team1->ID, $team3->ID, $team2->ID"), array('action_gridFieldAlterAction?StateID=' . $stateID => true, $this->form->getSecurityToken()->getName() => $this->form->getSecurityToken()->getValue()));
$session = Injector::inst()->create(Session::class, []);
$request->setSession($session);
$session->init($request);
$session = Controller::curr()->getRequest()->getSession();
$session->set($this->form->getSecurityToken()->getName(), $this->form->getSecurityToken()->getValue());
$session->set($stateID, array('grid' => '', 'actionName' => 'saveGridRowSort', 'args' => array('GridFieldSortableRows' => array('sortableToggle' => true))));
$request->setSession($session);
$this->gridField->gridFieldAlterAction(array('StateID' => $stateID), $this->form, $request);
$this->assertEquals($team2->ID, $list->last()->ID, 'Sort should have happened on Versioned stage "Stage"');