25 private $testDirectories = [];
32 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
47 $directory = $this->getDirectoryInstance($basePath,
$permissions);
48 $this->assertTrue($directory->create(
$path));
49 $this->assertTrue($directory->isExist(
$path));
60 [
'newDir1', 0777,
"newDir1"],
61 [
'newDir1', 0777,
"root_dir1/subdir1/subdir2"],
62 [
'newDir2', 0777,
"root_dir2/subdir"],
63 [
'newDir1', 0777,
"."]
70 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
72 $dir->create(
'../../outsideDir');
77 $dir->create(
'//./..///../outsideDir');
82 $dir->create(
'\..\..\outsideDir');
86 $this->assertEquals(3, $exceptions);
97 $directory = $this->getDirectoryInstance(
'newDir', 0777);
98 $directory->create(
$path);
99 $this->assertTrue($directory->isExist(
$path));
100 $directory->delete(
$path);
101 $this->assertFalse($directory->isExist(
$path));
111 return [[
'subdir'], [
'subdir/subsubdir']];
117 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
119 $dir->delete(
'../../Directory');
124 $dir->delete(
'//./..///../Directory');
129 $dir->delete(
'\..\..\Directory');
133 $this->assertEquals(3, $exceptions);
147 $directory = $this->getDirectoryInstance($basePath,
$permissions);
148 $directory->touch(
$name);
149 $created = $directory->read();
150 $directory->renameFile(
$name, $newName);
151 $renamed = $directory->read();
152 $this->assertTrue(in_array(
$name, $created));
153 $this->assertTrue(in_array($newName, $renamed));
154 $this->assertFalse(in_array(
$name, $renamed));
164 return [[
'newDir1', 0777,
'first_name.txt',
'second_name.txt']];
170 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
172 $dir->renameFile(
'../../Directory/ReadTest.php',
'RenamedTest');
178 '//./..///../Directory/ReadTest.php',
185 $dir->renameFile(
'\..\..\Directory\ReadTest.php',
'RenamedTest');
189 $this->assertEquals(3, $exceptions);
204 $dir1 = $this->getDirectoryInstance($firstDir, $permission);
205 $dir2 = $this->getDirectoryInstance($secondDir, $permission);
208 $created = $dir1->read();
209 $dir1->renameFile(
$name, $newName, $dir2);
210 $oldPlace = $dir1->read();
212 $this->assertTrue(in_array(
$name, $created));
213 $this->assertFalse(in_array(
$name, $oldPlace));
223 return [[
'dir1',
'dir2', 0777,
'first_name.txt',
'second_name.txt']];
237 $directory = $this->getDirectoryInstance($basePath,
$permissions);
238 $file = $directory->openFile(
$name,
'w+');
240 $directory->copyFile(
$name, $newName);
241 $this->assertTrue($directory->isExist(
$name));
242 $this->assertTrue($directory->isExist($newName));
253 [
'newDir1', 0777,
'first_name.txt',
'second_name.txt'],
254 [
'newDir1', 0777,
'subdir/first_name.txt',
'subdir/second_name.txt']
261 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
262 $dir->touch(
'test_file_for_copy_outside.txt');
264 $dir->copyFile(
'../../Directory/ReadTest.php',
'CopiedTest');
270 '//./..///../Directory/ReadTest.php',
277 $dir->copyFile(
'\..\..\Directory\ReadTest.php',
'CopiedTest');
283 'test_file_for_copy_outside.txt',
284 '../../Directory/copied_outside.txt' 289 $this->assertEquals(4, $exceptions);
304 $dir1 = $this->getDirectoryInstance($firstDir, $permission);
305 $dir2 = $this->getDirectoryInstance($secondDir, $permission);
307 $file = $dir1->openFile(
$name,
'w+');
309 $dir1->copyFile(
$name, $newName, $dir2);
311 $this->assertTrue($dir1->isExist(
$name));
312 $this->assertTrue($dir2->isExist($newName));
323 [
'dir1',
'dir2', 0777,
'first_name.txt',
'second_name.txt'],
324 [
'dir1',
'dir2', 0777,
'subdir/first_name.txt',
'subdir/second_name.txt']
333 $directory = $this->getDirectoryInstance(
'newDir1', 0777);
334 $directory->create(
'test_directory');
335 $this->assertTrue($directory->changePermissions(
'test_directory', 0644));
341 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
343 $dir->changePermissions(
'../../Directory', 0777);
348 $dir->changePermissions(
'//./..///../Directory', 0777);
353 $dir->changePermissions(
'\..\..\Directory', 0777);
357 $this->assertEquals(3, $exceptions);
365 $directory = $this->getDirectoryInstance(
'newDir1', 0777);
366 $directory->create(
'test_directory');
367 $directory->create(
'test_directory/subdirectory');
368 $directory->writeFile(
'test_directory/subdirectory/test_file.txt',
'Test Content');
370 $this->assertTrue($directory->changePermissionsRecursively(
'test_directory', 0777, 0644));
376 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
378 $dir->changePermissionsRecursively(
'../foo', 0777, 0777);
383 $dir->changePermissionsRecursively(
'//./..///foo', 0777, 0777);
388 $dir->changePermissionsRecursively(
'\..\foo', 0777, 0777);
392 $this->assertEquals(3, $exceptions);
406 $directory = $this->getDirectoryInstance($basePath,
$permissions);
407 $directory->openFile(
$path);
408 $this->assertTrue($directory->touch(
$path, $time));
409 $this->assertEquals($time, $directory->stat(
$path)[
'mtime']);
420 [
'test_directory', 0777,
'touch_file.txt',
time() - 3600],
421 [
'test_directory', 0777,
'subdirectory/touch_file.txt',
time() - 3600]
428 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
430 $dir->touch(
'../../foo.tst');
435 $dir->touch(
'//./..///../foo.tst');
440 $dir->touch(
'\..\..\foo.tst');
444 $this->assertEquals(3, $exceptions);
452 $directory = $this->getDirectoryInstance(
'newDir1', 0777);
453 $directory->create(
'bar');
454 $this->assertFalse($directory->isWritable(
'not_existing_dir'));
455 $this->assertTrue($directory->isWritable(
'bar'));
461 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
463 $dir->isWritable(
'../../Directory');
468 $dir->isWritable(
'//./..///../Directory');
473 $dir->isWritable(
'\..\..\Directory');
477 $this->assertEquals(3, $exceptions);
491 $directory = $this->getDirectoryInstance($basePath,
$permissions);
505 [
'newDir1', 0777,
'newFile.txt',
'w+'],
506 [
'newDir1', 0777,
'subdirectory/newFile.txt',
'w+']
513 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
515 $dir->openFile(
'../../Directory/ReadTest.php');
520 $dir->openFile(
'//./..///../Directory/ReadTest.php');
525 $dir->openFile(
'\..\..\Directory\ReadTest.php');
529 $this->assertEquals(3, $exceptions);
542 $directory = $this->getDirectoryInstance(
'writeFileDir', 0777);
545 $directory->writeFile(
$path, $extraContent);
546 $this->assertEquals($extraContent, $directory->readFile(
$path));
559 $directory = $this->getDirectoryInstance(
'writeFileDir', 0777);
562 $directory->writeFile(
$path, $extraContent,
'a+');
563 $this->assertEquals(
$content . $extraContent, $directory->readFile(
$path));
573 return [[
'file1',
'123',
'456'], [
'folder1/file1',
'123',
'456']];
579 $dir = $this->getDirectoryInstance(
'newDir1', 0777);
581 $dir->writeFile(
'../../Directory/ReadTest.php',
'tst');
586 $dir->writeFile(
'//./..///../Directory/ReadTest.php',
'tst');
591 $dir->writeFile(
'\..\..\Directory\ReadTest.php',
'tst');
595 $this->assertEquals(3, $exceptions);
601 public function tearDown()
604 foreach ($this->testDirectories as $directory) {
605 if ($directory->isExist()) {
606 $directory->delete();
624 $directoryFactory =
$objectManager->create(\
Magento\Framework\Filesystem\Directory\WriteFactory::class);
626 $this->testDirectories[] = $directory;
testRenameTargetDir($firstDir, $secondDir, $permission, $name, $newName)
defined('TESTS_BP')||define('TESTS_BP' __DIR__
testTouch($basePath, $permissions, $path, $time)
testCreate($basePath, $permissions, $path)
testCopyTargetDir($firstDir, $secondDir, $permission, $name, $newName)
testRename($basePath, $permissions, $name, $newName)
testOpenFile($basePath, $permissions, $path, $mode)
if($exist=($block->getProductCollection() && $block->getProductCollection() ->getSize())) $mode
renameTargetDirProvider()
testWriteFile($path, $content, $extraContent)
testCopy($basePath, $permissions, $name, $newName)
testWriteFileAppend($path, $content, $extraContent)
testChangePermissionsOutside()
testChangePermissionsRecursively()
static getObjectManager()
if(!isset($_GET['name'])) $name
testChangePermissionsRecursivelyOutside()