function LayoutEntityHelperTraitTest::providerSectionsWithInlineComponents

Same name and namespace in other branches
  1. 9 core/modules/layout_builder/tests/src/Unit/LayoutEntityHelperTraitTest.php \Drupal\Tests\layout_builder\Unit\LayoutEntityHelperTraitTest::providerSectionsWithInlineComponents()
  2. 10 core/modules/layout_builder/tests/src/Unit/LayoutEntityHelperTraitTest.php \Drupal\Tests\layout_builder\Unit\LayoutEntityHelperTraitTest::providerSectionsWithInlineComponents()
  3. 11.x core/modules/layout_builder/tests/src/Unit/LayoutEntityHelperTraitTest.php \Drupal\Tests\layout_builder\Unit\LayoutEntityHelperTraitTest::providerSectionsWithInlineComponents()

Dataprovider method for tests that need sections with inline blocks.

File

core/modules/layout_builder/tests/src/Unit/LayoutEntityHelperTraitTest.php, line 63

Class

LayoutEntityHelperTraitTest
@coversDefaultClass <a href="/api/drupal/core%21modules%21layout_builder%21src%21LayoutEntityHelperTrait.php/trait/LayoutEntityHelperTrait/8.9.x" title="Methods to help with entities using the layout builder." class="local">\Drupal\layout_builder\LayoutEntityHelperTrait</a>

Namespace

Drupal\Tests\layout_builder\Unit

Code

public function providerSectionsWithInlineComponents() {
    $components = [];
    // Ensure a non-derivative component is not returned.
    $non_derivative_component = $this->prophesize(SectionComponent::class);
    $non_derivative_component->getPlugin()
        ->willReturn($this->prophesize(PluginInspectionInterface::class)
        ->reveal());
    $components[] = $non_derivative_component->reveal();
    // Ensure a derivative component with a different base Id is not returned.
    $derivative_non_inline_component = $this->prophesize(SectionComponent::class);
    $plugin = $this->prophesize(DerivativeInspectionInterface::class);
    $plugin->getBaseId()
        ->willReturn('some_other_base_id_which_we_do_not_care_about_but_it_is_nothing_personal');
    $derivative_non_inline_component->getPlugin()
        ->willReturn($plugin);
    $components[] = $derivative_non_inline_component->reveal();
    // Ensure that inline block component is returned.
    $inline_component = $this->prophesize(SectionComponent::class);
    $inline_plugin = $this->prophesize(DerivativeInspectionInterface::class)
        ->willImplement(ConfigurablePluginInterface::class);
    $inline_plugin->getBaseId()
        ->willReturn('inline_block');
    $inline_plugin->getConfiguration()
        ->willReturn([
        'block_revision_id' => 'the_revision_id',
    ]);
    $inline_component->getPlugin()
        ->willReturn($inline_plugin->reveal());
    $inline_component = $inline_component->reveal();
    $components[] = $inline_component;
    // Ensure that inline block component without revision is returned.
    $inline_component_without_revision_id = $this->prophesize(SectionComponent::class);
    $inline_plugin_without_revision_id = $this->prophesize(DerivativeInspectionInterface::class)
        ->willImplement(ConfigurablePluginInterface::class);
    $inline_plugin_without_revision_id->getBaseId()
        ->willReturn('inline_block');
    $inline_plugin_without_revision_id->getConfiguration()
        ->willReturn([
        'other_key' => 'other_value',
    ]);
    $inline_component_without_revision_id->getPlugin()
        ->willReturn($inline_plugin_without_revision_id->reveal());
    $inline_component_without_revision_id = $inline_component_without_revision_id->reveal();
    $components[] = $inline_component_without_revision_id;
    $section = $this->prophesize(Section::class);
    $section->getComponents()
        ->willReturn($components);
    $components = [];
    // Ensure that inline block components in all sections are returned.
    $inline_component2 = $this->prophesize(SectionComponent::class);
    $inline_plugin2 = $this->prophesize(DerivativeInspectionInterface::class)
        ->willImplement(ConfigurablePluginInterface::class);
    $inline_plugin2->getBaseId()
        ->willReturn('inline_block');
    $inline_plugin2->getConfiguration()
        ->willReturn([
        'block_revision_id' => 'the_other_revision_id',
    ]);
    $inline_component2->getPlugin()
        ->willReturn($inline_plugin2->reveal());
    $inline_component2 = $inline_component2->reveal();
    $components[] = $inline_component2;
    $section2 = $this->prophesize(Section::class);
    $section2->getComponents()
        ->willReturn($components);
    return [
        [
            [
                $section->reveal(),
                $section2->reveal(),
            ],
            // getInlineBlockComponents() should return inline blocks even if they
            // have no revision Id.
[
                $inline_component,
                $inline_component_without_revision_id,
                $inline_component2,
            ],
            // getInlineBlockRevisionIdsInSections should just the revision Ids.
[
                'the_revision_id',
                'the_other_revision_id',
            ],
        ],
    ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.