class ImageFieldValidateTest
Same name in this branch
- 9 core/modules/image/tests/src/Functional/ImageFieldValidateTest.php \Drupal\Tests\image\Functional\ImageFieldValidateTest
Same name and namespace in other branches
- 11.x core/modules/image/tests/src/FunctionalJavascript/ImageFieldValidateTest.php \Drupal\Tests\image\FunctionalJavascript\ImageFieldValidateTest
- 11.x core/modules/image/tests/src/Functional/ImageFieldValidateTest.php \Drupal\Tests\image\Functional\ImageFieldValidateTest
Tests validation functions such as min/max resolution.
@group image
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait implements \PHPUnit\Framework\TestCase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase implements \Drupal\Tests\BrowserTestBase
- class \Drupal\Tests\image\FunctionalJavascript\ImageFieldTestBase uses \Drupal\Tests\image\Kernel\ImageFieldCreationTrait, \Drupal\Tests\TestFileCreationTrait implements \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\Tests\image\FunctionalJavascript\ImageFieldValidateTest implements \Drupal\Tests\image\FunctionalJavascript\ImageFieldTestBase
- class \Drupal\Tests\image\FunctionalJavascript\ImageFieldTestBase uses \Drupal\Tests\image\Kernel\ImageFieldCreationTrait, \Drupal\Tests\TestFileCreationTrait implements \Drupal\FunctionalJavascriptTests\WebDriverTestBase
- class \Drupal\FunctionalJavascriptTests\WebDriverTestBase implements \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of ImageFieldValidateTest
File
-
core/
modules/ image/ tests/ src/ FunctionalJavascript/ ImageFieldValidateTest.php, line 13
Namespace
Drupal\Tests\image\FunctionalJavascriptView source
class ImageFieldValidateTest extends ImageFieldTestBase {
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* Tests the validation message is displayed only once for ajax uploads.
*/
public function testAJAXValidationMessage() {
$field_name = strtolower($this->randomMachineName());
$this->createImageField($field_name, 'article', [
'cardinality' => -1,
]);
$this->drupalGet('node/add/article');
/** @var \Drupal\file\FileInterface[] $text_files */
$text_files = $this->drupalGetTestFiles('text');
$text_file = reset($text_files);
$field = $this->getSession()
->getPage()
->findField('files[' . $field_name . '_0][]');
$field->attachFile($this->container
->get('file_system')
->realpath($text_file->uri));
$this->assertSession()
->waitForElement('css', '.messages--error');
// Verify that Ajax validation messages are displayed only once.
$this->assertSession()
->elementsCount('xpath', '//div[contains(@class, "messages--error")]', 1);
}
/**
* Tests that image field validation works with other form submit handlers.
*/
public function testFriendlyAjaxValidation() {
// Add a custom field to the Article content type that contains an AJAX
// handler on a select field.
$field_storage = FieldStorageConfig::create([
'field_name' => 'field_dummy_select',
'type' => 'image_module_test_dummy_ajax',
'entity_type' => 'node',
'cardinality' => 1,
]);
$field_storage->save();
$field = FieldConfig::create([
'field_storage' => $field_storage,
'entity_type' => 'node',
'bundle' => 'article',
'field_name' => 'field_dummy_select',
'label' => 'Dummy select',
])->save();
\Drupal::entityTypeManager()->getStorage('entity_form_display')
->load('node.article.default')
->setComponent('field_dummy_select', [
'type' => 'image_module_test_dummy_ajax_widget',
'weight' => 1,
])
->save();
// Then, add an image field.
$this->createImageField('field_dummy_image', 'article');
// Open an article and trigger the AJAX handler.
$this->drupalGet('node/add/article');
$id = $this->getSession()
->getPage()
->find('css', '[name="form_build_id"]')
->getValue();
$field = $this->getSession()
->getPage()
->findField('field_dummy_select[select_widget]');
$field->setValue('bam');
// Make sure that the operation did not end with an exception.
$this->assertSession()
->waitForElement('css', "[name='form_build_id']:not([value='{$id}'])");
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.