$user, 'PHP_AUTH_PW' => 'test', ]); //Test read/list access by access /new overview page $crawler = $client->request('GET', static::$base_path . '/new'); $this->assertFalse($client->getResponse()->isRedirect()); $this->assertEquals($read, $client->getResponse()->isSuccessful(), "Controller was not successful!"); $this->assertEquals($read, !$client->getResponse()->isForbidden(), "Permission Checking not working!"); } /** * @dataProvider readDataProvider * Tests if it possible to access an specific entity. Checks if permissions are working. */ public function testReadEntity(string $user, bool $read) { //Test read access $client = static::createClient([], [ 'PHP_AUTH_USER' => $user, 'PHP_AUTH_PW' => 'test', ]); //Test read/list access by access /new overview page $crawler = $client->request('GET', static::$base_path . '/1'); $this->assertFalse($client->getResponse()->isRedirect()); $this->assertEquals($read, $client->getResponse()->isSuccessful(), "Controller was not successful!"); $this->assertEquals($read, !$client->getResponse()->isForbidden(), "Permission Checking not working!"); } public function deleteDataProvider() { return [ ['noread', false], ['anonymous', false], ['user', true], ['admin', true] ]; } /** * Tests if deleting an entity is working. * @dataProvider deleteDataProvider */ public function testDeleteEntity(string $user, bool $delete) { //Test read access $client = static::createClient([], [ 'PHP_AUTH_USER' => $user, 'PHP_AUTH_PW' => 'test', ]); //Test read/list access by access /new overview page $crawler = $client->request('DELETE', static::$base_path . '/7'); //Page is redirected to '/new', when delete was successful $this->assertEquals($delete, $client->getResponse()->isRedirect(static::$base_path . '/new')); $this->assertEquals($delete, !$client->getResponse()->isForbidden(), "Permission Checking not working!"); } }