AjaxFileManagedMultipleTest.php

Same filename and directory in other branches
  1. 9 core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php
  2. 8.9.x core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php
  3. 11.x core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php

Namespace

Drupal\Tests\file\FunctionalJavascript

File

core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\file\FunctionalJavascript;

use Drupal\Core\Url;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\Tests\TestFileCreationTrait;

/**
 * Tests ajax upload to managed files.
 *
 * @group file
 */
class AjaxFileManagedMultipleTest extends WebDriverTestBase {
  use TestFileCreationTrait {
    getTestFiles as drupalGetTestFiles;
  }
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'file_test',
    'file',
    'file_module_test',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Tests if managed file form element works well with multiple files upload.
   */
  public function testMultipleFilesUpload() : void {
    $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,
    ]));
  }

}

Classes

Title Deprecated Summary
AjaxFileManagedMultipleTest Tests ajax upload to managed files.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.