'type' => 'article',
'uid' => 1,
]);
// While the method is only used to check file fields it should work without
// error for any field whether it is a base field or a bundle field.
$base_field_definition =
$this->container->
get('entity_field.manager'
)->
getBaseFieldDefinitions('node'
)['title'
];
$bundle_field_definition =
$this->container->
get('entity_field.manager'
)->
getFieldDefinitions('node', 'article'
)['field_relationships'
];
// Tests the expected access result for each user.
// The $article_editor account can edit any article.
$result = TemporaryJsonapiFileFieldUploader::
checkFileUploadAccess($article_editor,
$base_field_definition,
$node);
$this->
assertTrue($result->
isAllowed());
// The article editor cannot create a node of undetermined type.
$result = TemporaryJsonapiFileFieldUploader::
checkFileUploadAccess($article_editor,
$base_field_definition);
$this->
assertFalse($result->
isAllowed());
// The article editor can edit any article.
$result = TemporaryJsonapiFileFieldUploader::
checkFileUploadAccess($article_editor,
$bundle_field_definition,
$node);
$this->
assertTrue($result->
isAllowed());
// The article editor can create an article. The type can be determined
// because the field is a bundle field.
$result = TemporaryJsonapiFileFieldUploader::
checkFileUploadAccess($article_editor,
$bundle_field_definition);
$this->
assertTrue($result->
isAllowed());