test_support-1.0.x-dev/tests/src/Kernel/Installs/InstallsImageStylesTest.php

tests/src/Kernel/Installs/InstallsImageStylesTest.php
<?php

namespace Drupal\Tests\test_support\Kernel\Installs;

use Drupal\image\Entity\ImageStyle;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\test_support\Traits\Installs\InstallsImageStyles;

class InstallsImageStylesTest extends KernelTestBase
{
    use InstallsImageStyles;

    protected function setUp(): void
    {
        parent::setUp();

        $this->setConfigDirectory(__DIR__ . '/__fixtures__/config/sync/image_styles');
    }

    /** @test */
    public function installing_image_style_prepares_dependencies(): void
    {
        $this->installImageStyles('large');

        $imageStyleStorage = $this->container->get('entity_type.manager')->getStorage('image_style');

        $this->assertNotEmpty($imageStyleStorage->loadMultiple());
    }

    /** @test */
    public function install_single_image_style(): void
    {
        $this->enableModules([
            'image',
        ]);
        $this->installEntitySchema('image_style');

        $imageStyleStorage = $this->container->get('entity_type.manager')->getStorage('image_style');

        $this->assertEmpty($imageStyleStorage->loadMultiple());

        $this->installImageStyles('large');

        /** @var array<mixed> $imageStyles */
        $imageStyles = $imageStyleStorage->loadMultiple();

        $this->assertNotEmpty($imageStyles);

        $this->assertInstanceOf(ImageStyle::class, $imageStyleStorage->load('large'));
    }

    /** @test */
    public function install_multiple_image_styles(): void
    {
        $this->enableModules([
            'image',
        ]);
        $this->installEntitySchema('image_style');

        $this->setConfigDirectory(__DIR__ . '/__fixtures__/config/sync/image_styles');

        $imageStyleStorage = $this->container->get('entity_type.manager')->getStorage('image_style');

        $this->assertEmpty($imageStyleStorage->loadMultiple());

        $imageStylesToInstall = [
            'large',
            'medium',
        ];

        $this->installImageStyles($imageStylesToInstall);

        /** @var array<ImageStyle> $imageStyles */
        $imageStyles = $imageStyleStorage->loadMultiple();

        $this->assertNotEmpty($imageStyles);

        $imageStyleIds = array_map(function (ImageStyle $imageStyle) {
            return $imageStyle->id();
        }, $imageStyles);

        $this->assertEquals($imageStylesToInstall, array_values($imageStyleIds));
    }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc