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. |