update drupal

This commit is contained in:
Tessier
2020-10-15 11:59:37 +02:00
parent ebb5db14b5
commit d8b9162932
558 changed files with 5954 additions and 4475 deletions
+2 -2
View File
@@ -63,7 +63,7 @@ use Drupal\Core\Access\AccessResult;
*
* @see https://github.com/json-api/json-api/pull/1268
* @see https://github.com/json-api/json-api/pull/1311
* @see https://www.drupal.org/project/jsonapi/issues/2955020
* @see https://www.drupal.org/project/drupal/issues/2955020
*
* By implementing revision support as a profile, the JSON:API module should be
* maximally compatible with other systems.
@@ -117,7 +117,7 @@ use Drupal\Core\Access\AccessResult;
* It is not yet possible to request a collection of revisions. This is still
* under development in issue [#3009588].
*
* @see https://www.drupal.org/project/jsonapi/issues/3009588.
* @see https://www.drupal.org/project/drupal/issues/3009588.
* @see https://tools.ietf.org/html/rfc5829
* @see https://www.drupal.org/docs/8/modules/jsonapi/revisions
*
@@ -31,7 +31,7 @@ use Symfony\Component\Routing\RouterInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityAccessChecker {
@@ -238,7 +238,7 @@ class EntityAccessChecker {
*
* @todo: remove when a generic revision access API exists in Drupal core, and
* also remove the injected "node" and "media" services.
* @see https://www.drupal.org/project/jsonapi/issues/2992833#comment-12818386
* @see https://www.drupal.org/project/drupal/issues/2992833#comment-12818386
*/
protected function checkRevisionViewAccess(EntityInterface $entity, AccountInterface $account) {
assert($entity instanceof RevisionableInterface);
@@ -257,7 +257,7 @@ class EntityAccessChecker {
default:
$reason = 'Only node and media revisions are supported by JSON:API.';
$reason .= ' For context, see https://www.drupal.org/project/jsonapi/issues/2992833#comment-12818258.';
$reason .= ' For context, see https://www.drupal.org/project/drupal/issues/2992833#comment-12818258.';
$reason .= ' To contribute, see https://www.drupal.org/project/drupal/issues/2350939 and https://www.drupal.org/project/drupal/issues/2809177.';
$access = AccessResult::neutral($reason);
}
@@ -20,7 +20,7 @@ use Symfony\Component\Routing\Route;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class RelationshipFieldAccess implements AccessInterface {
@@ -32,7 +32,7 @@ use Drupal\jsonapi\Query\Filter;
* @see https://www.drupal.org/project/drupal/issues/2809177
* @see https://www.drupal.org/project/drupal/issues/777578
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class TemporaryQueryGuard {
@@ -67,7 +67,7 @@ use Drupal\Core\Http\Exception\CacheableBadRequestHttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class FieldResolver {
@@ -256,18 +256,21 @@ class FieldResolver {
* The JSON:API resource type from which to resolve the field name.
* @param string $external_field_name
* The public field name to map to a Drupal field name.
* @param string $operator
* (optional) The operator of the condition for which the path should be
* resolved.
*
* @return string
* The mapped field name.
*
* @throws \Drupal\Core\Http\Exception\CacheableBadRequestHttpException
*/
public function resolveInternalEntityQueryPath($resource_type, $external_field_name) {
public function resolveInternalEntityQueryPath($resource_type, $external_field_name, $operator = NULL) {
$function_args = func_get_args();
// @todo Remove this conditional block in drupal:9.0.0 and add a type hint
// to the first argument of this method.
// @see https://www.drupal.org/project/drupal/issues/3078045
if (count($function_args) === 3) {
if (count($function_args) === 3 && is_string($resource_type)) {
@trigger_error('Passing the entity type ID and bundle to ' . __METHOD__ . ' is deprecated in drupal:8.8.0 and will throw a fatal error in drupal:9.0.0. Pass a JSON:API resource type instead. See https://www.drupal.org/node/3078036', E_USER_DEPRECATED);
list($entity_type_id, $bundle, $external_field_name) = $function_args;
$resource_type = $this->resourceTypeRepository->get($entity_type_id, $bundle);
@@ -368,7 +371,10 @@ class FieldResolver {
// If there are no remaining path parts, the process is finished unless
// the field has multiple properties, in which case one must be specified.
if (empty($parts)) {
if ($property_specifier_needed) {
// If the operator is asserting the presence or absence of a
// relationship entirely, it does not make sense to require a property
// specifier.
if ($property_specifier_needed && (!$at_least_one_entity_reference_field || !in_array($operator, ['IS NULL', 'IS NOT NULL'], TRUE))) {
$possible_specifiers = array_map(function ($specifier) use ($at_least_one_entity_reference_field) {
return $at_least_one_entity_reference_field && $specifier !== 'id' ? "meta.$specifier" : $specifier;
}, $candidate_property_names);
@@ -538,7 +544,7 @@ class FieldResolver {
*/
protected function isMemberFilterable($external_name, array $resource_types) {
return array_reduce($resource_types, function ($carry, ResourceType $resource_type) use ($external_name) {
// @todo: remove the next line and uncomment the following one in https://www.drupal.org/project/jsonapi/issues/3017047.
// @todo: remove the next line and uncomment the following one in https://www.drupal.org/project/drupal/issues/3017047.
return $carry ?: $external_name === 'id' || $resource_type->isFieldEnabled($resource_type->getInternalName($external_name));
/*return $carry ?: in_array($external_name, ['id', 'type']) || $resource_type->isFieldEnabled($resource_type->getInternalName($external_name));*/
}, FALSE);
@@ -640,7 +646,7 @@ class FieldResolver {
$prior_parts = array_slice($unresolved_path_parts, 0, count($unresolved_path_parts) - count($remaining_parts));
return implode('.', array_merge($prior_parts, [$reference_name], $remaining_parts));
}, $unique_reference_names);
// @todo Add test coverage for this in https://www.drupal.org/project/jsonapi/issues/2971281
// @todo Add test coverage for this in https://www.drupal.org/project/drupal/issues/2971281
$message = sprintf('Ambiguous path. Try one of the following: %s, in place of the given path: %s', implode(', ', $choices), implode('.', $unresolved_path_parts));
$cacheability = (new CacheableMetadata())->addCacheContexts(['url.query_args:filter', 'url.query_args:sort']);
throw new CacheableBadRequestHttpException($cacheability, $message);
@@ -65,7 +65,7 @@ use Symfony\Component\Serializer\SerializerInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityResource {
@@ -307,7 +307,7 @@ class EntityResource {
*/
public function patchIndividual(ResourceType $resource_type, EntityInterface $entity, Request $request) {
if ($entity instanceof RevisionableInterface && !($entity->isLatestRevision() && $entity->isDefaultRevision())) {
throw new BadRequestHttpException('Updating a resource object that has a working copy is not yet supported. See https://www.drupal.org/project/jsonapi/issues/2795279.');
throw new BadRequestHttpException('Updating a resource object that has a working copy is not yet supported. See https://www.drupal.org/project/drupal/issues/2795279.');
}
$parsed_entity = $this->deserialize($resource_type, $request, JsonApiDocumentTopLevel::class);
@@ -408,7 +408,7 @@ class EntityResource {
catch (\LogicException $e) {
// Ensure good DX when an entity query involves a config entity type.
// For example: getting users with a particular role, which is a config
// entity type: https://www.drupal.org/project/jsonapi/issues/2959445.
// entity type: https://www.drupal.org/project/drupal/issues/2959445.
// @todo Remove the message parsing in https://www.drupal.org/project/drupal/issues/3028967.
if (strpos($e->getMessage(), 'Getting the base fields is not supported for entity type') === 0) {
preg_match('/entity type (.*)\./', $e->getMessage(), $matches);
@@ -23,7 +23,7 @@ use Symfony\Component\Routing\Exception\RouteNotFoundException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntryPoint extends ControllerBase {
@@ -34,7 +34,7 @@ use Symfony\Component\Validator\ConstraintViolationInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class FileUpload {
@@ -179,7 +179,7 @@ class FileUpload {
throw new UnprocessableEntityHttpException($message);
}
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$self_link = new Link(new CacheableMetadata(), Url::fromRoute('jsonapi.file--file.individual', ['entity' => $file->uuid()]), 'self');
/* $self_link = new Link(new CacheableMetadata(), $this->entity->toUrl('jsonapi'), ['self']); */
$links = new LinkCollection(['self' => $self_link]);
@@ -17,7 +17,7 @@ use Symfony\Component\DependencyInjection\Reference;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class RegisterSerializationClassesCompilerPass extends DrupalRegisterSerializationClassesCompilerPass {
@@ -10,7 +10,7 @@ use Drupal\serialization\Encoder\JsonEncoder as SerializationJsonEncoder;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class JsonEncoder extends SerializationJsonEncoder {
@@ -12,7 +12,7 @@ use Drupal\jsonapi\Exception\UnprocessableHttpEntityException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
trait EntityValidationTrait {
@@ -18,7 +18,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class DefaultExceptionSubscriber extends SerializationDefaultExceptionSubscriber {
@@ -16,7 +16,7 @@ use Symfony\Component\HttpKernel\KernelEvents;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class JsonApiRequestValidator implements EventSubscriberInterface {
@@ -19,7 +19,7 @@ use Symfony\Component\Serializer\SerializerInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* This is 99% identical to:
@@ -20,7 +20,7 @@ use Symfony\Component\HttpKernel\KernelEvents;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\rest\EventSubscriber\ResourceResponseSubscriber
@@ -18,7 +18,7 @@ use Drupal\jsonapi\JsonApiResource\ResourceIdentifierTrait;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityAccessDeniedHttpException extends CacheableAccessDeniedHttpException implements ResourceIdentifierInterface {
@@ -71,7 +71,7 @@ class EntityAccessDeniedHttpException extends CacheableAccessDeniedHttpException
$error['reason'] = $entity_access->getReason();
}
$this->error = $error;
// @todo: remove this ternary operation in https://www.drupal.org/project/jsonapi/issues/2997594.
// @todo: remove this ternary operation in https://www.drupal.org/project/drupal/issues/2997594.
$this->resourceIdentifier = $entity ? ResourceIdentifier::fromEntity($entity) : NULL;
}
@@ -18,7 +18,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class UnprocessableHttpEntityException extends HttpException {
@@ -24,7 +24,7 @@ use Drupal\jsonapi\ResourceType\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class IncludeResolver {
@@ -11,7 +11,7 @@ use Drupal\jsonapi\Exception\EntityAccessDeniedHttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
abstract class Data implements \IteratorAggregate, \Countable {
@@ -11,7 +11,7 @@ use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* (The spec says the top-level `data` and `errors` members MUST NOT coexist.)
@@ -11,7 +11,7 @@ use Drupal\jsonapi\Exception\EntityAccessDeniedHttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class IncludedData extends ResourceObjectData {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\JsonApiResource;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format/#document-top-level
@@ -12,7 +12,7 @@ use Drupal\jsonapi\ResourceType\ResourceType;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class LabelOnlyResourceObject extends ResourceObject {
@@ -15,7 +15,7 @@ use Drupal\Core\Url;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see https://tools.ietf.org/html/rfc8288
@@ -10,7 +10,7 @@ use Drupal\Component\Assertion\Inspector;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class LinkCollection implements \IteratorAggregate {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\JsonApiResource;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class NullIncludedData extends IncludedData {
@@ -11,7 +11,7 @@ use Drupal\jsonapi\Exception\EntityAccessDeniedHttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class OmittedData extends ResourceObjectData {
@@ -16,7 +16,7 @@ use Drupal\jsonapi\Routing\Routes;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class Relationship implements TopLevelDataInterface {
@@ -10,7 +10,7 @@ use Drupal\Component\Assertion\Inspector;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class RelationshipData extends Data {
@@ -28,12 +28,12 @@ use Drupal\jsonapi\ResourceType\ResourceType;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format/#document-resource-object-relationships
* @see https://github.com/json-api/json-api/pull/1156#issuecomment-325377995
* @see https://www.drupal.org/project/jsonapi/issues/2864680
* @see https://www.drupal.org/project/drupal/issues/2864680
*/
class ResourceIdentifier implements ResourceIdentifierInterface {
@@ -13,7 +13,7 @@ namespace Drupal\jsonapi\JsonApiResource;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
interface ResourceIdentifierInterface {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\JsonApiResource;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\JsonApiResource\ResourceIdentifierInterface
@@ -27,7 +27,7 @@ use Drupal\user\UserInterface;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class ResourceObject implements CacheableDependencyInterface, ResourceIdentifierInterface {
@@ -11,7 +11,7 @@ use Drupal\jsonapi\Exception\EntityAccessDeniedHttpException;
* @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
* may change at any time and could break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class ResourceObjectData extends Data implements TopLevelDataInterface {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\JsonApiResource;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
interface TopLevelDataInterface {
+1 -1
View File
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format
@@ -14,7 +14,7 @@ use Drupal\jsonapi\DependencyInjection\Compiler\RegisterSerializationClassesComp
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class JsonapiServiceProvider implements ServiceModifierInterface, ServiceProviderInterface {
@@ -11,7 +11,7 @@ use Drupal\jsonapi\ResourceType\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class ConfigEntityDenormalizer extends EntityDenormalizerBase {
@@ -12,7 +12,7 @@ use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class ContentEntityDenormalizer extends EntityDenormalizerBase {
@@ -16,7 +16,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format/#error-objects
@@ -15,7 +15,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
abstract class EntityDenormalizerBase extends NormalizerBase implements DenormalizerInterface {
@@ -19,7 +19,7 @@ use Drupal\jsonapi\Routing\Routes;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityReferenceFieldNormalizer extends FieldNormalizer {
@@ -20,7 +20,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class FieldItemNormalizer extends NormalizerBase implements DenormalizerInterface {
@@ -15,7 +15,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class FieldNormalizer extends NormalizerBase implements DenormalizerInterface {
@@ -14,7 +14,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format/#error-objects
@@ -112,7 +112,7 @@ class HttpExceptionNormalizer extends NormalizerBase {
* URL pointing to the specific RFC-2616 section. Or NULL if it is an HTTP
* status code that is defined in another RFC.
*
* @see https://www.drupal.org/project/jsonapi/issues/2832211#comment-11826234
* @see https://www.drupal.org/project/drupal/issues/2832211#comment-11826234
*
* @internal
*/
@@ -28,7 +28,7 @@ use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\JsonApiResource\JsonApiDocumentTopLevel
@@ -217,7 +217,7 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
* @return \Drupal\jsonapi\Normalizer\Value\CacheableNormalization
* The normalized document.
*
* @todo: refactor this to use CacheableNormalization::aggregate in https://www.drupal.org/project/jsonapi/issues/3036284.
* @todo: refactor this to use CacheableNormalization::aggregate in https://www.drupal.org/project/drupal/issues/3036284.
*/
protected function normalizeErrorDocument(JsonApiDocumentTopLevel $document, $format, array $context = []) {
$normalized_values = array_map(function (HttpExceptionInterface $exception) use ($format, $context) {
@@ -245,7 +245,7 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
* @return \Drupal\jsonapi\Normalizer\Value\CacheableNormalization|\Drupal\jsonapi\Normalizer\Value\CacheableOmission
* The normalized omissions.
*
* @todo: refactor this to use link collections in https://www.drupal.org/project/jsonapi/issues/3036279.
* @todo: refactor this to use link collections in https://www.drupal.org/project/drupal/issues/3036279.
*/
protected function normalizeOmissionsLinks(OmittedData $omissions, $format, array $context = []) {
$normalized_omissions = array_map(function (HttpExceptionInterface $exception) use ($format, $context) {
@@ -24,7 +24,7 @@ use Drupal\jsonapi\Normalizer\Value\CacheableNormalization;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class LinkCollectionNormalizer extends NormalizerBase {
@@ -11,7 +11,7 @@ use Drupal\serialization\Normalizer\NormalizerBase as SerializationNormalizerBas
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
abstract class NormalizerBase extends SerializationNormalizerBase {
@@ -18,7 +18,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class ResourceIdentifierNormalizer extends NormalizerBase implements DenormalizerInterface {
@@ -17,7 +17,7 @@ use Drupal\jsonapi\Normalizer\Value\CacheableOmission;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class ResourceObjectNormalizer extends NormalizerBase {
@@ -16,7 +16,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see http://jsonapi.org/format/#error-objects
@@ -13,7 +13,7 @@ use Drupal\Core\Cache\CacheableMetadata;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class CacheableNormalization implements CacheableDependencyInterface {
@@ -10,7 +10,7 @@ use Drupal\Core\Cache\CacheableDependencyInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class CacheableOmission extends CacheableNormalization {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\Normalizer\Value;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class HttpExceptionNormalizerValue extends CacheableNormalization {}
@@ -17,7 +17,7 @@ use Symfony\Component\Routing\Route;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\Core\ParamConverter\EntityConverter
@@ -12,7 +12,7 @@ use Symfony\Component\Routing\Route;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class ResourceTypeConverter implements ParamConverterInterface {
@@ -11,7 +11,7 @@ use Drupal\Core\Http\Exception\CacheableBadRequestHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityCondition {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\Query;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class EntityConditionGroup {
@@ -12,7 +12,7 @@ use Drupal\jsonapi\ResourceType\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class Filter {
@@ -157,7 +157,8 @@ class Filter {
foreach ($expanded as &$filter_item) {
if (isset($filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY])) {
$unresolved = $filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY];
$filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY] = $field_resolver->resolveInternalEntityQueryPath($resource_type, $unresolved);
$operator = $filter_item[static::CONDITION_KEY][EntityCondition::OPERATOR_KEY];
$filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY] = $field_resolver->resolveInternalEntityQueryPath($resource_type, $unresolved, $operator);
}
}
return new static(static::buildEntityConditionGroup($expanded));
@@ -11,7 +11,7 @@ use Drupal\Core\Http\Exception\CacheableBadRequestHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class OffsetPage {
+1 -1
View File
@@ -11,7 +11,7 @@ use Drupal\Core\Http\Exception\CacheableBadRequestHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class Sort {
@@ -17,7 +17,7 @@ use Symfony\Component\HttpFoundation\Response;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\rest\ModifiedResourceResponse
@@ -15,7 +15,7 @@ use Drupal\Core\TypedData\DataReferenceTargetDefinition;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\ResourceType\ResourceTypeRepository
@@ -279,7 +279,7 @@ class ResourceType {
* the HTTP API. For example, read-only data from an internal resource might
* be embedded in a public resource using computed fields. Therefore,
* including the internal resource as a relationship with distinct routes
* might uneccesarilly expose internal implementation details.
* might unnecessarily expose internal implementation details.
*
* @return bool
* TRUE if the resource type is internal. FALSE otherwise.
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\ResourceType\ResourceTypeRepository
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\ResourceType\ResourceTypeRepository
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\ResourceType\ResourceTypeRepository
@@ -33,7 +33,7 @@ use Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\ResourceType\ResourceType
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\ResourceType;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
interface ResourceTypeRepositoryInterface {
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\Revisions;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class InvalidVersionIdentifierException extends \InvalidArgumentException {}
@@ -11,7 +11,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
abstract class NegotiatorBase implements VersionNegotiatorInterface {
@@ -18,7 +18,7 @@ use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class ResourceVersionRouteEnhancer implements EnhancerInterface {
@@ -103,7 +103,7 @@ final class ResourceVersionRouteEnhancer implements EnhancerInterface {
/* Uncomment the next line and remove the following one when https://www.drupal.org/project/drupal/issues/3002352 lands in core. */
/* throw new CacheableHttpException($cacheability, 501, 'Resource versioning is not yet supported for this resource type.'); */
$message = 'JSON:API does not yet support resource versioning for this resource type.';
$message .= ' For context, see https://www.drupal.org/project/jsonapi/issues/2992833#comment-12818258.';
$message .= ' For context, see https://www.drupal.org/project/drupal/issues/2992833#comment-12818258.';
$message .= ' To contribute, see https://www.drupal.org/project/drupal/issues/2350939 and https://www.drupal.org/project/drupal/issues/2809177.';
throw new CacheableHttpException($cacheability, 501, $message, NULL, []);
}
@@ -10,7 +10,7 @@ use Drupal\Core\Entity\EntityInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class VersionById extends NegotiatorBase implements VersionNegotiatorInterface {
@@ -11,7 +11,7 @@ use Drupal\Core\Entity\RevisionableInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class VersionByRel extends NegotiatorBase {
@@ -13,7 +13,7 @@ use Drupal\Core\Http\Exception\CacheableNotFoundHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\Revisions\VersionNegotiatorInterface
@@ -10,7 +10,7 @@ use Drupal\Core\Entity\EntityInterface;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*
* @see \Drupal\jsonapi\Revisions\VersionNegotiator
@@ -8,7 +8,7 @@ namespace Drupal\jsonapi\Revisions;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class VersionNotFoundException extends \InvalidArgumentException {
@@ -12,7 +12,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class RouteEnhancer implements EnhancerInterface {
@@ -19,7 +19,7 @@ use Symfony\Component\Routing\RouteCollection;
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
class Routes implements ContainerInjectionInterface {
@@ -12,12 +12,12 @@ use Symfony\Component\Serializer\Serializer as SymfonySerializer;
* Backwards compatibility is in no way guaranteed and will almost certainly be
* broken in the future.
*
* @link https://www.drupal.org/project/jsonapi/issues/2923779#comment-12407443
* @link https://www.drupal.org/project/drupal/issues/2923779#comment-12407443
*
* @internal JSON:API maintains no PHP API since its API is the HTTP API. This
* class may change at any time and this will break any dependencies on it.
*
* @see https://www.drupal.org/project/jsonapi/issues/3032787
* @see https://www.drupal.org/project/drupal/issues/3032787
* @see jsonapi.api.php
*/
final class Serializer extends SymfonySerializer {
@@ -200,7 +200,7 @@ class BlockContentTest extends ResourceTestBase {
* {@inheritdoc}
*/
public function testRelated() {
$this->markTestSkipped('Remove this in https://www.drupal.org/project/jsonapi/issues/2940339');
$this->markTestSkipped('Remove this in https://www.drupal.org/project/drupal/issues/2940339');
}
/**
@@ -392,7 +392,7 @@ class CommentTest extends ResourceTestBase {
* {@inheritdoc}
*/
public function testRelated() {
$this->markTestSkipped('Remove this in https://www.drupal.org/project/jsonapi/issues/2940339');
$this->markTestSkipped('Remove this in https://www.drupal.org/project/drupal/issues/2940339');
}
/**
@@ -117,10 +117,10 @@ class ConfigurableLanguageTest extends ResourceTestBase {
/**
* Test a GET request for a default config entity, which has a _core key.
*
* @see https://www.drupal.org/project/jsonapi/issues/2915539
* @see https://www.drupal.org/project/drupal/issues/2915539
*/
public function testGetIndividualDefaultConfig() {
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute('jsonapi.configurable_language--configurable_language.individual', ['entity' => ConfigurableLanguage::load('en')->uuid()]);
/* $url = ConfigurableLanguage::load('en')->toUrl('jsonapi'); */
@@ -145,7 +145,7 @@ class ExternalNormalizersTest extends BrowserTestBase {
$this->assertSame(static::VALUE_ORIGINAL, $denormalized_entity->field_test->value);
// Asserts the expected JSON:API normalization.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute('jsonapi.entity_test--entity_test.individual', ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$client = $this->getSession()->getDriver()->getClient()->getClient();
@@ -51,7 +51,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure filtering on relationships works with bundle-specific target types.
*
* @see https://www.drupal.org/project/jsonapi/issues/2953207
* @see https://www.drupal.org/project/drupal/issues/2953207
*/
public function testBundleSpecificTargetEntityTypeFromIssue2953207() {
// Set up data model.
@@ -87,7 +87,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure deep nested include works on multi target entity type field.
*
* @see https://www.drupal.org/project/jsonapi/issues/2973681
* @see https://www.drupal.org/project/drupal/issues/2973681
*/
public function testDeepNestedIncludeMultiTargetEntityTypeFieldFromIssue2973681() {
// Set up data model.
@@ -151,7 +151,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure POST and PATCH works for bundle-less relationship routes.
*
* @see https://www.drupal.org/project/jsonapi/issues/2976371
* @see https://www.drupal.org/project/drupal/issues/2976371
*/
public function testBundlelessRelationshipMutationFromIssue2973681() {
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
@@ -202,7 +202,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures GETting terms works when multiple vocabularies exist.
*
* @see https://www.drupal.org/project/jsonapi/issues/2977879
* @see https://www.drupal.org/project/drupal/issues/2977879
*/
public function testGetTermWhenMultipleVocabulariesExistFromIssue2977879() {
// Set up data model.
@@ -238,7 +238,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Cannot PATCH an entity with dangling references in an ER field.
*
* @see https://www.drupal.org/project/jsonapi/issues/2968972
* @see https://www.drupal.org/project/drupal/issues/2968972
*/
public function testDanglingReferencesInAnEntityReferenceFieldFromIssue2968972() {
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
@@ -309,7 +309,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures GETting node collection + hook_node_grants() implementations works.
*
* @see https://www.drupal.org/project/jsonapi/issues/2984964
* @see https://www.drupal.org/project/drupal/issues/2984964
*/
public function testGetNodeCollectionWithHookNodeGrantsImplementationsFromIssue2984964() {
// Set up data model.
@@ -340,7 +340,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Cannot GET an entity with dangling references in an ER field.
*
* @see https://www.drupal.org/project/jsonapi/issues/2984647
* @see https://www.drupal.org/project/drupal/issues/2984647
*/
public function testDanglingReferencesInAnEntityReferenceFieldFromIssue2984647() {
// Set up data model.
@@ -470,7 +470,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
* Adding a new relationship field should cause new routes to be immediately
* regenerated. The site builder should not need to manually rebuild caches.
*
* @see https://www.drupal.org/project/jsonapi/issues/2984886
* @see https://www.drupal.org/project/drupal/issues/2984886
*/
public function testThatRoutesAreRebuiltAfterDataModelChangesFromIssue2984886() {
$user = $this->drupalCreateUser(['access content']);
@@ -526,7 +526,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures denormalizing relationships with aliased field names works.
*
* @see https://www.drupal.org/project/jsonapi/issues/3007113
* @see https://www.drupal.org/project/drupal/issues/3007113
* @see https://www.drupal.org/project/jsonapi_extras/issues/3004582#comment-12817261
*/
public function testDenormalizeAliasedRelationshipFromIssue2953207() {
@@ -584,7 +584,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures that Drupal's page cache is effective.
*
* @see https://www.drupal.org/project/jsonapi/issues/3009596
* @see https://www.drupal.org/project/drupal/issues/3009596
*/
public function testPageCacheFromIssue3009596() {
$anonymous_role = Role::load(RoleInterface::ANONYMOUS_ID);
@@ -619,7 +619,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures that filtering by a sequential internal ID named 'id' is possible.
*
* @see https://www.drupal.org/project/jsonapi/issues/3015759
* @see https://www.drupal.org/project/drupal/issues/3015759
*/
public function testFilterByIdFromIssue3015759() {
// Set up data model.
@@ -659,7 +659,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures datetime fields are normalized using the correct timezone.
*
* @see https://www.drupal.org/project/jsonapi/issues/2999438
* @see https://www.drupal.org/project/drupal/issues/2999438
*/
public function testPatchingDateTimeNormalizedWrongTimeZoneIssue3021194() {
// Set up data model.
@@ -708,7 +708,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensures PATCHing datetime (both date-only & date+time) fields is possible.
*
* @see https://www.drupal.org/project/jsonapi/issues/3021194
* @see https://www.drupal.org/project/drupal/issues/3021194
*/
public function testPatchingDateTimeFieldsFromIssue3021194() {
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
@@ -791,7 +791,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure includes are respected even when POSTing.
*
* @see https://www.drupal.org/project/jsonapi/issues/3026030
* @see https://www.drupal.org/project/drupal/issues/3026030
*/
public function testPostToIncludeUrlDoesNotReturnIncludeFromIssue3026030() {
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
@@ -828,7 +828,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure includes are respected even when PATCHing.
*
* @see https://www.drupal.org/project/jsonapi/issues/3026030
* @see https://www.drupal.org/project/drupal/issues/3026030
*/
public function testPatchToIncludeUrlDoesNotReturnIncludeFromIssue3026030() {
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
@@ -874,7 +874,7 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Ensure `@FieldType=map` fields are normalized correctly.
*
* @see https://www.drupal.org/project/jsonapi/issues/3040590
* @see https://www.drupal.org/project/drupal/issues/3040590
*/
public function testMapFieldTypeNormalizationFromIssue3040590() {
$this->assertTrue($this->container->get('module_installer')->install(['entity_test'], TRUE), 'Installed modules.');
@@ -918,6 +918,62 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
$this->assertSame(['foo' => 'bar'], $data['data'][0]['attributes']['data']);
}
/**
* Ensure filtering for entities with empty entity reference fields works.
*
* @see https://www.drupal.org/project/drupal/issues/3025372
*/
public function testEmptyRelationshipFilteringFromIssue3025372() {
// Set up data model.
$this->drupalCreateContentType(['type' => 'folder']);
$this->createEntityReferenceField(
'node',
'folder',
'field_parent_folder',
NULL,
'node',
'default',
[
'target_bundles' => ['folder'],
],
FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED
);
$this->rebuildAll();
// Create data.
$node = Node::create([
'title' => 'root folder',
'type' => 'folder',
]);
$node->save();
// Test.
$user = $this->drupalCreateUser(['access content']);
$url = Url::fromRoute('jsonapi.node--folder.collection');
$request_options = [
RequestOptions::HEADERS => [
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
RequestOptions::AUTH => [$user->getAccountName(), $user->pass_raw],
];
$response = $this->request('GET', $url, $request_options);
$this->assertSame(200, $response->getStatusCode(), (string) $response->getBody());
$this->assertSame($node->uuid(), Json::decode((string) $response->getBody())['data'][0]['id']);
$response = $this->request('GET', $url->setOption('query', [
'filter[test][condition][path]' => 'field_parent_folder',
'filter[test][condition][operator]' => 'IS NULL',
]), $request_options);
$this->assertSame(200, $response->getStatusCode(), (string) $response->getBody());
$this->assertSame($node->uuid(), Json::decode((string) $response->getBody())['data'][0]['id']);
$response = $this->request('GET', $url->setOption('query', [
'filter[test][condition][path]' => 'field_parent_folder',
'filter[test][condition][operator]' => 'IS NOT NULL',
]), $request_options);
$this->assertSame(200, $response->getStatusCode(), (string) $response->getBody());
$this->assertEmpty(Json::decode((string) $response->getBody())['data']);
}
/**
* Tests that the response still has meaningful error messages.
*/
@@ -1198,8 +1254,8 @@ class JsonApiRegressionTest extends JsonApiFunctionalTestBase {
/**
* Tests that "virtual/missing" resources can exist for renamed fields.
*
* @see https://www.drupal.org/project/jsonapi/issues/3034786
* @see https://www.drupal.org/project/jsonapi_extras/issues/3035544
* @see https://www.drupal.org/project/drupal/issues/3034786
* @see https://www.drupal.org/project/drupal/issues/3035544
*/
public function testAliasedFieldsWithVirtualRelationships() {
// Set up the data model.
@@ -348,7 +348,7 @@ class MediaTest extends ResourceTestBase {
*/
public function testPostIndividual() {
// @todo Mimic \Drupal\Tests\rest\Functional\EntityResource\Media\MediaResourceTestBase::testPost()
// @todo Later, use https://www.drupal.org/project/jsonapi/issues/2958554 to upload files rather than the REST module.
// @todo Later, use https://www.drupal.org/project/drupal/issues/2958554 to upload files rather than the REST module.
parent::testPostIndividual();
}
// @codingStandardsIgnoreEnd
@@ -176,7 +176,7 @@ class MenuLinkContentTest extends ResourceTestBase {
* {@inheritdoc}
*/
public function testRelated() {
$this->markTestSkipped('Remove this in https://www.drupal.org/project/jsonapi/issues/2940339');
$this->markTestSkipped('Remove this in https://www.drupal.org/project/drupal/issues/2940339');
}
/**
@@ -271,7 +271,7 @@ class NodeTest extends ResourceTestBase {
$this->setUpAuthorization('PATCH');
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
@@ -311,14 +311,14 @@ class NodeTest extends ResourceTestBase {
// Unpublish node.
$this->entity->setUnpublished()->save();
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = $this->getAuthenticationRequestOptions();
// 403 when accessing own unpublished node.
$response = $this->request('GET', $url, $request_options);
// @todo Remove $expected + assertResourceResponse() in favor of the commented line below once https://www.drupal.org/project/jsonapi/issues/2943176 lands.
// @todo Remove $expected + assertResourceResponse() in favor of the commented line below once https://www.drupal.org/project/drupal/issues/2943176 lands.
$expected_document = [
'jsonapi' => static::$jsonApiMember,
'errors' => [
@@ -374,7 +374,7 @@ class NodeTest extends ResourceTestBase {
]);
// After saving the entity the normalization should not be cached.
$this->assertFalse($cache);
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $uuid]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = $this->getAuthenticationRequestOptions();
@@ -906,7 +906,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
// - to first test all mistakes a developer might make, and assert that the
// error responses provide a good DX
// - to eventually result in a well-formed request that succeeds.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = [];
@@ -975,9 +975,10 @@ abstract class ResourceTestBase extends BrowserTestBase {
// contain a flattened response. Otherwise performance suffers.
// @see \Drupal\jsonapi\EventSubscriber\ResourceResponseSubscriber::flattenResponse()
$cache_items = $this->container->get('database')
->query("SELECT cid, data FROM {cache_dynamic_page_cache} WHERE cid LIKE :pattern", [
':pattern' => '%[route]=jsonapi.%',
])
->select('cache_dynamic_page_cache', 'cdp')
->fields('cdp', ['cid', 'data'])
->condition('cid', '%[route]=jsonapi.%', 'LIKE')
->execute()
->fetchAllAssoc('cid');
$this->assertTrue(count($cache_items) >= 2);
$found_cache_redirect = FALSE;
@@ -1985,7 +1986,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
if (get_class($this->entityStorage) !== ContentEntityNullStorage::class) {
$created_entity = $this->entityLoadUnchanged(static::$firstCreatedEntityId);
$uuid = $created_entity->uuid();
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$location = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $uuid]);
if (static::$resourceTypeIsVersionable) {
assert($created_entity instanceof RevisionableInterface);
@@ -2037,7 +2038,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
if ($this->entity->getEntityType()->getStorageClass() !== ContentEntityNullStorage::class && $this->entity->getEntityType()->hasKey('uuid')) {
$second_created_entity = $this->entityStorage->load(static::$secondCreatedEntityId);
$uuid = $second_created_entity->uuid();
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$location = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $uuid]);
/* $location = $this->entityStorage->load(static::$secondCreatedEntityId)->toUrl('jsonapi')->setAbsolute(TRUE)->toString(); */
if (static::$resourceTypeIsVersionable) {
@@ -2117,7 +2118,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
// - to first test all mistakes a developer might make, and assert that the
// error responses provide a good DX
// - to eventually result in a well-formed request that succeeds.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = [];
@@ -2370,7 +2371,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
$updated_entity->setNewRevision();
$updated_entity->save();
$actual_response = $this->request('PATCH', $url, $request_options);
$this->assertResourceErrorResponse(400, 'Updating a resource object that has a working copy is not yet supported. See https://www.drupal.org/project/jsonapi/issues/2795279.', $url, $actual_response);
$this->assertResourceErrorResponse(400, 'Updating a resource object that has a working copy is not yet supported. See https://www.drupal.org/project/drupal/issues/2795279.', $url, $actual_response);
// Allow PATCHing an unpublished default revision.
$updated_entity->set('moderation_state', 'archived');
@@ -2411,7 +2412,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
// - to first test all mistakes a developer might make, and assert that the
// error responses provide a good DX
// - to eventually result in a well-formed request that succeeds.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = [];
@@ -2694,7 +2695,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
$request_options = NestedArray::mergeDeep($request_options, $this->getAuthenticationRequestOptions());
$response = $this->request('GET', $url, $request_options);
$detail = 'JSON:API does not yet support resource versioning for this resource type.';
$detail .= ' For context, see https://www.drupal.org/project/jsonapi/issues/2992833#comment-12818258.';
$detail .= ' For context, see https://www.drupal.org/project/drupal/issues/2992833#comment-12818258.';
$detail .= ' To contribute, see https://www.drupal.org/project/drupal/issues/2350939 and https://www.drupal.org/project/drupal/issues/2809177.';
$expected_cache_contexts = [
'url.path',
@@ -2731,7 +2732,7 @@ abstract class ResourceTestBase extends BrowserTestBase {
$entity->save();
$latest_revision_id = (int) $entity->getRevisionId();
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()])->setAbsolute();
// $url = $this->entity->toUrl('jsonapi');
$collection_url = Url::fromRoute(sprintf('jsonapi.%s.collection', static::$resourceTypeName))->setAbsolute();
@@ -372,7 +372,7 @@ class TermTest extends ResourceTestBase {
$this->setUpAuthorization('PATCH');
$this->config('jsonapi.settings')->set('read_only', FALSE)->save(TRUE);
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = [];
@@ -438,7 +438,7 @@ class TermTest extends ResourceTestBase {
// Modify the entity under test to use the provided parent terms.
$this->entity->set('parent', $parent_term_ids)->save();
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.%s.individual', static::$resourceTypeName), ['entity' => $this->entity->uuid()]);
// $url = $this->entity->toUrl('jsonapi');
$request_options = [];
@@ -473,7 +473,7 @@ class TermTest extends ResourceTestBase {
* {@inheritdoc}
*/
public function testRelated() {
$this->markTestSkipped('Remove this in https://www.drupal.org/project/jsonapi/issues/2940339');
$this->markTestSkipped('Remove this in https://www.drupal.org/project/drupal/issues/2940339');
}
/**
@@ -8,7 +8,7 @@ use Drupal\FunctionalTests\Update\UpdatePathTestBase;
* Tests that existing sites have the new read-only mode to "off".
*
* @see jsonapi_update_8701()
* @see https://www.drupal.org/project/jsonapi/issues/3039568
* @see https://www.drupal.org/project/drupal/issues/3039568
*
* @group jsonapi
* @group Update
@@ -203,7 +203,7 @@ class UserTest extends ResourceTestBase {
* Tests PATCHing security-sensitive base fields of the logged in account.
*/
public function testPatchDxForSecuritySensitiveBaseFields() {
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.user--user.individual'), ['entity' => $this->account->uuid()]);
/* $url = $this->account->toUrl('jsonapi'); */
@@ -321,7 +321,7 @@ class UserTest extends ResourceTestBase {
* Tests PATCHing security-sensitive base fields to change other users.
*/
public function testPatchSecurityOtherUser() {
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$url = Url::fromRoute(sprintf('jsonapi.user--user.individual'), ['entity' => $this->account->uuid()]);
/* $url = $this->account->toUrl('jsonapi'); */
@@ -379,7 +379,7 @@ class UserTest extends ResourceTestBase {
$this->grantPermissionsToTestedRole(['access user profiles']);
$collection_url = Url::fromRoute('jsonapi.user--user.collection', [], ['query' => ['sort' => 'drupal_internal__uid']]);
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/jsonapi/issues/2878463.
// @todo Remove line below in favor of commented line in https://www.drupal.org/project/drupal/issues/2878463.
$user_a_url = Url::fromRoute(sprintf('jsonapi.user--user.individual'), ['entity' => $user_a->uuid()]);
/* $user_a_url = $user_a->toUrl('jsonapi'); */
$request_options = [];
@@ -52,7 +52,7 @@ class WorkflowTest extends ResourceTestBase {
protected function createEntity() {
$workflow = Workflow::create([
'id' => 'rest_workflow',
'label' => 'REST Worklow',
'label' => 'REST Workflow',
'type' => 'workflow_type_complex_test',
]);
$workflow
@@ -96,7 +96,7 @@ class WorkflowTest extends ResourceTestBase {
'workflow_type_test',
],
],
'label' => 'REST Worklow',
'label' => 'REST Workflow',
'langcode' => 'en',
'status' => TRUE,
'workflow_type' => 'workflow_type_complex_test',
@@ -302,7 +302,7 @@ class JsonApiDocumentTopLevelNormalizerTest extends JsonapiKernelTestBase {
* @covers ::normalize
*/
public function testNormalizeRelated() {
$this->markTestIncomplete('This fails and should be fixed by https://www.drupal.org/project/jsonapi/issues/2922121');
$this->markTestIncomplete('This fails and should be fixed by https://www.drupal.org/project/drupal/issues/2922121');
list($request, $resource_type) = $this->generateProphecies('node', 'article', 'uid');
$request->query = new ParameterBag([
@@ -67,10 +67,10 @@ class FilterTest extends JsonapiKernelTestBase {
$this->savePaintings([
['colors' => ['red'], 'shapes' => ['triangle'], 'title' => 'FIND'],
['colors' => ['orange'], 'shapes' => ['circle'], 'title' => 'FIND'],
['colors' => ['orange'], 'shapes' => ['triangle'], 'title' => 'DONT_FIND'],
['colors' => ['orange'], 'shapes' => ['triangle'], 'title' => 'DO_NOT_FIND'],
['colors' => ['yellow'], 'shapes' => ['square'], 'title' => 'FIND'],
['colors' => ['yellow'], 'shapes' => ['triangle'], 'title' => 'DONT_FIND'],
['colors' => ['orange'], 'shapes' => ['square'], 'title' => 'DONT_FIND'],
['colors' => ['yellow'], 'shapes' => ['triangle'], 'title' => 'DO_NOT_FIND'],
['colors' => ['orange'], 'shapes' => ['square'], 'title' => 'DO_NOT_FIND'],
]);
$this->nodeStorage = $this->container->get('entity_type.manager')->getStorage('node');
@@ -413,7 +413,7 @@ class FilterTest extends JsonapiKernelTestBase {
*/
protected function getFieldResolverMock(ResourceType $resource_type) {
$field_resolver = $this->prophesize(FieldResolver::class);
$field_resolver->resolveInternalEntityQueryPath($resource_type, Argument::any())->willReturnArgument(1);
$field_resolver->resolveInternalEntityQueryPath($resource_type, Argument::any(), Argument::any())->willReturnArgument(1);
return $field_resolver->reveal();
}
@@ -63,7 +63,7 @@ trait CommonCollectionFilterAccessTestPatternsTrait {
// Test.
$collection_url = Url::fromRoute('jsonapi.entity_test--bar.collection');
// Specifying a delta exercises TemporaryQueryGaurd more thoroughly.
// Specifying a delta exercises TemporaryQueryGuard more thoroughly.
$filter_path = "spotlight.0.$label_field_name";
$collection_filter_url = $collection_url->setOption('query', ["filter[$filter_path]" => $this->entity->label()]);
$request_options = [];