Source of file SecuredFilesystemTest.php
Size: 7,842 Bytes - Last Modified: 2021-12-24T06:44:15+00:00
/var/www/docs.ssmods.com/process/src/tests/SecuredFilesystemTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | <?php /** * * @author Deviate Ltd 2014-2015 http://www.deviate.net.nz * @package silverstripe-advancedassets */ class SecuredFilesystemTest extends SapphireTest { /** * Exercises SecuredFilesystem::get_numeric_identifier() with both types of expected controller * Ensures expected outputs given a variety of inputs * * @todo Add 'ParentID' ensure this works as expected * @todo Test with "unexpected" class, assert exedcption or error thrown as expecced (Zero is returned) */ public function testGetNumericIdentifierGet() { $controller = $this->getTestController(array('ID' => '40'), 'GET', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ID' => '40'), 'GET', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ID' => '0'), 'GET', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ID' => '0'), 'GET', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ParentID' => '40'), 'GET', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ParentID' => '40'), 'GET', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ParentID' => '0'), 'GET', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ParentID' => '0'), 'GET', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('DUMMY' => '40'), 'GET', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('DUMMY' => '40'), 'GET', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ID' => '40'), 'GET', Controller::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); } /** * Exercises SecuredFilesystem::get_numeric_identifier() with both types of expected controller * Ensures expected outputs given a variety of inputs * * @todo Add 'ParentID' ensure this works as expected * @todo Test with "unexpected" class, assert exedcption or error thrown as expecced (Zero is returned) */ public function testGetNumericIdentifierPost() { $controller = $this->getTestController(array('ID' => '40'), 'POST', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ID' => '40'), 'POST', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ID' => '0'), 'POST', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ID' => '0'), 'POST', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ParentID' => '40'), 'POST', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ParentID' => '40'), 'POST', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(40, $result); $controller = $this->getTestController(array('ParentID' => '0'), 'POST', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ParentID' => '0'), 'POST', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ParentID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('DUMMY' => '40'), 'POST', AssetAdmin::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('DUMMY' => '40'), 'POST', CMSFileAddController::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); $controller = $this->getTestController(array('ID' => '40'), 'POST', Controller::create()); $result = SecuredFilesystem::get_numeric_identifier($controller, 'ID'); $this->assertInternalType('integer', $result); $this->assertEquals(0, $result); } /** * * @param array $vars * @param string $method * @pram Controller $controller * @return Controller */ private function getTestController($vars, $method, $controller) { if ($method == 'POST') { $getVars = array(); $postVars = $vars; } else { $getVars = $vars; $postVars = array(); } $request = new SS_HTTPRequest($method, '/admin/assets', $getVars, $postVars); $controller->setRequest($request); return $controller; } } |