class ViewsIntegrationTest in Drupal 10
Same name in this branch
- 10 core/modules/responsive_image/tests/src/Functional/ViewsIntegrationTest.php \Drupal\Tests\responsive_image\Functional\ViewsIntegrationTest
- 10 core/modules/dblog/tests/src/Kernel/Views/ViewsIntegrationTest.php \Drupal\Tests\dblog\Kernel\Views\ViewsIntegrationTest
Same name and namespace in other branches
- 8 core/modules/responsive_image/tests/src/Functional/ViewsIntegrationTest.php \Drupal\Tests\responsive_image\Functional\ViewsIntegrationTest
- 9 core/modules/responsive_image/tests/src/Functional/ViewsIntegrationTest.php \Drupal\Tests\responsive_image\Functional\ViewsIntegrationTest
Tests the integration of responsive image with Views.
@group responsive_image
Hierarchy
- class \Drupal\Tests\responsive_image\Functional\ViewsIntegrationTest extends \Drupal\Tests\views\Functional\ViewTestBase
Expanded class hierarchy of ViewsIntegrationTest
File
- core/
modules/ responsive_image/ tests/ src/ Functional/ ViewsIntegrationTest.php, line 15
Namespace
Drupal\Tests\responsive_image\FunctionalView source
class ViewsIntegrationTest extends ViewTestBase {
/**
* The responsive image style ID to use.
*/
const RESPONSIVE_IMAGE_STYLE_ID = 'responsive_image_style_id';
/**
* {@inheritdoc}
*/
protected static $modules = [
'views',
'views_ui',
'responsive_image',
'field',
'image',
'file',
'entity_test',
'breakpoint',
'responsive_image_test_module',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* The test views to enable.
*/
public static $testViews = [
'entity_test_row',
];
/**
* {@inheritdoc}
*/
protected function setUp($import_test_views = TRUE, $modules = [
'views_test_config',
]) : void {
parent::setUp($import_test_views, $modules);
$this
->enableViewsTestModule();
// Create a responsive image style.
$responsive_image_style = ResponsiveImageStyle::create([
'id' => self::RESPONSIVE_IMAGE_STYLE_ID,
'label' => 'Foo',
'breakpoint_group' => 'responsive_image_test_module',
]);
// Create an image field to be used with a responsive image formatter.
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);
}
/**
* Tests integration with Views.
*/
public function testViewsAddResponsiveImageField() {
// Add the image field to the View.
$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');
// Set the formatter to 'Responsive image'.
$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');
// Make sure the selected value is set.
$this
->assertSession()
->fieldValueEquals('options[settings][responsive_image_style]', self::RESPONSIVE_IMAGE_STYLE_ID);
}
}