From 3523546d75d50387e5f29db0a766496525291543 Mon Sep 17 00:00:00 2001 From: Patrick Kenny <33362-ptmkenny@users.noreply.drupalcode.org> Date: Mon, 6 Feb 2023 18:12:45 +0900 Subject: [PATCH 1/2] automated coding standards fixes --- .../src/Controller/EntityResource.php | 2 +- .../JsonApiDefaultsFunctionalTest.php | 50 +++++++++---------- src/Form/JsonapiResourceConfigForm.php | 2 +- src/JsonapiResourceConfigListBuilder.php | 7 ++- .../ConfigurableResourceTypeRepository.php | 7 ++- .../JsonApiExtrasFunctionalTest.php | 6 ++- .../JsonApiExtrasFunctionalTestBase.php | 1 - tests/src/Kernel/EntityToJsonApiTest.php | 2 +- 8 files changed, 37 insertions(+), 40 deletions(-) diff --git a/modules/jsonapi_defaults/src/Controller/EntityResource.php b/modules/jsonapi_defaults/src/Controller/EntityResource.php index 7a2d14c..5e6990e 100644 --- a/modules/jsonapi_defaults/src/Controller/EntityResource.php +++ b/modules/jsonapi_defaults/src/Controller/EntityResource.php @@ -171,7 +171,7 @@ class EntityResource extends JsonApiEntityResourse { ); throw new \LengthException($message); } - return isset($relatable_resource_types[0]) ? $relatable_resource_types[0] : NULL; + return $relatable_resource_types[0] ?? NULL; } /** diff --git a/modules/jsonapi_defaults/tests/src/Functional/JsonApiDefaultsFunctionalTest.php b/modules/jsonapi_defaults/tests/src/Functional/JsonApiDefaultsFunctionalTest.php index 6f369d6..1069580 100644 --- a/modules/jsonapi_defaults/tests/src/Functional/JsonApiDefaultsFunctionalTest.php +++ b/modules/jsonapi_defaults/tests/src/Functional/JsonApiDefaultsFunctionalTest.php @@ -7,7 +7,6 @@ use Drupal\jsonapi\Query\OffsetPage; use Drupal\jsonapi_extras\Entity\JsonapiResourceConfig; use Drupal\Tests\jsonapi_extras\Functional\JsonApiExtrasFunctionalTestBase; use GuzzleHttp\Psr7\Query; -use function GuzzleHttp\Psr7\parse_query; /** * The test class for the JSON API Defaults functionality. @@ -28,39 +27,38 @@ class JsonApiDefaultsFunctionalTest extends JsonApiExtrasFunctionalTestBase { 'jsonapi_defaults', ]; - /** - * Test regression on sorting from issue 3322635. - */ - public function testSortRegression3322635() { - $this->setResouceConfigValue([ - 'default_filter' => [], - 'default_sorting' => [], - ]); - - $this->createDefaultContent(2, 5, TRUE, TRUE, static::IS_NOT_MULTILINGUAL); + /** + * Test regression on sorting from issue 3322635. + */ + public function testSortRegression3322635() { + $this->setResouceConfigValue([ + 'default_filter' => [], + 'default_sorting' => [], + ]); - $this->nodes[0]->title->setValue('b'); - $this->nodes[0]->save(); + $this->createDefaultContent(2, 5, TRUE, TRUE, static::IS_NOT_MULTILINGUAL); - $this->nodes[1]->title->setValue('a'); - $this->nodes[1]->save(); + $this->nodes[0]->title->setValue('b'); + $this->nodes[0]->save(); - $stringResponse = $this->drupalGet('/api/articles', ['query' => ['sort' => 'title']]); - $output = Json::decode($stringResponse); + $this->nodes[1]->title->setValue('a'); + $this->nodes[1]->save(); - // Check if order changed as expected. - $this->assertEquals('a', $output['data'][0]['attributes']['title']); - $this->assertEquals('b', $output['data'][1]['attributes']['title']); + $stringResponse = $this->drupalGet('/api/articles', ['query' => ['sort' => 'title']]); + $output = Json::decode($stringResponse); - $stringResponse = $this->drupalGet('/api/articles', ['query' => ['sort' => '-title']]); - $output = Json::decode($stringResponse); + // Check if order changed as expected. + $this->assertEquals('a', $output['data'][0]['attributes']['title']); + $this->assertEquals('b', $output['data'][1]['attributes']['title']); - // Check if order changed as expected. - $this->assertEquals('b', $output['data'][0]['attributes']['title']); - $this->assertEquals('a', $output['data'][1]['attributes']['title']); + $stringResponse = $this->drupalGet('/api/articles', ['query' => ['sort' => '-title']]); + $output = Json::decode($stringResponse); - } + // Check if order changed as expected. + $this->assertEquals('b', $output['data'][0]['attributes']['title']); + $this->assertEquals('a', $output['data'][1]['attributes']['title']); + } /** * Test the GET method. diff --git a/src/Form/JsonapiResourceConfigForm.php b/src/Form/JsonapiResourceConfigForm.php index 15ed1c9..b9e5f47 100644 --- a/src/Form/JsonapiResourceConfigForm.php +++ b/src/Form/JsonapiResourceConfigForm.php @@ -151,7 +151,7 @@ class JsonapiResourceConfigForm extends EntityForm { // We can't build the form without an entity type and bundle. throw new \InvalidArgumentException('Unable to load entity type or bundle for the overrides form.'); } - list($entity_type_id, $bundle) = explode('--', $resource_id); + [$entity_type_id, $bundle] = explode('--', $resource_id); $form['#title'] = $this->t('Edit %label resource config', ['%label' => $resource_id]); } diff --git a/src/JsonapiResourceConfigListBuilder.php b/src/JsonapiResourceConfigListBuilder.php index e2282ec..0dc48e9 100644 --- a/src/JsonapiResourceConfigListBuilder.php +++ b/src/JsonapiResourceConfigListBuilder.php @@ -9,7 +9,6 @@ use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Url; use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface; -use Drupal\jsonapi_extras\Entity\JsonapiResourceConfig; use Drupal\jsonapi_extras\ResourceType\ConfigurableResourceType; use Drupal\jsonapi_extras\ResourceType\NullJsonapiResourceConfig; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -47,7 +46,7 @@ class JsonapiResourceConfigListBuilder extends ConfigEntityListBuilder { * The entity type. * @param \Drupal\Core\Entity\EntityStorageInterface $storage * The storage. - * @param ResourceTypeRepositoryInterface $resource_type_repository + * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resource_type_repository * The JSON:API resource type repository. * @param \Drupal\Core\Config\ImmutableConfig $config * The config instance. @@ -185,7 +184,7 @@ class JsonapiResourceConfigListBuilder extends ConfigEntityListBuilder { } $default_group = 'disabled'; } - else if (!$resource_config && $resource_type->isInternal()) { + elseif (!$resource_config && $resource_type->isInternal()) { continue; } @@ -221,7 +220,7 @@ class JsonapiResourceConfigListBuilder extends ConfigEntityListBuilder { ]), ], ], - ]: [], + ] : [], ]; if ($resource_config && !($resource_config instanceof NullJsonapiResourceConfig)) { diff --git a/src/ResourceType/ConfigurableResourceTypeRepository.php b/src/ResourceType/ConfigurableResourceTypeRepository.php index af5846a..cf7d774 100644 --- a/src/ResourceType/ConfigurableResourceTypeRepository.php +++ b/src/ResourceType/ConfigurableResourceTypeRepository.php @@ -175,8 +175,7 @@ class ConfigurableResourceTypeRepository extends ResourceTypeRepository { ); try { $resource_configs = $this->getResourceConfigs(); - return isset($resource_configs[$resource_config_id]) ? - $resource_configs[$resource_config_id] : + return $resource_configs[$resource_config_id] ?? $null_resource; } catch (PluginException $e) { @@ -196,7 +195,7 @@ class ConfigurableResourceTypeRepository extends ResourceTypeRepository { if (!static::$resourceConfigs) { $resource_config_ids = []; foreach ($this->getEntityTypeBundleTuples() as $tuple) { - list($entity_type_id, $bundle) = $tuple; + [$entity_type_id, $bundle] = $tuple; $resource_config_ids[] = static::buildResourceConfigId( $entity_type_id, $bundle @@ -247,7 +246,7 @@ class ConfigurableResourceTypeRepository extends ResourceTypeRepository { } if (strpos($type_name, '--') !== FALSE) { - list($entity_type_id, $bundle) = explode('--', $type_name); + [$entity_type_id, $bundle] = explode('--', $type_name); return static::lookupResourceType($resource_types, $entity_type_id, $bundle); } diff --git a/tests/src/Functional/JsonApiExtrasFunctionalTest.php b/tests/src/Functional/JsonApiExtrasFunctionalTest.php index 61c9b4c..022c32d 100644 --- a/tests/src/Functional/JsonApiExtrasFunctionalTest.php +++ b/tests/src/Functional/JsonApiExtrasFunctionalTest.php @@ -13,7 +13,6 @@ use Drupal\node\Entity\Node; use Drupal\node\Entity\NodeType; use Drupal\taxonomy\Entity\Vocabulary; use Drupal\Tests\jsonapi\Functional\JsonApiFunctionalTestBase; -use Drupal\user\Entity\Role; use Drupal\user\Entity\User; use Symfony\Component\Routing\Route; @@ -157,6 +156,9 @@ class JsonApiExtrasFunctionalTest extends JsonApiFunctionalTestBase { $this->assertEquals($this->nodes[0]->field_text_moved_new->value, $output['data'][0]['attributes']['field_text_moved']['value']); } + /** + * + */ public function testSortOverwrittenField() { $this->createDefaultContent(2, 1, FALSE, TRUE, static::IS_NOT_MULTILINGUAL); @@ -675,7 +677,7 @@ class JsonApiExtrasFunctionalTest extends JsonApiFunctionalTestBase { $row = $this->assertSession()->elementExists('css', sprintf('#jsonapi-disabled-resources-list table tr:contains("%s")', 'taxonomy_term--' . $vocabulary->id())); $this->assertSession()->elementExists('named', ['link', 'Revert'], $row); - // Add another vocabulary + // Add another vocabulary. $vocabulary2 = Vocabulary::create([ 'name' => $this->randomMachineName(), 'vid' => mb_strtolower($this->randomMachineName()), diff --git a/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php b/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php index c4ac1d3..b5cbbe6 100644 --- a/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php +++ b/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php @@ -6,7 +6,6 @@ use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; use Drupal\Tests\jsonapi\Functional\JsonApiFunctionalTestBase; -use Drupal\user\Entity\Role; /** * Provides helper methods for the JSON API Extras module's functional tests. diff --git a/tests/src/Kernel/EntityToJsonApiTest.php b/tests/src/Kernel/EntityToJsonApiTest.php index 0774f06..8f3465b 100644 --- a/tests/src/Kernel/EntityToJsonApiTest.php +++ b/tests/src/Kernel/EntityToJsonApiTest.php @@ -243,7 +243,7 @@ class EntityToJsonApiTest extends JsonapiKernelTestBase { array_walk( $entities, function ($data) { - list($entity, $include_fields, $expected_includes) = $data; + [$entity, $include_fields, $expected_includes] = $data; $this->assertEntity($entity, $include_fields, $expected_includes); } ); -- GitLab From 4765034ce62f88b1786e354f949c7f8819ec2a94 Mon Sep 17 00:00:00 2001 From: Patrick Kenny <33362-ptmkenny@users.noreply.drupalcode.org> Date: Mon, 6 Feb 2023 18:20:05 +0900 Subject: [PATCH 2/2] manual fixes --- src/Normalizer/SchemataSchemaNormalizer.php | 6 +++++- tests/src/Functional/JsonApiExtrasFunctionalTest.php | 5 ++++- tests/src/Functional/JsonApiExtrasFunctionalTestBase.php | 5 ++++- tests/src/Kernel/Controller/EntityResourceTest.php | 1 - tests/src/Kernel/EntityToJsonApiTest.php | 6 ++++-- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Normalizer/SchemataSchemaNormalizer.php b/src/Normalizer/SchemataSchemaNormalizer.php index 8374f35..db089be 100644 --- a/src/Normalizer/SchemataSchemaNormalizer.php +++ b/src/Normalizer/SchemataSchemaNormalizer.php @@ -47,6 +47,7 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize return $normalized; } + $root = ''; // Alter the attributes according to the resource config. if (!empty($normalized['definitions'])) { $root = &$normalized['definitions']; @@ -62,7 +63,10 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize foreach ($properties as $fieldname => $schema) { if ($enhancer = $resource_type->getFieldEnhancer($resource_type->getFieldByPublicName($fieldname)->getInternalName())) { $root[$property_type]['properties'][$fieldname] = array_merge( - array_intersect_key($root[$property_type]['properties'][$fieldname], array_flip(['title', 'description'])), + array_intersect_key($root[$property_type]['properties'][$fieldname], array_flip([ + 'title', + 'description', + ])), $enhancer->getOutputJsonSchema() ); } diff --git a/tests/src/Functional/JsonApiExtrasFunctionalTest.php b/tests/src/Functional/JsonApiExtrasFunctionalTest.php index 022c32d..fa8dba7 100644 --- a/tests/src/Functional/JsonApiExtrasFunctionalTest.php +++ b/tests/src/Functional/JsonApiExtrasFunctionalTest.php @@ -124,7 +124,10 @@ class JsonApiExtrasFunctionalTest extends JsonApiFunctionalTestBase { static::overrideResources(); $this->resetAll(); $role = $this->user->get('roles')[0]->entity; - $this->grantPermissions($role, ['administer nodes', 'administer site configuration']); + $this->grantPermissions($role, [ + 'administer nodes', + 'administer site configuration', + ]); } /** diff --git a/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php b/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php index b5cbbe6..f187762 100644 --- a/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php +++ b/tests/src/Functional/JsonApiExtrasFunctionalTestBase.php @@ -62,7 +62,10 @@ abstract class JsonApiExtrasFunctionalTestBase extends JsonApiFunctionalTestBase static::overrideResources(); $this->resetAll(); $role = $this->user->get('roles')[0]->entity; - $this->grantPermissions($role, ['administer nodes', 'administer site configuration']); + $this->grantPermissions($role, [ + 'administer nodes', + 'administer site configuration', + ]); } /** diff --git a/tests/src/Kernel/Controller/EntityResourceTest.php b/tests/src/Kernel/Controller/EntityResourceTest.php index f52ea43..3edc828 100644 --- a/tests/src/Kernel/Controller/EntityResourceTest.php +++ b/tests/src/Kernel/Controller/EntityResourceTest.php @@ -112,7 +112,6 @@ class EntityResourceTest extends KernelTestBase { ]); $node_type->save(); - $parsed_node_type = NodeType::create($values); Role::load(Role::ANONYMOUS_ID) ->grantPermission('administer content types') ->save(); diff --git a/tests/src/Kernel/EntityToJsonApiTest.php b/tests/src/Kernel/EntityToJsonApiTest.php index 8f3465b..a784859 100644 --- a/tests/src/Kernel/EntityToJsonApiTest.php +++ b/tests/src/Kernel/EntityToJsonApiTest.php @@ -250,8 +250,10 @@ class EntityToJsonApiTest extends JsonapiKernelTestBase { } /** - * Test if the request by jsonapi_extras.entity.to_jsonapi doesn't linger on - * the request stack. + * Test the request stack. + * + * Confirm that the request by jsonapi_extras.entity.to_jsonapi does not + * linger on the request stack. * * @see https://www.drupal.org/project/jsonapi_extras/issues/3135950 * @see https://www.drupal.org/project/jsonapi_extras/issues/3124805 -- GitLab