.../edit/Tests/EditEntityAccessCheckTest.php | 71 ------------------ .../edit/Tests/EditEntityFieldAccessCheckTest.php | 74 ------------------- .../edit/Access/EditEntityAccessCheckTest.php | 72 +++++++++++++++++++ .../edit/Access/EditEntityFieldAccessCheckTest.php | 75 ++++++++++++++++++++ .../Tests/Core/Entity/EntityAccessCheckTest.php | 3 +- 5 files changed, 148 insertions(+), 147 deletions(-) diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditEntityAccessCheckTest.php b/core/modules/edit/lib/Drupal/edit/Tests/EditEntityAccessCheckTest.php deleted file mode 100644 index d8acc82..0000000 --- a/core/modules/edit/lib/Drupal/edit/Tests/EditEntityAccessCheckTest.php +++ /dev/null @@ -1,71 +0,0 @@ - 'Edit entity access check test', - 'description' => 'Unit test of edit entity access check.', - 'group' => 'Edit' - ); - } - - /** - * Tests the appliesTo method for the access checker. - */ - public function testAppliesTo() { - $entity_access = new EditEntityAccessCheck(); - $this->assertEquals($entity_access->appliesTo(), array('_access_edit_entity'), 'Access checker returned the expected appliesTo() array.'); - } - - /** - * Tests the method for checking access to routes. - */ - public function testAccess() { - $route = new Route('/edit/entity/node/1', array(), array('_access_edit_entity' => 'TRUE')); - $request = new Request(); - - $editable_node = $this->getMockBuilder('Drupal\node\Plugin\Core\Entity\Node') - ->disableOriginalConstructor() - ->getMock(); - $editable_node->expects($this->any()) - ->method('access') - ->will($this->returnValue(TRUE)); - $access_check = new EditEntityAccessCheck(); - $request->attributes->set('entity', $editable_node); - $access = $access_check->access($route, $request); - $this->assertSame(AccessCheckInterface::ALLOW, $access); - - $readonly_node = $this->getMockBuilder('Drupal\node\Plugin\Core\Entity\Node') - ->disableOriginalConstructor() - ->getMock(); - $readonly_node->expects($this->any()) - ->method('access') - ->will($this->returnValue(FALSE)); - $access_check = new EditEntityAccessCheck(); - $request->attributes->set('entity', $readonly_node); - $access = $access_check->access($route, $request); - $this->assertSame(AccessCheckInterface::DENY, $access); - } - -} diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditEntityFieldAccessCheckTest.php b/core/modules/edit/lib/Drupal/edit/Tests/EditEntityFieldAccessCheckTest.php deleted file mode 100644 index 0fd0314..0000000 --- a/core/modules/edit/lib/Drupal/edit/Tests/EditEntityFieldAccessCheckTest.php +++ /dev/null @@ -1,74 +0,0 @@ - 'Edit entity field access check test', - 'description' => 'Unit test of edit entity field access check.', - 'group' => 'Edit' - ); - } - - /** - * Tests the appliesTo method for the access checker. - */ - public function testAppliesTo() { - $entity_access = new EditEntityFieldAccessCheck(); - $this->assertEquals($entity_access->appliesTo(), array('_access_edit_entity_field'), 'Access checker returned the expected appliesTo() array.'); - } - - /** - * Tests the method for checking access to routes. - */ - public function testAccess() { - $route = new Route('/edit/form/node/1/body/und/full', array(), array('_access_edit_entity_field' => 'TRUE')); - $request = new Request(); - - // @todo Until field_access(), field_info_field(), field_info_instance() and - // field_valid_language() are no longer global functions, it is nigh - // impossible to provide full test coverage for EditEntityFieldAccessCheck. - /* - $editable_node = $this->getMockBuilder('Drupal\node\Plugin\Core\Entity\Node') - ->disableOriginalConstructor() - ->getMock(); - $editable_node->expects($this->any()) - ->method('access') - ->will($this->returnValue(TRUE)); - $editable_field = 'TODO'; - $access_check = new EditEntityFieldAccessCheck(); - $request->attributes->set('entity', $editable_node); - $request->attributes->set('entity_type', 'node'); - $request->attributes->set('field_name', 'body'); - $request->attributes->set('langcode', 'und'); - $access = $access_check->access($route, $request); - $this->assertSame(AccessCheckInterface::ALLOW, $access); - - // Add the 3 other permutations: - // - editable entity, non-editable field - // - non-editable entity, editable field - // - non-editable entity, non-editable field - */ - } - -} diff --git a/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityAccessCheckTest.php b/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityAccessCheckTest.php new file mode 100644 index 0000000..e2a3b41 --- /dev/null +++ b/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityAccessCheckTest.php @@ -0,0 +1,72 @@ + 'Edit entity access check test', + 'description' => 'Unit test of edit entity access check.', + 'group' => 'Edit' + ); + } + + /** + * Tests the appliesTo method for the access checker. + */ + public function testAppliesTo() { + $entity_access = new EditEntityAccessCheck(); + $this->assertEquals($entity_access->appliesTo(), array('_access_edit_entity'), 'Access checker returned the expected appliesTo() array.'); + } + + /** + * Tests the method for checking access to routes. + */ + public function testAccess() { + $route = new Route('/edit/entity/node/1', array(), array('_access_edit_entity' => 'TRUE')); + $request = new Request(); + + $editable_node = $this->getMockBuilder('Drupal\node\Entity\Node') + ->disableOriginalConstructor() + ->getMock(); + $editable_node->expects($this->any()) + ->method('access') + ->will($this->returnValue(TRUE)); + $access_check = new EditEntityAccessCheck(); + $request->attributes->set('entity', $editable_node); + $access = $access_check->access($route, $request); + $this->assertSame(AccessCheckInterface::ALLOW, $access); + + $readonly_node = $this->getMockBuilder('Drupal\node\Entity\Node') + ->disableOriginalConstructor() + ->getMock(); + $readonly_node->expects($this->any()) + ->method('access') + ->will($this->returnValue(FALSE)); + $access_check = new EditEntityAccessCheck(); + $request->attributes->set('entity', $readonly_node); + $access = $access_check->access($route, $request); + $this->assertSame(AccessCheckInterface::DENY, $access); + } + +} diff --git a/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityFieldAccessCheckTest.php b/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityFieldAccessCheckTest.php new file mode 100644 index 0000000..919994a --- /dev/null +++ b/core/modules/edit/lib/Drupal/edit/Tests/edit/Access/EditEntityFieldAccessCheckTest.php @@ -0,0 +1,75 @@ + 'Edit entity field access check test', + 'description' => 'Unit test of edit entity field access check.', + 'group' => 'Edit' + ); + } + + /** + * Tests the appliesTo method for the access checker. + */ + public function testAppliesTo() { + $entity_access = new EditEntityFieldAccessCheck(); + $this->assertEquals($entity_access->appliesTo(), array('_access_edit_entity_field'), 'Access checker returned the expected appliesTo() array.'); + } + + /** + * Tests the method for checking access to routes. + */ + public function testAccess() { + $route = new Route('/edit/form/node/1/body/und/full', array(), array('_access_edit_entity_field' => 'TRUE')); + $request = new Request(); + + // @todo Until field_access(), field_info_field(), field_info_instance() and + // field_valid_language() are no longer global functions, it is nigh + // impossible to provide full test coverage for EditEntityFieldAccessCheck. + /* + $editable_node = $this->getMockBuilder('Drupal\node\\Entity\Node') + ->disableOriginalConstructor() + ->getMock(); + $editable_node->expects($this->any()) + ->method('access') + ->will($this->returnValue(TRUE)); + $editable_field = 'TODO'; + $access_check = new EditEntityFieldAccessCheck(); + $request->attributes->set('entity', $editable_node); + $request->attributes->set('entity_type', 'node'); + $request->attributes->set('field_name', 'body'); + $request->attributes->set('langcode', 'und'); + $access = $access_check->access($route, $request); + $this->assertSame(AccessCheckInterface::ALLOW, $access); + + // Add the 3 other permutations: + // - editable entity, non-editable field + // - non-editable entity, editable field + // - non-editable entity, non-editable field + */ + } + +} diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php index 54ef601..18a5403 100644 --- a/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/EntityAccessCheckTest.php @@ -9,7 +9,6 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Route; -use Drupal\Core\Access\AccessCheckInterface; use Drupal\Core\Entity\EntityAccessCheck; use Drupal\Tests\UnitTestCase; @@ -51,7 +50,7 @@ public function testAccess() { $access_check = new EntityAccessCheck(); $request->attributes->set('node', $node); $access = $access_check->access($route, $request); - $this->assertSame(AccessCheckInterface::ALLOW, $access); + $this->assertEquals(TRUE, $access); } }