Namespace
  Drupal\Tests\file_example\Functional
File
  - 
              modules/file_example/tests/src/Functional/FileExampleTest.php
    
   
  
    View source
  
  <?php
namespace Drupal\Tests\file_example\Functional;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\Tests\examples\Functional\ExamplesBrowserTestBase;
class FileExampleTest extends ExamplesBrowserTestBase {
  
  protected $defaultTheme = 'stark';
  
  public static $modules = [
    'file_example',
  ];
  
  public function testFileExampleBasic() {
    $assert = $this->assertSession();
    
    
    $permissions = [
      'use file example',
      'read private files',
      'read temporary files',
      'read session files',
    ];
    $priviledged_user = $this->drupalCreateUser($permissions);
    $this->drupalLogin($priviledged_user);
    $expected_text = [
      'Write managed file' => 'Saved managed file',
      'Write unmanaged file' => 'Saved file as',
      'Unmanaged using PHP' => 'Saved file as',
    ];
    
    $buttons = [
      'Write managed file',
      'Write unmanaged file',
      'Unmanaged using PHP',
    ];
    foreach ($buttons as $button) {
      
      
      $schemes = [
        'public',
        'private',
        'temporary',
        'session',
      ];
      foreach ($schemes as $scheme) {
        
        $dirname = $scheme . '://' . $this->randomMachineName(10);
        
        $edit = [
          'directory_name' => $dirname,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if directory exists');
        $assert->pageTextContains((string) new FormattableMarkup('Directory @dirname does not exist', [
          '@dirname' => $dirname,
        ]));
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Create directory');
        $assert->pageTextContains((string) new FormattableMarkup('Directory @dirname is ready for use', [
          '@dirname' => $dirname,
        ]));
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if directory exists');
        $assert->pageTextContains((string) new FormattableMarkup('Directory @dirname exists', [
          '@dirname' => $dirname,
        ]));
        
        $content = $this->randomMachineName(30);
        $filename = $dirname . '/' . $this->randomMachineName(30) . '.txt';
        
        $edit = [
          'fileops_file' => $filename,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if file exists');
        $assert->pageTextContains((string) new FormattableMarkup('The file @filename does not exist', [
          '@filename' => $filename,
        ]));
        dump("Processing button={$button}, scheme={$scheme}, dir={$dirname}, file={$filename}");
        $edit = [
          'write_contents' => $content,
          'destination' => $filename,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, $button);
        dump($expected_text[$button]);
        $assert->pageTextContains($expected_text[$button]);
        
        
        $element = $this->xpath('//span[@id="uri"]');
        $output_filename = (string) $element[0]->getText();
        dump($output_filename);
        
        
        if (!in_array($scheme, [])) {
          $this->clickLink('this URL');
          $assert->statusCodeEquals(200);
          
          
          
          $buffer = $this->getSession()
            ->getPage()
            ->getContent();
          $this->assertEquals($content, $buffer);
        }
        
        $edit = [
          'fileops_file' => $filename,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if file exists');
        $assert->pageTextContains("The file {$filename} exists");
        
        
        $edit = [
          'fileops_file' => $output_filename,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Read the file and store it locally');
        $assert->pageTextContains('The file was read and copied');
        $edit = [
          'fileops_file' => $filename,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Delete file');
        $assert->pageTextContains('Successfully deleted');
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if file exists');
        $assert->pageTextContains((string) new FormattableMarkup('The file @filename does not exist', [
          '@filename' => $filename,
        ]));
        $edit = [
          'directory_name' => $dirname,
        ];
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Delete directory');
        $this->drupalGet('examples/file_example');
        $this->submitForm($edit, 'Check to see if directory exists');
        $assert->pageTextContains((string) new FormattableMarkup('Directory @dirname does not exist', [
          '@dirname' => $dirname,
        ]));
      }
    }
  }
}
 
Classes
  
  
  
  
  
  
  
        
      
                                                  | Title | Deprecated | Summary | 
    
    
          
                                                                                        | FileExampleTest |  | Functional tests for the File Example module. |