View source
<?php
namespace Drupal\Tests\responsive_image\Functional;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\responsive_image\Entity\ResponsiveImageStyle;
use Drupal\Tests\views\Functional\ViewTestBase;
class ViewsIntegrationTest extends ViewTestBase {
const RESPONSIVE_IMAGE_STYLE_ID = 'responsive_image_style_id';
protected static $modules = [
'views',
'views_ui',
'responsive_image',
'field',
'image',
'file',
'entity_test',
'breakpoint',
'responsive_image_test_module',
];
protected $defaultTheme = 'stark';
public static $testViews = [
'entity_test_row',
];
protected function setUp($import_test_views = TRUE, $modules = [
'views_test_config',
]) : void {
parent::setUp($import_test_views, $modules);
$this
->enableViewsTestModule();
$responsive_image_style = ResponsiveImageStyle::create([
'id' => self::RESPONSIVE_IMAGE_STYLE_ID,
'label' => 'Foo',
'breakpoint_group' => 'responsive_image_test_module',
]);
FieldStorageConfig::create([
'type' => 'image',
'entity_type' => 'entity_test',
'field_name' => 'bar',
])
->save();
FieldConfig::create([
'entity_type' => 'entity_test',
'bundle' => 'entity_test',
'field_name' => 'bar',
])
->save();
$responsive_image_style
->addImageStyleMapping('responsive_image_test_module.mobile', '1x', [
'image_mapping_type' => 'image_style',
'image_mapping' => 'thumbnail',
])
->addImageStyleMapping('responsive_image_test_module.narrow', '1x', [
'image_mapping_type' => 'image_style',
'image_mapping' => 'medium',
])
->addImageStyleMapping('responsive_image_test_module.wide', '1x', [
'image_mapping_type' => 'image_style',
'image_mapping' => 'large',
])
->save();
$admin_user = $this
->drupalCreateUser([
'administer views',
]);
$this
->drupalLogin($admin_user);
}
public function testViewsAddResponsiveImageField() {
$this
->drupalGet('admin/structure/views/nojs/add-handler/entity_test_row/default/field');
$this
->drupalGet('admin/structure/views/nojs/add-handler/entity_test_row/default/field');
$this
->submitForm([
'name[entity_test__bar.bar]' => TRUE,
], 'Add and configure field');
$this
->submitForm([
'options[type]' => 'responsive_image',
], 'Apply');
$this
->assertSession()
->responseContains('Responsive image style field is required.');
$this
->submitForm([
'options[settings][responsive_image_style]' => self::RESPONSIVE_IMAGE_STYLE_ID,
], 'Apply');
$this
->drupalGet('admin/structure/views/nojs/handler/entity_test_row/default/field/bar');
$this
->assertSession()
->fieldValueEquals('options[settings][responsive_image_style]', self::RESPONSIVE_IMAGE_STYLE_ID);
}
}