diff --git a/core/modules/field/tests/src/Functional/FieldStorageConfigAccessTest.php b/core/modules/field/tests/src/Functional/FieldStorageConfigAccessTest.php new file mode 100644 index 0000000..ae6025d --- /dev/null +++ b/core/modules/field/tests/src/Functional/FieldStorageConfigAccessTest.php @@ -0,0 +1,89 @@ +entity = FieldStorageConfig::create([ + 'field_name' => 'test', + 'entity_type' => 'node', + 'type' => 'boolean', + 'locked' => FALSE, + ]); + $this->entity->save(); + + $this->entity_locked = FieldStorageConfig::create([ + 'field_name' => 'test_locked', + 'entity_type' => 'node', + 'type' => 'boolean', + 'locked' => TRUE, + ]); + $this->entity_locked->save(); + + Role::load(RoleInterface::AUTHENTICATED_ID) + ->grantPermission('administer node fields') + ->save(); + $this->account = $this->createUser(); + } + + /** + * Test access to field storage config entity. + * + * @see FieldStorageConfigAccessControlHandler::checkAccess + */ + public function testAccess() { + $this->assertFalse($this->entity->access('view')); + $this->assertFalse($this->entity->access('update')); + $this->assertFalse($this->entity->access('delete')); + $this->assertFalse($this->entity_locked->access('delete')); + + $this->drupalLogin($this->account); + $this->assertTrue($this->entity->access('view')); + $this->assertTrue($this->entity->access('update')); + $this->assertTrue($this->entity->access('delete')); + $this->assertFalse($this->entity_locked->access('delete')); + } + +}