MultipleFileUploadTest.php in Drupal 8
File
core/modules/file/tests/src/Functional/MultipleFileUploadTest.php
View source
<?php
namespace Drupal\Tests\file\Functional;
use Drupal\Tests\BrowserTestBase;
class MultipleFileUploadTest extends BrowserTestBase {
public static $modules = [
'file',
];
protected $defaultTheme = 'stark';
protected function setUp() {
parent::setUp();
$admin = $this
->drupalCreateUser([
'administer themes',
]);
$this
->drupalLogin($admin);
}
public function testMultipleFileFieldWithAllFileExtensions() {
$theme = 'test_theme_settings';
\Drupal::service('theme_installer')
->install([
$theme,
]);
$this
->drupalGet("admin/appearance/settings/{$theme}");
$edit = [];
foreach ([
'file1.wtf',
'file2.wtf',
] as $i => $file) {
$file_path = $this->root . "/sites/default/files/simpletest/{$file}";
file_put_contents($file_path, 'File with non-default extension.', FILE_APPEND | LOCK_EX);
$edit["files[multi_file][{$i}]"] = $file_path;
}
$this
->drupalGet("admin/appearance/settings/{$theme}");
$submit_xpath = $this
->assertSession()
->buttonExists('Save configuration')
->getXpath();
$client = $this
->getSession()
->getDriver()
->getClient();
$form = $client
->getCrawler()
->filterXPath($submit_xpath)
->form();
$client
->request($form
->getMethod(), $form
->getUri(), $form
->getPhpValues(), $edit);
$page = $this
->getSession()
->getPage();
$this
->assertStringNotContainsString('Only files with the following extensions are allowed', $page
->getContent());
$this
->assertStringContainsString('The configuration options have been saved.', $page
->getContent());
$this
->assertStringContainsString('file1.wtf', $page
->getContent());
$this
->assertStringContainsString('file2.wtf', $page
->getContent());
}
}