FileFieldPathsUpdateTest.php in File (Field) Paths 8
File
tests/src/Functional/FileFieldPathsUpdateTest.php
View source
<?php
namespace Drupal\Tests\filefield_paths\Functional;
class FileFieldPathsUpdateTest extends FileFieldPathsTestBase {
public function testRetroEmpty() {
$field_name = mb_strtolower($this
->randomMachineName());
$this
->createFileField($field_name, 'node', $this->contentType);
$edit = [
'third_party_settings[filefield_paths][retroactive_update]' => TRUE,
];
$this
->drupalGet("admin/structure/types/manage/{$this->contentType}/fields/node.{$this->contentType}.{$field_name}");
$this
->submitForm($edit, 'Save settings');
$this
->assertSession()
->pageTextNotContains('The website encountered an unexpected error.');
$this
->assertSession()
->pageTextContains("Saved {$field_name} configuration.");
}
public function testRetroBasic() {
$field_name = mb_strtolower($this
->randomMachineName());
$this
->createImageField($field_name, $this->contentType, []);
$display = \Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load("node.{$this->contentType}.default");
$display
->setComponent($field_name, [
'settings' => [
'image_style' => 'thumbnail',
'image_link' => 'content',
],
])
->save();
$this
->drupalGet("admin/structure/types/manage/{$this->contentType}/display");
$original_display = \Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load("node.{$this->contentType}.default");
$test_file = $this
->getTestFile('image');
$nid = $this
->uploadNodeFile($test_file, $field_name, $this->contentType);
$this
->submitForm([
"{$field_name}[0][alt]" => $this
->randomString(),
], 'Save');
$this
->drupalGet("node/{$nid}");
$date = date('Y-m');
$this
->assertRaw("{$this->publicFilesDirectory}/styles/thumbnail/public/{$date}/{$test_file->getFilename()}");
$this
->drupalGet("admin/structure/types/manage/{$this->contentType}/fields/node.{$this->contentType}.{$field_name}");
$edit['third_party_settings[filefield_paths][retroactive_update]'] = TRUE;
$edit['third_party_settings[filefield_paths][file_path][value]'] = 'node/[node:nid]';
$this
->submitForm($edit, 'Save settings');
\Drupal::entityTypeManager()
->clearCachedDefinitions();
$display = \Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load("node.{$this->contentType}.default");
$this
->assertSame($original_display
->getComponent($field_name), $display
->getComponent($field_name), 'Display settings have not changed.');
$this
->drupalGet("node/{$nid}");
$this
->assertRaw("{$this->publicFilesDirectory}/styles/thumbnail/public/node/{$nid}/{$test_file->getFilename()}");
}
}