You are here

public function AjaxFileManagedMultipleTest::testMultipleFilesUpload in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php \Drupal\Tests\file\FunctionalJavascript\AjaxFileManagedMultipleTest::testMultipleFilesUpload()

Test if managed file form element works well with multiple files upload.

File

core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php, line 33

Class

AjaxFileManagedMultipleTest
Tests ajax upload to managed files.

Namespace

Drupal\Tests\file\FunctionalJavascript

Code

public function testMultipleFilesUpload() {
  $file_system = \Drupal::service('file_system');
  $file_storage = \Drupal::entityTypeManager()
    ->getStorage('file');
  $page = $this
    ->getSession()
    ->getPage();
  $this
    ->drupalGet(Url::fromRoute('file_module_test.managed_test', [
    'multiple' => TRUE,
  ]));
  $paths = [];
  foreach (array_slice($this
    ->drupalGetTestFiles('image'), 0, 2) as $image) {
    $paths[] = $image->filename;
    $page
      ->attachFileToField('files[nested_file][]', $file_system
      ->realpath($image->uri));
    $this
      ->assertSession()
      ->assertWaitOnAjaxRequest();
  }

  // Save entire form.
  $page
    ->pressButton('Save');
  $this
    ->assertSession()
    ->pageTextContains('The file ids are 1,2.');
  $this
    ->assertCount(2, $file_storage
    ->loadByProperties([
    'filename' => $paths,
  ]));
}