You are here

public function ResponsiveImageStyleConfigEntityUnitTest::testGetKeyedImageStyleMappings in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/responsive_image/tests/src/Unit/ResponsiveImageStyleConfigEntityUnitTest.php \Drupal\Tests\responsive_image\Unit\ResponsiveImageStyleConfigEntityUnitTest::testGetKeyedImageStyleMappings()

@covers ::addImageStyleMapping @covers ::getKeyedImageStyleMappings

File

core/modules/responsive_image/tests/src/Unit/ResponsiveImageStyleConfigEntityUnitTest.php, line 194

Class

ResponsiveImageStyleConfigEntityUnitTest
@coversDefaultClass \Drupal\responsive_image\Entity\ResponsiveImageStyle @group block

Namespace

Drupal\Tests\responsive_image\Unit

Code

public function testGetKeyedImageStyleMappings() {
  $entity = new ResponsiveImageStyle([
    '',
  ]);
  $entity
    ->addImageStyleMapping('test_breakpoint', '1x', [
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'large',
  ]);
  $entity
    ->addImageStyleMapping('test_breakpoint', '2x', [
    'image_mapping_type' => 'sizes',
    'image_mapping' => [
      'sizes' => '(min-width:700px) 700px, 100vw',
      'sizes_image_styles' => [
        'large' => 'large',
      ],
    ],
  ]);
  $entity
    ->addImageStyleMapping('test_breakpoint2', '1x', [
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'thumbnail',
  ]);
  $entity
    ->addImageStyleMapping('test_breakpoint2', '2x', [
    'image_mapping_type' => 'image_style',
    'image_mapping' => '_original image_',
  ]);
  $expected = [
    'test_breakpoint' => [
      '1x' => [
        'breakpoint_id' => 'test_breakpoint',
        'multiplier' => '1x',
        'image_mapping_type' => 'image_style',
        'image_mapping' => 'large',
      ],
      '2x' => [
        'breakpoint_id' => 'test_breakpoint',
        'multiplier' => '2x',
        'image_mapping_type' => 'sizes',
        'image_mapping' => [
          'sizes' => '(min-width:700px) 700px, 100vw',
          'sizes_image_styles' => [
            'large' => 'large',
          ],
        ],
      ],
    ],
    'test_breakpoint2' => [
      '1x' => [
        'breakpoint_id' => 'test_breakpoint2',
        'multiplier' => '1x',
        'image_mapping_type' => 'image_style',
        'image_mapping' => 'thumbnail',
      ],
      '2x' => [
        'breakpoint_id' => 'test_breakpoint2',
        'multiplier' => '2x',
        'image_mapping_type' => 'image_style',
        'image_mapping' => '_original image_',
      ],
    ],
  ];
  $this
    ->assertEquals($expected, $entity
    ->getKeyedImageStyleMappings());

  // Add another mapping to ensure keyed mapping static cache is rebuilt.
  $entity
    ->addImageStyleMapping('test_breakpoint2', '2x', [
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'medium',
  ]);
  $expected['test_breakpoint2']['2x'] = [
    'breakpoint_id' => 'test_breakpoint2',
    'multiplier' => '2x',
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'medium',
  ];
  $this
    ->assertEquals($expected, $entity
    ->getKeyedImageStyleMappings());

  // Overwrite a mapping to ensure keyed mapping static cache is rebuilt.
  $entity
    ->addImageStyleMapping('test_breakpoint2', '2x', [
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'large',
  ]);
  $expected['test_breakpoint2']['2x'] = [
    'breakpoint_id' => 'test_breakpoint2',
    'multiplier' => '2x',
    'image_mapping_type' => 'image_style',
    'image_mapping' => 'large',
  ];
  $this
    ->assertEquals($expected, $entity
    ->getKeyedImageStyleMappings());
}