WebformCompositePluginFileTest.php in Webform 6.x
File
tests/src/Functional/Composite/WebformCompositePluginFileTest.php
View source
<?php
namespace Drupal\Tests\webform\Functional\Composite;
use Drupal\file\Entity\File;
use Drupal\webform\Entity\Webform;
use Drupal\webform\Entity\WebformSubmission;
use Drupal\Tests\webform\Functional\Element\WebformElementManagedFileTestBase;
class WebformCompositePluginFileTest extends WebformElementManagedFileTestBase {
public static $modules = [
'webform_test_element',
];
protected static $testWebforms = [
'test_element_comp_file_plugin',
];
public function testPlugin() {
$webform = Webform::load('test_element_comp_file_plugin');
$first_file = $this->files[0];
$second_file = $this->files[1];
$edit = [
'webform_test_composite_file[textfield]' => '{textfield}',
'files[webform_test_composite_file_managed_file]' => \Drupal::service('file_system')
->realpath($first_file->uri),
];
$sid = $this
->postSubmission($webform, $edit);
$webform_submission = WebformSubmission::load($sid);
$fid = $this
->getLastFileId();
$file = File::load($fid);
$this
->assertTrue($file
->isPermanent());
$element_data = $webform_submission
->getElementData('webform_test_composite_file');
$this
->assertEqual($element_data['managed_file'], $fid, 'Test file was upload to the current submission');
$this
->assertIdentical([
'webform' => [
'webform_submission' => [
$sid => '1',
],
],
], $this->fileUsage
->listUsage($file), 'The file has 1 usage.');
$this
->assertEqual($file
->getFileUri(), 'private://webform/test_element_comp_file_plugin/' . $sid . '/' . $first_file->filename);
$this
->assertFileExists($file
->getFileUri());
$edit = [
'webform_test_composite_file_multiple_header[items][0][textfield]' => '{textfield}',
'files[webform_test_composite_file_multiple_header_items_0_managed_file]' => \Drupal::service('file_system')
->realpath($second_file->uri),
];
$sid = $this
->postSubmission($webform, $edit);
$webform_submission = WebformSubmission::load($sid);
$fid = $this
->getLastFileId();
$file = File::load($fid);
$this
->assertTrue($file
->isPermanent());
$element_data = $webform_submission
->getElementData('webform_test_composite_file_multiple_header');
$this
->assertEqual($element_data[0]['managed_file'], $fid, 'Test file was upload to the current submission');
$this
->assertIdentical([
'webform' => [
'webform_submission' => [
$sid => '1',
],
],
], $this->fileUsage
->listUsage($file), 'The file has 1 usage.');
$this
->assertEqual($file
->getFileUri(), 'private://webform/test_element_comp_file_plugin/' . $sid . '/' . $second_file->filename);
$this
->assertFileExists($file
->getFileUri());
}
}