file_encrypt-8.x-1.x-dev/tests/src/Functional/FieldStorageConfigurationTest.php
tests/src/Functional/FieldStorageConfigurationTest.php
<?php
namespace Drupal\Tests\file_encrypt\Functional;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\node\Entity\NodeType;
/**
* Tests the field storage configuration UI.
*
* @group file_encrypt
*/
class FieldStorageConfigurationTest extends FunctionalTestBase {
/**
* Tests the field storage adding.
*/
public function testFieldStorageSettingsForm() {
$account = $this->drupalCreateUser([
'administer content types',
'administer node fields',
'administer node display',
]);
$this->drupalLogin($account);
NodeType::create([
'type' => 'page',
])->save();
$assert = $this->assertSession();
// Test a file field.
$this->drupalGet('admin/structure/types/manage/page/fields/add-field');
$assert->statusCodeEquals(200);
$this->submitForm([
'new_storage_type' => 'file_upload',
], 'Continue');
$this->submitForm([
'field_name' => 'test_file',
'label' => 'New file field',
'group_field_options_wrapper' => 'file',
], 'Continue');
$this->submitForm([
'field_storage[subform][settings][uri_scheme]' => 'encrypt',
'field_storage[subform][settings][encryption_profile]' => 'encryption_profile_1',
], 'Save settings');
$field_storage_config = FieldStorageConfig::load('node.field_test_file');
$this->assertEquals('encryption_profile_1', $field_storage_config->getThirdPartySetting('file_encrypt', 'encryption_profile'));
$field_config = FieldConfig::load('node.page.field_test_file');
$this->assertStringStartsWith('encryption_profile_1', $field_config->getSetting('file_directory'));
// Test an image field.
$this->drupalGet('admin/structure/types/manage/page/fields/add-field');
$assert->statusCodeEquals(200);
$this->submitForm([
'new_storage_type' => 'file_upload',
], 'Continue');
$this->submitForm([
'field_name' => 'test_image',
'label' => 'New image field',
'group_field_options_wrapper' => 'image',
], 'Continue');
$this->submitForm([
'field_storage[subform][settings][uri_scheme]' => 'encrypt',
'field_storage[subform][settings][encryption_profile]' => 'encryption_profile_1',
], 'Save settings');
$field_storage_config = FieldStorageConfig::load('node.field_test_image');
$this->assertEquals('encryption_profile_1', $field_storage_config->getThirdPartySetting('file_encrypt', 'encryption_profile'));
$field_config = FieldConfig::load('node.page.field_test_file');
$this->assertStringStartsWith('encryption_profile_1', $field_config->getSetting('file_directory'));
}
}
