Skip to content
Snippets Groups Projects
Commit d0ec4df0 authored by Alex Bronstein's avatar Alex Bronstein
Browse files

Issue #3042198 by Wim Leers, tim.plunkett, phenaproxima, xjm: Add JSON:API...

Issue #3042198 by Wim Leers, tim.plunkett, phenaproxima, xjm: Add JSON:API integration test for LayoutBuilderEntityViewDisplay
parent 195a3c9b
No related branches found
No related tags found
No related merge requests found
......@@ -95,6 +95,13 @@ protected function serializeField($field, array $context, $format) {
return $normalized_field->withCacheableDependency(CacheableMetadata::createFromObject($field_access_result));
}
else {
// @todo Replace this workaround after https://www.drupal.org/node/3043245
// or remove the need for this in https://www.drupal.org/node/2942975.
// See \Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer.
if ($context['resource_object']->getResourceType()->getDeserializationTargetClass() === 'Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay' && $context['resource_object']->getField('third_party_settings') === $field) {
unset($field['layout_builder']['sections']);
}
// Config "fields" in this case are arrays or primitives and do not need
// to be normalized.
return CacheableNormalization::permanent($field);
......
<?php
namespace Drupal\Tests\layout_builder\Functional\Jsonapi;
use Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage;
use Drupal\Tests\jsonapi\Functional\EntityViewDisplayTest;
/**
* JSON:API integration test for the "EntityViewDisplay" config entity type.
*
* @group jsonapi
* @group layout_builder
*/
class LayoutBuilderEntityViewDisplayTest extends EntityViewDisplayTest {
/**
* {@inheritdoc}
*/
public static $modules = ['layout_builder'];
/**
* {@inheritdoc}
*/
protected function createEntity() {
/** @var \Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay $entity */
$entity = parent::createEntity();
$entity
->enableLayoutBuilder()
->setOverridable()
->save();
$this->assertCount(1, $entity->getThirdPartySetting('layout_builder', 'sections'));
return $entity;
}
/**
* {@inheritdoc}
*/
protected function getExpectedDocument() {
$document = parent::getExpectedDocument();
array_unshift($document['data']['attributes']['dependencies']['module'], 'layout_builder');
$document['data']['attributes']['hidden'][OverridesSectionStorage::FIELD_NAME] = TRUE;
$document['data']['attributes']['third_party_settings']['layout_builder'] = [
'enabled' => TRUE,
'allow_custom' => TRUE,
];
return $document;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment