From 14fcafc9a5c6d8c5ddc5f50e2001e5f37fc9f932 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 3 Oct 2020 22:34:58 +0200 Subject: [PATCH] impl. more tests --- Ai/Ocr/BasicOcr.php | 175 ++- Autoloader.php | 6 +- Module/InstallerAbstract.php | 2 +- Module/ModuleManager.php | 14 +- Module/PackageManager.php | 2 +- Module/UninstallerAbstract.php | 5 +- System/File/Ftp/File.php | 100 +- System/File/Ftp/FileAbstract.php | 11 - System/File/Ftp/FtpStorage.php | 172 ++- System/File/Local/FileAbstract.php | 8 - System/File/Local/LocalStorage.php | 8 +- tests/Ai/Ocr/BasicOcrTest.php | 32 +- tests/Ai/Ocr/t10k-images-idx3-ubyte | Bin 0 -> 78416 bytes tests/Ai/Ocr/t10k-labels-idx1-ubyte | Bin 0 -> 108 bytes tests/Ai/Ocr/train-images-idx3-ubyte | Bin 0 -> 1176016 bytes tests/Ai/Ocr/train-labels-idx1-ubyte | Bin 0 -> 1508 bytes .../Database/Schema/BuilderTest.php | 13 +- tests/Module/ModuleAbstractTest.php | 2 +- tests/Module/ModuleManagerTest.php | 19 + tests/Module/PackageManagerTest.php | 2 +- tests/Module/Testmodule/Admin/Installer.php | 29 + .../Moduletestapplication/index.tpl.php} | 0 .../Moduletestapplication/info.json | 20 + tests/Module/Testmodule/info.json | 25 + .../Remove/me.md} | 0 .../a.md => testModulePackage/Replace.md} | 0 .../toMove => testModulePackage/toCopy}/a.md | 0 .../toCopy/sub/b.txt | 0 .../b.txt => testModulePackage/toMove/a.md} | 0 .../Module/testModulePackage/toMove/sub/b.txt | 0 tests/System/File/Ftp/DirectoryTest.php | 13 +- tests/System/File/Ftp/FileTest.php | 4 +- tests/System/File/Ftp/FtpStorageTest.php | 1101 +++++++++++++++++ tests/System/File/Local/DirectoryTest.php | 2 +- tests/System/File/Local/LocalStorageTest.php | 2 +- 35 files changed, 1543 insertions(+), 224 deletions(-) create mode 100644 tests/Ai/Ocr/t10k-images-idx3-ubyte create mode 100644 tests/Ai/Ocr/t10k-labels-idx1-ubyte create mode 100644 tests/Ai/Ocr/train-images-idx3-ubyte create mode 100644 tests/Ai/Ocr/train-labels-idx1-ubyte create mode 100644 tests/Module/Testmodule/Admin/Installer.php rename tests/Module/{testModule/Remove/me.md => Testmodule/Application/Moduletestapplication/index.tpl.php} (100%) create mode 100644 tests/Module/Testmodule/Application/Moduletestapplication/info.json create mode 100644 tests/Module/Testmodule/info.json rename tests/Module/{testModule/Replace.md => testModulePackage/Remove/me.md} (100%) rename tests/Module/{testModule/toCopy/a.md => testModulePackage/Replace.md} (100%) rename tests/Module/{testModule/toMove => testModulePackage/toCopy}/a.md (100%) rename tests/Module/{testModule => testModulePackage}/toCopy/sub/b.txt (100%) rename tests/Module/{testModule/toMove/sub/b.txt => testModulePackage/toMove/a.md} (100%) create mode 100644 tests/Module/testModulePackage/toMove/sub/b.txt create mode 100644 tests/System/File/Ftp/FtpStorageTest.php diff --git a/Ai/Ocr/BasicOcr.php b/Ai/Ocr/BasicOcr.php index 44a6563ab..6b7ee5be8 100644 --- a/Ai/Ocr/BasicOcr.php +++ b/Ai/Ocr/BasicOcr.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace phpOMS\Ai\Ocr; use phpOMS\Math\Topology\MetricsND; +use phpOMS\System\File\PathException; /** * Basic OCR implementation for MNIST data @@ -53,164 +54,135 @@ final class BasicOcr * * @param string $dataPath Impage path to read * @param string $labelPath Label path to read + * @param string $limit Limit * * @return void * * @since 1.0.0 */ - public function trainWith(string $dataPath, string $labelPath) : void + public function trainWith(string $dataPath, string $labelPath, int $limit = 0) : void { - $Xtrain = $this->readImages($dataPath); - $ytrain = $this->readLabels($labelPath); + $Xtrain = $this->readImages($dataPath, $limit); + $ytrain = $this->readLabels($labelPath, $limit); - $this->Xtrain = \array_merge($this->Xtrain, $this->extractFeatures($Xtrain)); - $this->ytrain = \array_merge($this->ytrain, $this->extractFeatures($ytrain)); + $this->Xtrain = \array_merge($this->Xtrain, $Xtrain); + $this->ytrain = \array_merge($this->ytrain, $ytrain); } /** * Reat image from path * - * @param string $path Image to read + * @param string $path Image to read + * @param string $limit Limit * * @return array * * @since 1.0.0 */ - private function readImages(string $path) : array + private function readImages(string $path, int $limit = 0) : array { + if (!\file_exists($path)) { + throw new PathException($path); + } + $fp = \fopen($path, 'r'); if ($fp === false) { - throw new \Exception(); + throw new PathException($path); // @codeCoverageIgnore } $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore } - $magicNumber = \unpack('l', $read)[1]; + $magicNumber = \unpack('N', $read)[1]; $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore + } + $numberOfImages = \unpack('N', $read)[1]; + + if ($limit > 0) { + $numberOfImages = \min($numberOfImages, $limit); } - $numberOfImages = \unpack('l', $read)[1]; $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore } - $numberOfRows = \unpack('l', $read)[1]; + $numberOfRows = \unpack('N', $read)[1]; $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore } - $numberOfColumns = \unpack('l', $read)[1]; + $numberOfColumns = \unpack('N', $read)[1]; $images = []; for ($i = 0; $i < $numberOfImages; ++$i) { - $image = []; - - for ($row = 0; $row < $numberOfRows; ++$row) { - $rows = []; - - for ($col = 0; $col < $numberOfColumns; ++$col) { - $read = \fread($fp, 1); - if (!$read) { - return []; - } - $rows[] = \unpack('l', $read)[1]; //fread($fp, 1); - } - - $image[] = $rows; + $read = \fread($fp, $numberOfRows * $numberOfColumns); + if ($read === false) { + return []; // @codeCoverageIgnore } - - $images[] = $image; + $images[] = \array_values(\unpack('C*', $read)); } + \fclose($fp); + return $images; } /** * Read labels from from path * - * @param string $path Labels path + * @param string $path Labels path + * @param string $limit Limit * * @return array * * @since 1.0.0 */ - private function readLabels(string $path) : array + private function readLabels(string $path, int $limit = 0) : array { + if (!\file_exists($path)) { + throw new PathException($path); + } + $fp = \fopen($path, 'r'); if ($fp === false) { - throw new \Exception(); + throw new PathException($path); // @codeCoverageIgnore } $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore } - $magicNumber = \unpack('l', $read)[1]; + $magicNumber = \unpack('N', $read)[1]; $read = \fread($fp, 4); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore + } + $numberOfLabels = \unpack('N', $read)[1]; + + if ($limit > 0) { + $numberOfLabels = \min($numberOfLabels, $limit); } - $numberOfLabels = \unpack('l', $read)[1]; $labels = []; for ($i = 0; $i < $numberOfLabels; ++$i) { $read = \fread($fp, 1); - if (!$read) { - return []; + if ($read === false) { + return []; // @codeCoverageIgnore } - $labels[] = \unpack('l', $read)[1]; //fread($fp, 1); + $labels[] = \unpack('C', $read)[1]; } + \fclose($fp); + return $labels; } - /** - * Extract data and labe information from image data - * - * @param array $data Image data and label information from the images - * - * @return array - * - * @since 1.0.0 - */ - private function extractFeatures(array $data) : array - { - $features = []; - foreach ($data as $sample) { - $features[] = $this->flatten($sample); - } - - return $features; - } - - /** - * Reduce the dimension of the data and label information - * - * @param array $data Image data and labell information to flatten - * - * @return array - * - * @sicne 1.0.0 - */ - private function flatten(array $data) : array - { - $flat = []; - foreach ($data as $sublist) { - foreach ($sublist as $pixel) { - $flat[] = $pixel; - } - } - - return $flat; - } - /** * Find the k-nearest matches for test data * @@ -227,19 +199,22 @@ final class BasicOcr $distances = $this->getDistances($Xtrain, $sample); \asort($distances); - // find possible k-labels for a image - $kKeys = \array_keys(\array_slice($distances, 0, $k)); - $candidateLabels = []; + $keys = \array_keys($distances); - foreach ($kKeys as $key) { - $candidateLabels[] = $ytrain[$key]; + $candidateLabels = []; + for ($i = 0; $i < $k; ++$i) { + $candidateLabels[] = $ytrain[$keys[$i]]; } // find best match $countedCandidates = \array_count_values($candidateLabels); - \asort($countedCandidates); - $predictedLabels[] = ['label' => \array_key_first($countedCandidates), 'prob' => \reset($countedCandidates) / $k]; + foreach ($candidateLabels as $i => $label) { + $predictedLabels[] = [ + 'label' => $label, + 'prob' => $countedCandidates[$candidateLabels[$i]] / $k, + ]; + } } return $predictedLabels; @@ -268,17 +243,19 @@ final class BasicOcr /** * Categorize an unknown image * - * @param string $path Path to the image to categorize/evaluate/match against the training data + * @param string $path Path to the image to categorize/evaluate/match against the training data + * @param string $comparison Amount of comparisons + * @param string $limit Limit * * @return array * * @since 1.0.0 */ - public function match(string $path) : array + public function match(string $path, int $comparison = 3, int $limit = 0) : array { // @todo: implement image reading if it isn't an mnist file - $Xtest = $this->readImages($path); + $Xtest = $this->readImages($path, $limit); - return $this->kNearest($this->Xtrain, $this->ytrain, $Xtest); + return $this->kNearest($this->Xtrain, $this->ytrain, $Xtest, $comparison); } } diff --git a/Autoloader.php b/Autoloader.php index 5dbe733a1..4b4da968c 100644 --- a/Autoloader.php +++ b/Autoloader.php @@ -128,13 +128,13 @@ final class Autoloader public static function invalidate(string $class) : bool { if (!\extension_loaded('opcache') - || !\opcache_is_script_cached(__DIR__ . '/../../Models/NewsArticleMapper.php') + || !\opcache_is_script_cached($class) ) { return false; } - \opcache_invalidate(__DIR__ . '/../../Models/NewsArticleMapper.php'); - \opcache_compile_file(__DIR__ . '/../../Models/NewsArticleMapper.php'); + \opcache_invalidate($class); + \opcache_compile_file($class); return true; } diff --git a/Module/InstallerAbstract.php b/Module/InstallerAbstract.php index 3b1d6a61f..3ffab67a3 100644 --- a/Module/InstallerAbstract.php +++ b/Module/InstallerAbstract.php @@ -142,7 +142,7 @@ abstract class InstallerAbstract $content = \file_get_contents($path); if ($content === false) { - return; + return; // @codeCoverageIgnore } $definitions = \json_decode($content, true); diff --git a/Module/ModuleManager.php b/Module/ModuleManager.php index aca844666..22504a45a 100644 --- a/Module/ModuleManager.php +++ b/Module/ModuleManager.php @@ -376,7 +376,7 @@ final class ModuleManager return true; } catch (\Exception $e) { - return false; + return false; // @codeCoverageIgnore } } @@ -427,7 +427,7 @@ final class ModuleManager return true; } catch (\Exception $e) { - return false; + return false; // @codeCoverageIgnore } } @@ -528,10 +528,8 @@ final class ModuleManager $this->installApplications($module); return true; - } catch (PathException $e) { - return false; - } catch (\Exception $e) { - return false; + } catch (\Throwable $t) { + return false; // @codeCoverageIgnore } } @@ -587,9 +585,7 @@ final class ModuleManager } return true; - } catch (PathException $e) { - return false; - } catch (\Exception $e) { + } catch (\Throwable $t) { return false; } } diff --git a/Module/PackageManager.php b/Module/PackageManager.php index 02884de5e..72c43d131 100644 --- a/Module/PackageManager.php +++ b/Module/PackageManager.php @@ -162,7 +162,7 @@ final class PackageManager $contents = \file_get_contents($this->extractPath . '/' . $file); if ($contents === false) { - throw new \Exception(); + throw new \Exception(); // @codeCoverageIgnore } \sodium_crypto_generichash_update($state, $contents); diff --git a/Module/UninstallerAbstract.php b/Module/UninstallerAbstract.php index 10665133f..3e42b1196 100644 --- a/Module/UninstallerAbstract.php +++ b/Module/UninstallerAbstract.php @@ -68,12 +68,11 @@ abstract class UninstallerAbstract $content = \file_get_contents($path); if ($content === false) { - return; + return; // @codeCoverageIgnore } $definitions = \json_decode($content, true); - - $builder = new SchemaBuilder($dbPool->get('schema')); + $builder = new SchemaBuilder($dbPool->get('schema')); foreach ($definitions as $definition) { $builder->dropTable($definition['table'] ?? ''); diff --git a/System/File/Ftp/File.php b/System/File/Ftp/File.php index 2065eb0c3..88f157a73 100644 --- a/System/File/Ftp/File.php +++ b/System/File/Ftp/File.php @@ -50,6 +50,20 @@ class File extends FileAbstract implements FileInterface $this->con = $con ?? self::ftpConnect($this->uri); parent::__construct($uri->getPath()); + + if (self::exists($this->con, $this->path)) { + $this->index(); + } + } + + /** + * {@inheritdoc} + */ + public function index() : void + { + parent::index(); + + $this->size = (int) \ftp_size($this->con, $this->path); } /** @@ -162,7 +176,7 @@ class File extends FileAbstract implements FileInterface /** * {@inheritdoc} */ - public static function count(string $path, bool $recursive = true, array $ignore = []) : int + public static function count($con, string $path, bool $recursive = true, array $ignore = []) : int { return 1; } @@ -377,6 +391,18 @@ class File extends FileAbstract implements FileInterface return LocalFile::extension($path); } + /** + * Check if the file exists + * + * @return bool + * + * @since 1.0.0 + */ + public function isExisting() : bool + { + return self::exists($this->con, $this->path); + } + /** * Get the parent path of the resource. * @@ -388,12 +414,10 @@ class File extends FileAbstract implements FileInterface */ public function getParent() : ContainerInterface { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement getParent() - */ + $uri = clone $this->uri; + $uri->setPath(self::parent($this->path)); - return $this; + return new Directory($uri, '*', true, $this->con); } /** @@ -420,12 +444,7 @@ class File extends FileAbstract implements FileInterface */ public function copyNode(string $to, bool $overwrite = false) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement copyNode() - */ - - return true; + return self::copy($this->con, $this->path, $to, $overwrite); } /** @@ -440,12 +459,7 @@ class File extends FileAbstract implements FileInterface */ public function moveNode(string $to, bool $overwrite = false) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement moveNode() - */ - - return true; + return self::move($this->con, $this->path, $to, $overwrite); } /** @@ -457,12 +471,7 @@ class File extends FileAbstract implements FileInterface */ public function deleteNode() : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement deleteNode() - */ - - return true; + return self::delete($this->con, $this->path); } /** @@ -477,12 +486,7 @@ class File extends FileAbstract implements FileInterface */ public function putContent(string $content, int $mode = ContentPutMode::APPEND | ContentPutMode::CREATE) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement putContent() - */ - - return true; + return self::put($this->con, $this->path, $content, $mode); } /** @@ -498,12 +502,7 @@ class File extends FileAbstract implements FileInterface */ public function setContent(string $content) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement setContent() - */ - - return true; + return $this->putContent($content, ContentPutMode::REPLACE | ContentPutMode::CREATE); } /** @@ -519,12 +518,7 @@ class File extends FileAbstract implements FileInterface */ public function appendContent(string $content) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement appendContent() - */ - - return true; + return $this->putContent($content, ContentPutMode::APPEND); } /** @@ -540,12 +534,7 @@ class File extends FileAbstract implements FileInterface */ public function prependContent(string $content) : bool { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement prependContent() - */ - - return true; + return $this->putContent($content, ContentPutMode::PREPEND); } /** @@ -557,12 +546,7 @@ class File extends FileAbstract implements FileInterface */ public function getContent() : string { - /** - * @todo Orange-Management/phpOMS#??? [p:low] [t:todo] [d:medium] - * Implement getContent() - */ - - return ''; + return self::get($this->con, $this->path); } /** @@ -606,4 +590,12 @@ class File extends FileAbstract implements FileInterface { return \dirname($this->path); } + + public function getDirectory() : ContainerInterface + { + $uri = clone $this->uri; + $uri->setPath(self::dirpath($this->path)); + + return new Directory($uri, '*', true, $this->con); + } } diff --git a/System/File/Ftp/FileAbstract.php b/System/File/Ftp/FileAbstract.php index b1e3784f6..a87dba0a3 100644 --- a/System/File/Ftp/FileAbstract.php +++ b/System/File/Ftp/FileAbstract.php @@ -173,17 +173,6 @@ abstract class FileAbstract implements ContainerInterface return $this->path; } - /** - * {@inheritdoc} - */ - public function parentNode() : Directory - { - $uri = clone $this->uri; - $uri->setPath(Directory::parent($this->path)); - - return new Directory($uri, '*', true, $this->con); - } - /** * {@inheritdoc} */ diff --git a/System/File/Ftp/FtpStorage.php b/System/File/Ftp/FtpStorage.php index 6533ccd3c..fd8cca4d8 100644 --- a/System/File/Ftp/FtpStorage.php +++ b/System/File/Ftp/FtpStorage.php @@ -26,16 +26,24 @@ use phpOMS\System\File\StorageAbstract; * @license OMS License 1.0 * @link https://orange-management.org * @since 1.0.0 - * @codeCoverageIgnore */ class FtpStorage extends StorageAbstract { + private static $con = null; + + public static function with($con) + { + self::$con = $con; + } + /** * {@inheritdoc} */ protected static function getClassType(string $path) : string { - return \is_dir($path) || (!\is_file($path) && \stripos($path, '.') === false) ? Directory::class : File::class; + return \ftp_size(self::$con, $path) === -1 && \stripos($path, '.') === false + ? Directory::class + : File::class; } /** @@ -43,11 +51,11 @@ class FtpStorage extends StorageAbstract */ public static function put(string $path, string $content, int $mode = 0) : bool { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } - return File::put($path, $content, $mode); + return File::put(self::$con, $path, $content, $mode); } /** @@ -55,11 +63,11 @@ class FtpStorage extends StorageAbstract */ public static function get(string $path) : string { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } - return File::get($path); + return File::get(self::$con, $path); } /** @@ -67,19 +75,21 @@ class FtpStorage extends StorageAbstract */ public static function create(string $path) : bool { - return \stripos($path, '.') === false ? Directory::create($path, 0755, true) : File::create($path); + return \stripos($path, '.') === false + ? Directory::create(self::$con, $path, 0755, true) + : File::create(self::$con, $path); } /** * {@inheritdoc} */ - public static function list(string $path, string $filter = '*') : array + public static function list(string $path, string $filter = '*', bool $recursive = false) : array { - if (\is_file($path)) { + if (static::getClassType($path) === File::class) { throw new PathException($path); } - return Directory::list($path, $filter); + return Directory::list(self::$con, $path, $filter, $recursive); } /** @@ -87,11 +97,11 @@ class FtpStorage extends StorageAbstract */ public static function set(string $path, string $content) : bool { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } - return File::set($path, $content); + return File::set(self::$con, $path, $content); } /** @@ -99,11 +109,11 @@ class FtpStorage extends StorageAbstract */ public static function append(string $path, string $content) : bool { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } - return File::append($path, $content); + return File::append(self::$con, $path, $content); } /** @@ -111,11 +121,11 @@ class FtpStorage extends StorageAbstract */ public static function prepend(string $path, string $content) : bool { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } - return File::prepend($path, $content); + return File::prepend(self::$con, $path, $content); } /** @@ -123,10 +133,138 @@ class FtpStorage extends StorageAbstract */ public static function extension(string $path) : string { - if (\is_dir($path)) { + if (static::getClassType($path) === Directory::class) { throw new PathException($path); } return File::extension($path); } + + /** + * {@inheritdoc} + */ + public static function created(string $path) : \DateTime + { + return static::getClassType($path)::created(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function changed(string $path) : \DateTime + { + return static::getClassType($path)::changed(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function owner(string $path) : int + { + return static::getClassType($path)::owner(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function permission(string $path) : int + { + return static::getClassType($path)::permission(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function parent(string $path) : string + { + return static::getClassType($path)::parent($path); + } + + /** + * {@inheritdoc} + */ + public static function delete(string $path) : bool + { + return static::getClassType($path)::delete(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function copy(string $from, string $to, bool $overwrite = false) : bool + { + return static::getClassType($from)::copy(self::$con, $from, $to, $overwrite); + } + + /** + * {@inheritdoc} + */ + public static function move(string $from, string $to, bool $overwrite = false) : bool + { + return static::getClassType($from)::move(self::$con, $from, $to, $overwrite); + } + + /** + * {@inheritdoc} + */ + public static function size(string $path, bool $recursive = true) : int + { + return static::getClassType($path)::size(self::$con, $path, $recursive); + } + + /** + * {@inheritdoc} + */ + public static function exists(string $path) : bool + { + return static::getClassType($path)::exists(self::$con, $path); + } + + /** + * {@inheritdoc} + */ + public static function name(string $path) : string + { + return static::getClassType($path)::name($path); + } + + /** + * {@inheritdoc} + */ + public static function basename(string $path) : string + { + return static::getClassType($path)::basename($path); + } + + /** + * {@inheritdoc} + */ + public static function dirname(string $path) : string + { + return static::getClassType($path)::dirname($path); + } + + /** + * {@inheritdoc} + */ + public static function dirpath(string $path) : string + { + return static::getClassType($path)::dirpath($path); + } + + /** + * {@inheritdoc} + */ + public static function count(string $path, bool $recursive = true, array $ignore = []) : int + { + return static::getClassType($path)::count(self::$con, $path, $recursive, $ignore); + } + + /** + * {@inheritdoc} + */ + public static function sanitize(string $path, string $replace = '', string $invalid = '/[^\w\s\d\.\-_~,;\/\[\]\(\]]/') : string + { + return static::getClassType($path)::sanitize($path, $replace); + } } diff --git a/System/File/Local/FileAbstract.php b/System/File/Local/FileAbstract.php index 3d8de10c2..7bdf7b65a 100644 --- a/System/File/Local/FileAbstract.php +++ b/System/File/Local/FileAbstract.php @@ -156,14 +156,6 @@ abstract class FileAbstract implements ContainerInterface return $this->path; } - /** - * {@inheritdoc} - */ - public function parentNode() : Directory - { - return new Directory(Directory::parent($this->path)); - } - /** * {@inheritdoc} */ diff --git a/System/File/Local/LocalStorage.php b/System/File/Local/LocalStorage.php index fcd05d228..4bbbf1bc5 100644 --- a/System/File/Local/LocalStorage.php +++ b/System/File/Local/LocalStorage.php @@ -64,13 +64,13 @@ class LocalStorage extends StorageAbstract /** * {@inheritdoc} */ - public static function list(string $path, string $filter = '*') : array + public static function list(string $path, string $filter = '*', bool $recursive = false) : array { if (\is_file($path)) { throw new PathException($path); } - return Directory::list($path, $filter); + return Directory::list($path, $filter, $recursive); } /** @@ -78,7 +78,9 @@ class LocalStorage extends StorageAbstract */ public static function create(string $path) : bool { - return \stripos($path, '.') === false ? Directory::create($path, 0755, true) : File::create($path); + return \stripos($path, '.') === false + ? Directory::create($path, 0755, true) + : File::create($path); } /** diff --git a/tests/Ai/Ocr/BasicOcrTest.php b/tests/Ai/Ocr/BasicOcrTest.php index 6ea8367ff..1eeda73d0 100644 --- a/tests/Ai/Ocr/BasicOcrTest.php +++ b/tests/Ai/Ocr/BasicOcrTest.php @@ -14,13 +14,41 @@ declare(strict_types=1); namespace phpOMS\tests\Ai\Ocr; +use phpOMS\Ai\Ocr\BasicOcr; + /** * @internal */ class BasicOcrTest extends \PHPUnit\Framework\TestCase { - public function testPlaceholder() : void + public function testOcr() : void { - self::markTestIncomplete(); + $ocr = new BasicOcr(); + $ocr->trainWith(__DIR__ . '/train-images-idx3-ubyte', __DIR__ . '/train-labels-idx1-ubyte', 1000); + + self::assertEquals( + [ + ['label' => 7, 'prob' => 1], ['label' => 7, 'prob' => 1], ['label' => 7, 'prob' => 1], + ['label' => 2, 'prob' => 2 / 3], ['label' => 2, 'prob' => 2 / 3], ['label' => 8, 'prob' => 1 / 3], + ['label' => 1, 'prob' => 1], ['label' => 1, 'prob' => 1], ['label' => 1, 'prob' => 1], + ['label' => 0, 'prob' => 1], ['label' => 0, 'prob' => 1], ['label' => 0, 'prob' => 1], + ['label' => 4, 'prob' => 2 / 3], ['label' => 9, 'prob' => 1 / 3], ['label' => 4, 'prob' => 2 / 3], + ], + $ocr->match(__DIR__ . '/t10k-images-idx3-ubyte', 3, 5) + ); + } + + public function testInvalidImagePath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + $ocr = new BasicOcr(); + $ocr->trainWith(__DIR__ . '/invalid', __DIR__ . '/train-labels-idx1-ubyte', 1); + } + + public function testInvalidLabelPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + $ocr = new BasicOcr(); + $ocr->trainWith(__DIR__ . '/train-images-idx3-ubyte', __DIR__ . '/invalid', 1); } } diff --git a/tests/Ai/Ocr/t10k-images-idx3-ubyte b/tests/Ai/Ocr/t10k-images-idx3-ubyte new file mode 100644 index 0000000000000000000000000000000000000000..9c7154b2815c0202d3baa56e8b69931143148c6b GIT binary patch literal 78416 zcmeHw2VfS(x9<=F1VSJ{f^;HHiUJafNDEa!q)C$^3K&Ebqzcj^y(_&-uS)ODgenps zgwP=bLLe1LBXwuKcV_F%?#}n_<=y{%ij0yy=lsq&Q@-8lJByH8PK3|^_*Y8(2bb3& zbUC_qS;GqUIe9=JB%N2oj@qnN^Wm+BZ+uK1fkxI7LguoVOc!capn3D=4ZIV`Hx^74 ze2PO03$UWGj!y*;`iVS$SAaFhB#i|SnnsT25@2~RXM8At&_r@b1bv*HSYLn@2`5_w zP|jd-ue<=OM93!ssO&>BB8LE*MhN%gFlvpG#n@Ov?p0=VS#m515&br-+W!hYa>8#8 z$I?D_ac#$PxLd{wQs~C~JsAIJ!D?sWYd-l=?km`O-+q#PtvDF`n1P#G>`+;`OhU08 zCTovM$LI4|?Wm+(I*x8)51{~ze-S`?((u~+_E_;a94oq$&SN~!-U_wPz$XPBi(C+! zO~-hrzzk(zObg9609MTlLN1ic%d6tjrArqX1q7HJw*9}-v-_`IWG-c2A?Pq{`{ z$9{pFgg4TB$X5+J6b{${4nlV^Zqp_TW4Um62n~~qQu(vUgh6R2W&QMIdCT41c)o(! z|F*4nW$*l`HJ5sm^M5B>>!F(OR;4WkFg98hE#79vT+e9O7uU>neM@P&syq^g60?VF%{zx+I5be&*qm+~a_@OW&xNPfQkH!xnrbX=c+U-Gd@3D(O$a zc4@1ord;!0(#9x7v8AfmF8$dR!cUvdNP5hgd6gY6B?vLm*^-o36YAIZyFfr_y`-l~ zhcsf6B)zB6<}36U%_5x#JDoNYGo)0rNate`hU&DL*v}WH8Gfz#Psm_Vqg&)LA=ckk zDUD8qY!-~y@&psoMo?yTU_32=&~!pfm8YS3mSog4IF9;|kY}8LVTKYim0>w@BY93I zJM2P3iA31RsjLGbD@7Q%)E;cJN-2q4Gs`r-8zECP+I$^E;=If*-a@eW43NX#WiUSf*zRHJwFbX3d)QF2?J**chf9xxzP847LupWH^rON|I`E z0*3jOY-Tu~j7}AreNAF`U52}g*B}o;&*v&$+3S)Ze^;SgR$6-nvgbyB1iY1-iQ^4P zOQ67#Q|gUqDUV(cF)m_}%7RkyaQ|&7YzzJ(-=NP&*pzkIBz*NK+`Q4ntdj6@ zx=bfpBs$0fH)zQsxWS5oxA=8FBqQ%`@k54s;7DsORPQcZ@I*Z#Gg0#;u4I9 zs2NAzcS&_!(M*(a@`R#esn){L92AIXuaW=AYoQu7YIy$CwT3nEAFsFrH{z`{OAodD z{8WinuyQcjHBrSkc0gb-uc@t3{pXLLZyVpzORw@3-2DoMBJ@FJTo`?Y%)J*+&1aFy zg8b8PY(aYn^~MpR{tjA-cL}WMBa$}heE~{Gwb_e$jqO^sYFD%KIclcqCB`(W%30^` zgKQ0###_8MZw)iGa@cLb5E_Fsm-}wQ*bb`&Rwv+xSZrgLcPn+7wcAwGisoAfqH%bD zjg>6wv!tj9dL#eumq3LNX8rYN--gVty4%;UFs*N&&Wr~#Ib>C&^}Hi z5#P<;w{QEk>}arxVJp|XyHl})kZhVvBK>As8StEWX3xSE7bv#WlS`$>Y=BkA{`O<8 z(OHD_)b#l409fe?%fri5u5J<`$qj5FG=-2XG3L=9kHgOGBk%dzBQP?HPt9*)zPO$k8Wg5WP$xJ6W})@$65Yr>2S!pRyAJ52`a{8Dm5r-3MU z|HX$o--X8}lHYU)nXsEL8j7($4aj8Yeou_`BP_Oogfd<@%=bB$cNX*AOwPD6cFmG> zpE*}-7m0aE=O(#yfQEQN;#Qkl*G`w|&k8|`8^bxIOo?kUw1TgZ zENcH?L7q!^k0AMZmP*nD0X9lH_JIIG^Q6%t2(3&P4*g1C;iLw1VKl6M*RE`J4G}$3 z2iwacQzYp*m*9L)B0<5m?i1{Y+x^H9#V(}`k(R>m8z4!Kr$gsvpTuTotuzcloYJvs zG$Zpk>?mNBo?*2Cn|G0I$j;;8Xc68>jUcQ%r(Bi4=fLiF>4d_Rz|6yl5XFi_r~fDq ztS+RoNh$GwrlokWbjky@yO7Cc4;{t(>D}C}eCd@qm4{HNP<*y?{rXeRN%&?bHX)QQ zejBEDG5lL?GnVrlI45!LoH>=vMsN84NC~`u0M?JTS8#7<8OG&m5hedh>rUd{=BVqz zjoYDR%K<$T(wm#GYO&H$`jnLjmS&hBv<>f*J7%pUsfh_&g_EmNQLaGzhY3O<(o-3l zDM^0zn9poTkflqsS;`Cv35kL`ZJpT+<=szjKHM|d&EbYFA4VT!)O_M6u5NRYYV7Sdrus#>eKM!O0 z&mapmn+^B%?6<6`%{4~3uccqD*thha_=EnjU~pec(#TvhY_MwkuoPa+1?8$6BV98Y z_Q8(K5wdJ%w!<{LzeU1FRrOGOg)=O2U(#=fktPhDo}fai_DCGT^?ZM1o~)5rYRNjC z%1kVbbnp|aN0=O&?Rbp8xmoNQ{+^8v)r>KU_-Tx(%ijlU)3B@XHqHz>lAAEJIuM#A zM9Y-|i~BrCoQ_bXUU8DmaG?0!#E^mTL+!DdBSQu2?w4lGs>}B2SjVpc9pDHQ<|5GH z@DqU!ha4pR?@FRCYMf881^bz5V?U$6n`# z7o8nAZuyE+JK=XHH|8s2a^3Am%a+C9>p{z=)T(7$-n!x&f-M2Rg-;xpt+NxLQtZ5h zAKi|ZK4aAt+UqioXjKrEzOu`udnMCuj#>DzJZ>#tsvXAsxT8mQyt|I9%scQ_tJCB;X>%)aVD z*C>@tj(@#y?fujjgMUNWNZn!KKKACgGyLWutlR8#uk^F(h@ON z<~a@&^=-hV@QLk?Q|)JrADwXwdMWprBY;DeWf~)adty4~LCUB(b0-;ID4wR}nIqml<3Il2p#% zcxnV8qS>-?DI`%FW$;D_!QQ7iW|_)YOd(ul&8T_pAw=odGeVV|OUQi}tC&i9V3H!( z&esH1CqA{e@=PIQ5wq&TXt_Z0gY6*%JHCius9oS0ahw)BV4Vp$U6P4{CEs~^suaur z9qIg47A~x5pRoKt(S^;8wl&f;fFL}v=|`cju(ZH`@H3nqU~Ov;;;j%_qj-!rT7Cxy zu0|8`;VFzanM?aP_MsT6mw<6MnKJ$?1Z=<`-Me>Rgz-2-EK{H3_La34W+J-qPf>y1 z`O7CN`GCKvpP5tp@%sHb8Y(A^b)M7H^PNhbo(oc7-v(cRUiwQ9_Dsi8eT}b^jky8cNQ@h3SbqsG&}e!sZ~}+_T8UCa!(a;mhoSu8X*fF* z0?o<=^Q>#%!?1;mhBM=B=1YoIoZWU}kBWJy>orU$Oj(}T7lnMKj&&^K@@_4*WsZ&oUSj_5?;j+v#o<53v7(t+i0%0H- z!~+QB2~YTV^#Pb6!>T=_P!Q@)DQy4#{b?lqb4E@{w>vLJ6{SQZNj^ufY$%{qE+tb! zs#j#?4BcP6*%pl?<~eA?a3pDDFeb_ww#zZVq;0UrMQskKjQBUdFJu&vg(^Gu)Vmg; zEU2^)_FhEQ{KT|&4VX){r*fYtiJUWc4ZJ4<@$8IK3iOqITIS zNmqQw+@fYjOsV;vkXzl;DMIe>V+53oZqpznA>b?_KbXvNo`YWB^C^X@r;|Smm@wqo zy9bP0^Y0|da=mPZf$vMmDjP8s6~0Cu2x`YUv*&Zo??HN<>+X~f!TE3 z@WGeXTkWa5t`-K%B=YE)vwMmY4}aD&Ps`sVsVfHnGXt-XMIN`T3sd?E$SN!LjYHYG z^nNV1E_SVzR>J&3nRAlV*Bl=z^jKQis#BEoc(MgTsMce;_9-u9TG5*Or9VcAo=vOz z>mwQNFx99`)*{7NX@}C+V6=5|xWn9$*CBM?QQBa5sus`Q-XJ> z(bbQHNpn+*HEf5&F}!}{dB!75geZ3P9rU`xVTUOyniExHo}Bg44%wRtD=n{{>`)5l zyeU8DsaP@SW-h*N4#y5i2^3DZ$VhV$4VQD)tsCURly^u{>3KBU4##=3m6BXAohSM^ zz;ee9t4GCfUgVD9_Ab?OcyqBSftJgk5#k_HZ8O$=(=$x&&i?eBmF8CnW~X6tduv@f zY90`1s(fR~_Bv{f_hjck5<`eN8-!dYcQbdu-KAazh$)6bf zE(CJ|WevKE7Q*GOHfY5o+ow(2aGj7XHlS>s*LN?Oz{JFnB}2*AoWNk3gp$*CC6F8C zo0Uq=TYepcJi7n5D1xLxYw!KkhQG8TI)PZbl7^X`@eaFeaqMt32`njSZ^h zRDEtob5JI6yi8WkoUMtpYtBhY%J{b6)9IQ_yLyuSD!JK$V$Ysulge49*R+^7$9ig{<+}N2i%1vrI-!#mqE~D= zi%b)EIT?t%hThZEtk=O?tg_cdlC$HPt{ppevt z(xo2ouZ zgM6&j+dt}4d6xSxxklY5H`V+j`X15UI(6zCh)Sgh#zywgMn$6kJ;n54)cmPf+^J%^ zM}*#$BT=Cz%^3v9O6p`PtO3Rw$xwCPQ7uo}^@yu|i}C*U?Mw3h-f;i(B|z(O_uld@ z0o>T+em?T{zahmgn=%DU^LcFJ^5r*U5BpQ$RP3n5f}K;aG(~MP@?FPMSZrLdzg&;Y zvS5e0dx6zZ=?&V>1{=(ui0%BH*li@@IqG1{<$;SeIGAHu#yjFimgVTyPNofFCAsK0 zeT^Zp8fCdwagw`n>QuGGi0;UVwKn0Zo-e;3!&&=E#*f7Te=8<@gfKb2WHH5xTDuzv zZ6mT>F?_^g?i;79JoK_+9^qu2tUr%fW(kL5+)l<<-LTm?~CB*KFv4#%PQDoPL;OZjGm)y!L!qBmAgwX2?_&8t~ zO~{(bJ#ttw>7%#q-|}5(&@AxNa}BkrDn7s&TVaVBW9z^%*FJm*m7JaquWR$G$?yWh zWc+}(;K#s_?K9AXL0aURvpFo#nt!KJ_|M{02OYP(VO;&uOSO;D!-6f*w~$+~f>HVt zX~Bx%|0?#KoG9%N*iBdI9{3(VgaGWRj{;7`D>Vz{3K)(ZgW3)la3SN4-cM98m$d+9 zK83=>n2!zczEmoQ(Rz1JbL~<^g?_O7vIu$l_PDvZf395CJ3=%6r(f@4cVQOpNWF#F z1!k|mS*gRNEb~oksC39&VlXD^J1NN|G1w3%*hDATIw#l@2@f=4;Hf%C9KZ1rh8v5c z7>+0Z6W9$LUy6^#;QqqW7Y4^uV_y;TJ0m_8hmYY62c5)Wr(mZrCU$$Q56io+VHqf; zvZbhk9WV|E4u&&ctiAG1%V@8<$|(sCwb;o5_ZzS)-5wfu1LEssi}})YE>mWp%nC5# zkZ?@IkDbkc%#VXz;_%-`wxCz7DG+CnEe1mG4Mgk2Sya4X7kwj(R1r+YqH%}!d@Koi z=2c+7zMz}65yn@)=d(uUzH=umL_V}FvZ-|U{BQQX`4zCw-@ddE>K!B=-&j-d&y)n8 zvgz@tSqbKcuUrOSbr@QOn7a9_SM20q<>jJB1sp7Q@bs zVw=z)J!^jKkj7eO;Z^tl~raW!+Ws$DqUXfLQ7X_TF_FLFJJE5qQwb}BYiEPBKQ!_J$hI{0Os6- z@rMEop`AFqq6qvNn_l8D6stTIVELQOjl}r5X-XUnt5jV9n~5>LV_w?MS^8Jyq^KBw z4M zuxaEHYxiyj~c`jW_K7O9@1UskO21*s+l~hTG%XC_Xchh9vnoYpD+xkKbX~ zAxHO^$$`g^`#bN{>H7|Zdy;gn31_D>AE!#8g>;T5;1q!KyhP{vrb^OYo#P0PBuScR zKl*or9dsG?T_(4)kO%z<rX+lbc^W71feU>Fj;qNehSn|f5I~`d5pGsGl5O^2n zRg-KQ|4Z_lB+x=;#hY^1BPkm{n*To3g@dqZ0NnQx-a4#+tnV47yj-an_j-HJvbL>luje`J^NZ?-XqC{8O-ZF!wNOWi44S%CF3#%aRP&RcMYCua2(}+ z5(m?1UYp>)8mE0?BL@*c7h4FSNShIQnYZ7byYU!~tYopu-$`B2#>ZN{1ZPsTqm8 z8_96pm5o!!7tw0Ro9s!+Q!(EAo~~LwmBj+i^wbfA_KOZ~gqL_ow*BrkFyAab&$nWR zww}jCqmrNC-|||evZTlhzW>Omx%7sGmzy^aG9ryELJwkv61t%Ym@DjG!AD1xD`IyW z|Ip^tGtoE(btE?#H#|Aoa(s<}kLD^XLry7YSnE^ec;$Z_=W#c*u_)2GPfABc7<`E2 zR&EivUBZIS5CS_f_8lhML_Yl_@$c6l6I(vZqWcNM=1;Ha5Nuo$W7o}}Wiia0+Bx&N z)k%EL?3|?qcE89C0h2tP{N@$0!l8%wv83+t^&o2PAPwwuQX%jqA-nCcoUM{ce5~!K zGT%BvQu>!1VuyKMPVZL&p&@qrvnzisPk9d^_T5^Vh#_%yNs(nfH=MO^8jbd$p_KrS;e7-u8`C|VUmRmG{^bd$3*+*@DTi0+pdJk%4@+PzO z2stsRwYwekZ;>^7P+FALvJqsGsOfJ8Wopdq@E#8SU$9?!b)5q{(MIxe@Sf>@U6Chd zKy<5kk;df<0<50K@z-|&a)u@F9X{Qd+8xt5o}id{3RBYn?4sySd+QcS>#r%AuJBH% zFuo#J#TfV$+7-Ja#?WwwV}dCS{~mU|R-xHs`HpoVS=X8tt&|8FHw^vi?95&n&J@~~9E4d{WTy&#qs;Yuz8;e$&jTa~;;`k7*{ zmO)}G%MOafa>Qja zLeT50oB_>8a^Od-zE002BqP**>qX9ES3i2cZQyiWmm#KG&O^{a&vWY8Bf7*O=02)s zFg)cO`wcH(xb=@k^W6wVjb{{1576Y5~EK*|QIGgZlv^uJ!Z33B&Uj!V_bdSkGT$=eZwhBC*c>MfSM z?M~-(3z-1_lSP^K_ZOBT@8k`~mB3re9Au*pC(@X=!eC+>x6oMbx+-b;j12u90S-cQ zyCAe7JxJI*<~fZ8!&`(tz+$XDzFLHj$>0tM(gGS4V(^6z1XXJ-n!~mBcTUBl^ev4) zj13V+Y(Q1{45t0Ba7!o*UhpQyWf-0#FAK2}Kc(S&_IYf35k7-zYEc!hU(#0`w%I~o z&{esgEE7+%9bM3vZ0*p>*kD)~bm7wchEYmj^cZ8Ax*g`(ph)1O^ zjiW@BojBOqh-`@P_x6X);C9=(tHi;66NlYaesEW23fGRQQN2c&Wq4~|L3WBikfde; z48fL~;~oNVF6@9|7l&E3RvD7{{b&O|B}q@-F<6dj2~NW}iNWNHm!wE#i-;lAsIjmw zNHkHD`;3JDvagX5Isx|uw>3-i2-jbsH#C;vS+YG~LH4yWa)nnetf!Hw)k$~uv| zg)LYU;sdhwsW&67ONSNV-Te>xyu4Ya>f?(ank-#|lAdC+wKPJNr>7oiNu3y>=&YTe z=a+j#Is8Kt>l(lt>VLijT!&8UOmCH(1Ge2X*RNfnYYLB<>m;~V;G_N^8usEtm%JiC zrfq=m)pU&MYO#z>@D5!J++L*47=s9Q;zRr>+#XoSFb}m!Gu$oOo0)V{81%yI(=i*c_rvE z-7t^DJHu>a>Z$-e!kwhr+-;!fk+>BKJI@7B?u zmd=03wfyQdb9<|$ywn|>C2CNimgiov(QM#aCk>ww4L)X&3)X&tVmp8&i6&q29L9r~ z2spBXcn&FW`t5R@uED^j*A529Q+LQ=H;_~*$%|!9=;k@UJ~#_}x~ zM_8~kM6Sd0M`-8cFdAo+iZyBlZ4Edu6d}gwp-ER~C5pC(P z8smjjlMimKX_HCtqqlgu!sYt#!mU$nM8A=p#T%Jz2^4SGa7w5g!ge+E;Z@{53;YOj zeR7g z9ZgW5>v~#n+Q{nMjO-X0lI+$X9I+^ZiE{&tVN& zx+c8T!19QB>ip8+)Ey=?PgZHF1V<0R%*97$T+)>1bWhAn0!JA9B$U0?W5`2NF&W~Nva_BbK@onUCy zPb3>%43?uFkoEk~z(C6-XS6Ffc>3MFeM%TYl^R7dl2S-~L?TJBOt-@4DgOH9!=k9{ z{H$2+z6IOD%eu;2PT-J1vfDaJSG|9$tf*UJ1;N{)WRJkkFN(yzXJ=EO-=QoLZEhe- zl`J`M)UpTg>9P5Il?5)6GqZ5|%cLU%?3(cE?>8;S_a5yc{m08Ht-O^a7{+yq-AiA~ zGKbm=7cSZRaD-Vb^Wh=uk9vi20 z7x$B?zJkJ>9GRLx()WBPPCp;hKaBIdaz~WnLYMJv0R~XEsJ)+wgS+h95`NOE5Wd{RxP$#Co0zB0DN5z!tsel#in8&=P|w%xHw=>I({%w z^GlS&L4JX?U3uZ++gnBthTyAIZ5PJspz(ValheXtHw~Y19st{4Yb#2mL6z#&`+VH3Ta$4u67EyCYOJ1$R;$z~AEVw(e3|G_@BWe0k)XDBRb0>~r)0 z%jB@{A&mYVt1O^>vsK*xL8#AoO)Vr4aNe;#JnBEZow-U%#+V$%v_$TvBiEP$Y z+7GKa_(u;LC*xp#W$_1C`q_&4!kO6qxzP$~n-$xEv7-xow;+Vw_oJ$9m!x!B#lxF- z7DK=WP+@25k%1*rR9Ss1Rs|j(*;jqzcGrB*gS;u2)$WP(P)WRvPpsw31|!-#d}Ht* zT0GhnYX>iEmuN1zfYq-p+$`gev;$UtGngR!tD1|6V3g?0pgA;!|%h_LeHi3ma)#Gjr<$>ckc z-2f@Yw)La>L+~V#8GP+i2<406r;b>~epq`5S*b$r!$Yh>RpRWB-Mc$1EraH#^wVE7 z(sJ!8FMe9YvcN4|Y=_pJ&24Y>Mk+3Wl5N&(JhM@2Cs@6PN0Q~4*I!*(DWz-ehy9p$ z&Q02!Oq%eR%g8wR7S(c2l!HG+KLG!wKtA<; zhly3LT?xP;Ei3wX`X8g`l#_Mra0PYC1nrj(l(|^rj5H42HDdk0A zg#(Ujrz#3ipC(NX&lg}IUUEt6N?LWuBYDto1wcYRx6~}U-hFqSG!aF2nkyY$!DRw| z=%aHyQ50V=|1!FQ>twa^(Ix+K!Y|Mf5D?&JTM7ZnCo<_@i;ACt0TpO+;O7TUb@KpQ z?+Bu%!DOoG$`J@G5d}pUqVZ~8%vXx}nT0A(u>dES0HW~)im*WEF8u^{kP@LwCpm!F zL^-FK6S;Jj0l-9w6r}xcC$3hbh9FIOzlFp5u7-q!ENRMhQb0ZL5!!7~{@vhbDeA$| zsDDnH)UZ#N7O)_+p7T8$z8_aam8`;HW=xxvZ<}Po24QXMQ@JOW1?(l{37tl-1h0pZ z1AJOgk@F-ZZ@Jd+-p|81<~*Q6Vfa=ed?zSCi)1#%G??nVtm8<8p{9$D09H za>U##SFVIy8E3Y#Xuc8rPn5uXa_RR!=k_Y8EctLATRiC0cE!+VbYl1xY?brS&UM_92re?ivOOx-u*)6RQnxgC{IyuJ%>r4iNwCj`4Y%rIz zQIPnR#J0CJg#45vZ-~uDq^YA*PpcxtCW_}ggf{=%K)s;u*4s}_1RROCqnaQ=Lo?wc9A62#rz0N2q~dHr=e+y( zizI2Oz%9xH{#Z$(?d!N^>nOH^FRwOBU zycI%u+D^QgAV~{ExhpVNing29m-TC>3I^>YN*+<*K&nxzQD<%3C8b?WeV1a(rpv* zJ+sFe-C+BjJNozqPB3rEDf*Bm;nXgeVA@&BbZ-~GLNPUjA1KR3m9Is>s%ILAE%W!) z06Raw5e?>swcu`ye-+ePOEK;zfI1}NwF2nvBz!p^mpX&#j^oV5p@E%V;@%o2VVwx<@(_dtPEJm9iaj!FE3@n2W6YAjAMf(jB4MH`OS^^G4QZ+X z%e5%$XVFqmN2#B{3SP1d*Cq$OwBfO)+css0Lgt&4kg!veD%WM_lxsuii%1!bI52sm z%)0+6ZEJQtlN$`Y`&jwi_DWk^(D@|JY{MOyZQ`KsNH0s~u+Swkdt81Y?L7ZXgdUf% z`;jnWuAVZ5w;M~@D$l|Y%6~=T_rHb)QLMc*6rmra9em$BRNneWu?|`M>N`S%vgmKn zUfNVS{8__X)CUuGN3ZliU((*295aK!H`^kmQ^yl1X7fN)pPwS#o4+PvfVnB+T)bgk zp#(e*JE{xJKAVYStm9@``K#wRgE!0DMQv`~FJsd-qejrCMP zlhx7eFgE9m`B&f4bZ_dLI%G)=jGJpvg9!YSM$;>c`JUhxx>~{u59&QxqtXk$$I$}1 zLTCHK1K6m+@mtw^C6i;k1ZY-fCUo7Q>%&F|^eFkgRviB)#ye`5FqEsr;t2%{=FeRh zA9=@&X?*^@7#ddlFz1;VJB?$C*;~O8S;wY{Ae6aP)N6vTa*LY|p}&7TK&Sm30gk`` zKTB5pVE!5AplPsxbaGk?W{|oBcL9N*5Mc4D2&la+2FBFR&&E!T({4^2l1f9MjhU8G z8;3}-vbPJ=K^se&L)meF4M;^aL3Rn1)v0G2J3lJ3$KVH&UD}ixEiU*Uf{jaA4u1l~ zn4b-VP#`t3hivs-UCG&5$Wn?zIwhzUe=bJ&T`guLxgHgAjLN z+O%`YWFOlb^La=fUKl_7f)904=>TEs^Fk5i#oN#=hyQ7Ci%%S;Q1G4hA4sO&3Q%De zLNp9EM)cEY`P#z3u95`Ro2tQJL>k4Jp*AE#6OdHC!9xM$w1zndmlEWiPUaa{TYX{y zPGM;GfW%bLu#JTD)#%E@;5hOSqtwehAQ?xe_isFX`t%Dagv8Ea*RV@%kPBHZ(u|2E zH6QA=-tWhbT|aj0*pI#Hm=J}9A>NztzfuC89v<(SBYKdXo&6*=J6j65niO|9!1%>M z@gN*}%7o0r>joH2e0~o(^yoit#B4b77)H6@n0?EIWVIF?`}bwK(R*x$ZTfoBFO6X- zW8G-A*UxC(rjQ(B1~Otw{sNzCeOU8-c$)#^I3DW@&>?tFG&e=Fl@YC~(F5K$R^PuV z5e}c#V&=^&zXWKOx+YN-K&Jj44bUUKYJ?Z-O_;GoipQ40r?!j%FJO0!l)}WYVTJ%p zH?Wl$k1;sF?i<`yc3v?zycWcyWgUa%nGT6&Fv!Cy)l2T?0O_ZRfbhLEeEV$*<|#?7 zvKOn0@&zWQZ&wajx)h=U=oSm1L3F#97FKW&LUer{e%$bDs}GN|{I=`o#C^!8G!Vzd$;Q2*WcY3Q>&($J0`JD*Gj;hws0OdKODAbnP;mj?XR0kaA3CH~ z1v%$gMwN!2+=r678k~t5g?E@F23zwLv2jl9w%{H{1U!{5C|ERj%rzXJ;FS$7KW1KW zlf|xeCl``8O6NX_7rGdlK>6&2+w=6|v3bxWoKTU2iXFkX{QrXY+>UKY%bvtRr~JbItbNdd=K>8hrMusj! z^#TaP+^5e`-c9nmO!OQ?kLLw#f#JBIrrio#f#UBz%P9mKMUY+#HKUW{E0*1CN!PBIQn|{ z<$F&-N;k~ngM1z8UJQ9xYE8ot{K7Q#qx;Wu6n~{NCSp7mPu(xT@s`dtHSarQ$dDkM z`SXw=Tg{D5XGuTu$T&+ti*isjJ<2le$dXQ)gu8m+tahA$VLaIJ4I`)I=T5L`POwP+ zoF~pJ!C!DZ%e*SqDcP5G^LM4|?tV(9+9$4ALg-79+`ta3l5nNY+ly>Ip99JV@4{%r zC)u`R(0UN`BzzJ+w)074p6ecT6kz#ok!1p?@g1_$zO{DyIg7ls%yubmra;$#1lhZM z@8OG0PnPYTXxo#bCZ(dt4%?@Nf_WDcQ@@-_)!=r2zeZZGM_yQEs>F}1G-KuS$r9J@ zA;jEi%D-U@#d0ntWS7~j)XS?C@)!H;5h3RbnK5+Ik)D)F9C01h2@H$E8^M3C1Y9cy zz`OV#@)f!4qQ+=tl@{N!-1GkD@sm|=dwEqIpPjyekFQBW${=|p3L6`6DqqJWvlxye$Kd(w@(GKz#5eRAFIEopn5TzJ znM5jEbY0c~k;BtCq=ToAqFA^FYwxj=&H={8M?^(M{q<8^3X8SGlRt&fa^BA?d)@r` z31%_Z3VQxgLG+fs7Q*Vhq5r!j(CVUNqV2#Dq1G?pcT#FEv)4k&_|z8cVHQ)q_CQb|NU^ZAf45qyhI0Vx%`GNsB?>2G;gj-3HXeLnIPC8%FjNv z9T^9KJ}ERPUm#cXO9#SrdoTupR~Za5gt|=$9|!^Z zW(6&nuGj4X#pdZeL%?TuAWXA+;)|c5knPP~Ty6s&&9SQt{-8!rxf))JuRAS(OuHeF z8(q-BnVU6D_S%^`#GkPujs8q7nq|2(p1Jms*CtNc4yS{t!)W`(#O_c<;OiwAPYk&p zu=WhklAh!7529&nR`0c>$L;bhfZWPZ z*z!^gg0D45-l%ZZstGpOV24r*#@f72A=^PrG14MSe9o|rk0CyR9jdxW{@Lw(YLUe9 z=Ob%k`RdH>KY_*KP%eI!iLsuVwdtEmt!Qk zO}@((EYdOEEjNAdy0>-oJCKmwtqEB)D2rICW>7+H{&m5_iOIG?TOS^Vp@+ z1V06vrPq;mDO|YTte`38MQF&XXWvb7p^<&&d{o4L9*IvdZugh3}VTHrgEHQ`)jo6TKWm$ zMyL#2GK^TUoYkYUAi(FYiKW8<8wP2hCjcxk-JjLzfy-J*<)<1}s`3~8cHAW-X=MQ> z4Jvl13VgY2_8Clg@@=$=if1DXR13XE2y9eM9^Yl|Zi(e(#h) zh2TGHI19gS;?Z01-%-ob^%!y^G4eoWCe+E6Nu8rao%DTanR0EMaad`;+DfDqAES3@ zraFr5Pe?T$>!oku8$*)I^O*bRnsNv^$wLemLJlz;Plk|Aynx|e5i58%qcP)!BO8*( z9M3YFoM78t4fD87wz5&MbWxkbMKs*?;0@y`)P(=IYwnLxzoYv;H|FQG926XS=K1I7 zD%`&#HIZ`lsx|mr+Tr5x@xYfPvlojM?gBd&!n+}qV*)1o>aY-+M#!Df(C9b5NRmt~ z+2B-i<2_JroJj7M=8Vw0X(W^mRLUlia8tF5`VvwPphD-#UCShA$$KRBmv^dOBK!+K zit`b$>$1t!!HP-?JazZ@w^4=sA5x~uVoIoZW21c&2c!@ylejcJ|bLyI~bM+8Dpms{% zr!y7oEmaZt07bVokSEyg8^yLM*mjsu=c+=gtYGx(iK> z1LH8`SJtG;)dS@JvnX$$528e+R-U$qVfEBu|U89EAE&cEXyFI^F^r#fRIoM3HW z$~DNOuCYB~PpoJpwiAoDHZ^~aX;W<qleSo`9O=GUZmGG{eg8~3oJf+s z;pCK=5gom*lDBtdJ4{usDaI;9NLQ`#$#%upV9~Lu6%I?%Gye*zd-mc*4<~|ZO zeRV;zQ9U&>a~`3t$}gV1TbTC<_oQn7SxY;#r`?GK&S zI)|#p44lxq)H4i&tpffpPVl3Tx1Zo=59w!F>g?A0l&Tp*^`hbT!#B3TYS=H9CvzxW ze21-$F(Y&920D><zZ!}wgi44w^){=N8=kD&oWN1e6z)N@TQm0C;YU1 z*eDo!D||_r9jh=3pT z6`c4i0(bNU`^pD>0k`#7JqDhDZ+XF^VjHHVWBkk(LG;Z&T>llY3T=YwdkF0Q-D2+% zbcS@bsjDxSNmJO&kPTY`)>;}Rw^^AuX;F(RqtdXKx%j@r$!nkvcNvkDZfX0AE|B{? z?_q51hfzPdhpvEA_AC{o97PxS>FxJHEPg@vEoAjKr-bq^V29E{j5GS$fUfVly5^{L z1WR;^#x@j)65hZFO~m(Xji_+4xixb-t@$ zU`5VG31&&)>j-$4p=hE`;{hg#&c5Z4&1!wwz}jO!K%0g-x1fSOs_SdS8NhnPliP!T z$1OCOb_ERHvs_sm&BQx3nRY!xmc~D$(@rySKTW1x`@>qCykmP7c}tUN*Me6u9*;b{ zybiy#Hgl8UebC*|n=4|D^D8o9(EskG_DGs>SJtLo5!_`%k<|HC*P%{KyKSDw$Vs z_?5JaHW2KlIy=sDM%sK^41`0-dD|Nopwd~-P(*&I<3-r# zv71~)Sl9zmg@sVq1d$ag*3)_$2$lbdz>oMfk6Ixo+wDnlWd$Vz)(0~ zC+vnt;Ok%*&dxqz@3dI?71`OJ*<=5DX+`)kT3bt@3CyrGIS3Qg)=tHtSh{aoY9su-2ie_Z~mu7mjKO-=tj;~;v-;I)&{vdx3pWf+GFSvH^VO6rgQ zuA`wQ$7kKFAu9yQ@l7+78LGXUhh2<>AqR#__=PSd~5m@SoF1}i@xlZOR#Ez zP{+i*!NQy$ak6#Z83rE$x1U;qn0%h#)LNn#r%8C22y1Z*-?Pl3Xv*H09>y&QSUM~~ z;51cyM2M}G&I)_rg&s?ySqOyIJHhIUKQ9BvGp`pWriQfc6|n?ispXnA@--hT2#d@X zC^@r!VHzsUd@rY2K|Te8)`b|e^|7obf5=>bwK=q=>H6ywjIq{{)Ve;*o5nUYN2l=l z;pMXQ+V&Va4u^eNk_o5578^EyekQDT6w`u-?w|}T6ma3$HXTE?htTx^HQYMAiXY#9 z20+r&(|cMrXuvgA)ShBnOVa_qHBjtxt5}u*_EdBO0+v!wZ0F3UGc3;BuxnA!v}m;X zn)}BYEzGjNEAPD~DSfhS;#|8YC7pkOm%CcgBHM6E738_k?t|tFamYJhQ9FK&#jbTq zqUBytmApe!tlcXG^9mL1WrOKU^2oAYp?Q2ReqG`_d{H!=gJw9{uRW4K9-qtLO5BU% z8K&fO#V&u5B1M>Y5o8U(4kA=}JU#dDaWlqRwQ0%e&)Sk4mb193ouI9ZoRp^$M2@|v?1LLXK$!iF9DZI zKc+bxFUPuBUDV$Lzc>x6%s&vyK?lq@i!P82G8yKW2piCL>369NtI!bm z1xJW4?2CG9WdtX-;e5JGQ^c@C5O(i!5FGsS<*t`liU}&(6kAVbg7cQUbpiwL2l1s$ yb~^jk!$_Sr6Rl0VcUgR!aNiz6+wiluSzVUiW;t@xK%HS<#wPPEreXG9rv48CVwC3q literal 0 HcmV?d00001 diff --git a/tests/Ai/Ocr/t10k-labels-idx1-ubyte b/tests/Ai/Ocr/t10k-labels-idx1-ubyte new file mode 100644 index 0000000000000000000000000000000000000000..8d4dbb3ea69ed0d388de848a84c2401e7d666f0d GIT binary patch literal 108 zcmWN|!2ts?3<5AP*n~ZA{~22S1v~=yGKA@FaRs-Ld$&dmigG3#G9E3*KJDKBbn~kC SECf?V)8r=4(NR~?%=HI-RRSOY literal 0 HcmV?d00001 diff --git a/tests/Ai/Ocr/train-images-idx3-ubyte b/tests/Ai/Ocr/train-images-idx3-ubyte new file mode 100644 index 0000000000000000000000000000000000000000..0bc292b2e432081f5a74181a598a4d4ac42040f2 GIT binary patch literal 1176016 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 z zm7=>Y^^`pa5FFD0c2XLgic{)vw*zJf?5xp^X6P}mMdNwQq4~tor|q^PoVh@;D-Ff; zC|_MIlJ_K#d#5Oz6oJVw3HAdfNngH?3IAkj#A=cFN&w39T!w+u335JPrk9ft==zjP zBr)}E_sfa#N}t9d7=LGjP?l%l{e#EbXNRDbdP;xRbFv~qsLZ0f=5HiZekc3yEP?D} z8l-bduXGyO|BcKtLtag8_N&@$+w;9msU1@IGbV-nQ~RsFkWyQcL-sA(+l{FyKOdVP z<;?6?qJ$sH)ArM*j6W;u^rP#KJ$evz`O@=*1i?*o_4(|YU<~Gfgz^vU$=nIZ-Z?Ga zW0FOSRK`A{#NsOoX<7&@Y!&jtV1o`a3{MU?D=jpLlxfs1=BZgNpY~^FJD9D7yACP9 zMtw`^3P)V+9UjeRn3B@O0qX{1!h9#sin!O&F^5XQtZzRnCQIdkYHK1ZVCccn`2Wc8 z4EZY<2IJ*@60`&`i8(>FsU!DSS>FQQ`J32vKY+OfL$*^Ki=+tnP0uhNM409(v$ctl|UEhE~URF323}BAW2iOy*YW_{n2UtvQhiCUmbiN;|br=lLe{rZb zIPwt;3P?)8yBkc+e-4}2*)i>W(IYVN#)fIaV;_lg&ND_6-sADu?ef45jko2*ZY#C56}~TZBwD=#0jgh#?q41{&m+P=nI1 z-3(8v&#w5|0+uadIW&D90fQbTQ!f)Ag7Blg`%Xb0{W33CxnJ%Qa=6|DwaX++bD~BpV|QAZ2^5S7GUCek_ z&Id-4F`auS32gv6o>>CGB)$mPyVXAUK;!zrTP>b(YNYWcKuhIsZa@^qF9VH;{B=6q ztR^oqxX)m?^pwE}*F|tQNhMEX<$9rF# zl^ds}6(#)gl^KhfTOTⅅ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%0DjBhdKaAw*cC3v;y;a947%%4)M)TNfT_TfI!!*3= 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 G#{Yj}q!UvB literal 0 HcmV?d00001 diff --git a/tests/Ai/Ocr/train-labels-idx1-ubyte b/tests/Ai/Ocr/train-labels-idx1-ubyte new file mode 100644 index 0000000000000000000000000000000000000000..e5acddf2284e4cdc4cbe444e74304d1ca7c1e887 GIT binary patch literal 1508 zcmW-h*@43_2t+{~1O2y`V)F2QY!X|7xxj4PtbS$b`#e0OqFrx#)7JfEJO#h3+SESU z*r|;$<&JH7W?NQM$K@UN+_m;v6KmPZ9^<>0c>f*PaJSrN_Uy^0lgC->5mPDUo0?W+ z`)*qR=Phk=W&5_Aqc2|Yq2}GI149p55AZEMFaW22y-s@Ug4k&o#k1*9f&PxZ7r~LT zemZItN%*9{3dmY*m(n9G$1-}9TpDg$!B22r zGyo)gIUJ?tR}G&IFjdv7p|;Rr&1N4>`@jsu3ozFc%0)`(h$q>=#wrR-T9XOPL29f5 z&Kyhtk6l27`zQ}>R6QoOLrMHZNcd`BC>}X@U{N9fo*0FUzu@sBn~rsPQhmH=eK&Z< z^|>&faO48_2Fo!6Hq`j zD!jT#%l8!9B!YF|$_41)Z2}$A3{MR33CO_j!^ab5Oz;p{Lln4W_4^^^rgOHhIqEabt|lCMlGCbfZ5gnQ}7&=AU-elZI4 z!>`i@{YWS!p*N_>GY8QH)X59~h~>@01Nyxr+)j+R!4_aD;Y}(pON0(isMG``m{>^+ z002nQGMEZ&^O%qMANBAYS6O4{NdropDatabase('test')->toSql()); } + /** + * @testdox Mysql table drop forms a valid query + * @group framework + */ + public function testMysqlDropTable() : void + { + $query = new Builder($this->con); + $sql = 'DROP TABLE `test`;'; + self::assertEquals($sql, $query->dropTable('test')->toSql()); + } + /** * @testdox Mysql show tables form a valid query * @group framework diff --git a/tests/Module/ModuleAbstractTest.php b/tests/Module/ModuleAbstractTest.php index fdc4696bf..b00d3170d 100644 --- a/tests/Module/ModuleAbstractTest.php +++ b/tests/Module/ModuleAbstractTest.php @@ -89,7 +89,7 @@ class ModuleAbstractTest extends \PHPUnit\Framework\TestCase { $model1 = new BaseModel(); $model2 = new BaseModel(); - $this->createModel(1, [$model1, $model2], BaseModelMapper::class, '', '127.0.0.1'); + $this->createModels(1, [$model1, $model2], BaseModelMapper::class, '', '127.0.0.1'); } public function update() : void diff --git a/tests/Module/ModuleManagerTest.php b/tests/Module/ModuleManagerTest.php index c652d5218..215873189 100644 --- a/tests/Module/ModuleManagerTest.php +++ b/tests/Module/ModuleManagerTest.php @@ -20,6 +20,7 @@ use phpOMS\Dispatcher\Dispatcher; use phpOMS\Message\Http\HttpRequest; use phpOMS\Module\ModuleManager; use phpOMS\Router\WebRouter; +use phpOMS\System\File\Local\Directory; use phpOMS\Uri\HttpUri; require_once __DIR__ . '/../Autoloader.php'; @@ -244,4 +245,22 @@ class ModuleManagerTest extends \PHPUnit\Framework\TestCase self::assertFalse($this->moduleManager->isActive('TestModule')); self::assertFalse($this->moduleManager->isRunning('TestModule')); } + + public function testInvalidModulePath() : void + { + $moduleManager = new ModuleManager($this->app, __DIR__ . '/Testmodule'); + + self::assertEquals([], $moduleManager->getAllModules()); + self::assertEquals([], $moduleManager->getInstalledModules()); + } + + public function testInvalidModuleInstall() : void + { + self::assertFalse($this->moduleManager->install('Invalid')); + } + + public function testInvalidModuleUninstall() : void + { + self::assertFalse($this->moduleManager->uninstall('Invalid')); + } } diff --git a/tests/Module/PackageManagerTest.php b/tests/Module/PackageManagerTest.php index 4e97ef193..63c128d4b 100644 --- a/tests/Module/PackageManagerTest.php +++ b/tests/Module/PackageManagerTest.php @@ -92,7 +92,7 @@ class PackageManagerTest extends \PHPUnit\Framework\TestCase Directory::delete(__DIR__ . '/dummyModule'); } - Directory::copy(__DIR__ . '/testModule', __DIR__ . '/dummyModule'); + Directory::copy(__DIR__ . '/testModulePackage', __DIR__ . '/dummyModule'); $package = new PackageManager( __DIR__ . '/testPackage.zip', diff --git a/tests/Module/Testmodule/Admin/Installer.php b/tests/Module/Testmodule/Admin/Installer.php new file mode 100644 index 000000000..37e90a07b --- /dev/null +++ b/tests/Module/Testmodule/Admin/Installer.php @@ -0,0 +1,29 @@ +setTimestamp(-1); + self::assertEquals($now->format('Y-m-d'), Directory::created(self::$con, $dirPath)->format('Y-m-d')); - \rmdir($dirPath); + Directory::delete(self::$con, $dirPath); } /** @@ -202,16 +203,16 @@ class DirectoryTest extends \PHPUnit\Framework\TestCase */ public function testStaticChangedAt() : void { - self::markTestSkipped(); - $dirPath = __DIR__ . '/test'; self::assertTrue(Directory::create(self::$con, $dirPath)); $now = new \DateTime('now'); + $now->setTimestamp(-1); + self::assertEquals($now->format('Y-m-d'), Directory::changed(self::$con, $dirPath)->format('Y-m-d')); - \rmdir($dirPath); + Directory::delete(self::$con, $dirPath); } /** @@ -580,7 +581,7 @@ class DirectoryTest extends \PHPUnit\Framework\TestCase { $dir = new Directory(new HttpUri(self::BASE . __DIR__ . '/dirtest'), '*', true, self::$con); - self::assertEquals(__DIR__, $dir->parentNode()->getPath()); + self::assertEquals(__DIR__, $dir->getParent()->getPath()); } public function testNodeNext() : void diff --git a/tests/System/File/Ftp/FileTest.php b/tests/System/File/Ftp/FileTest.php index 4e9bc2ca0..7336ec8b6 100644 --- a/tests/System/File/Ftp/FileTest.php +++ b/tests/System/File/Ftp/FileTest.php @@ -337,7 +337,7 @@ class FileTest extends \PHPUnit\Framework\TestCase { $testFile = __DIR__ . '/test.txt'; - self::assertEquals(1, File::count($testFile)); + self::assertEquals(1, File::count(self::$con, $testFile)); } /** @@ -887,7 +887,7 @@ class FileTest extends \PHPUnit\Framework\TestCase { $file = new File(new HttpUri(self::BASE . __DIR__ . '/dirtest/test.txt'), self::$con); - self::assertEquals('Local', $file->getParent()->getName()); + self::assertEquals('Ftp', $file->getParent()->getName()); } public function testNodeDirectory() : void diff --git a/tests/System/File/Ftp/FtpStorageTest.php b/tests/System/File/Ftp/FtpStorageTest.php new file mode 100644 index 000000000..16abb5288 --- /dev/null +++ b/tests/System/File/Ftp/FtpStorageTest.php @@ -0,0 +1,1101 @@ +markTestSkipped( + 'The ftp connection is not available.' + ); + } + + FtpStorage::with(self::$con); + } + + /** + * @testdox A directory can be created + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCreateDirectory() : void + { + $dirPath = __DIR__ . '/test'; + self::assertTrue(FtpStorage::create($dirPath)); + self::assertTrue(\is_dir($dirPath)); + + Directory::delete(self::$con, $dirPath); + } + + /** + * @testdox A directory can be checked for existence + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticExistsDirectory() : void + { + self::assertTrue(FtpStorage::exists(__DIR__)); + self::assertFalse(FtpStorage::exists(__DIR__ . '/invalid/path/here')); + } + + /** + * @testdox An existing directory cannot be overwritten + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticOverwriteDirectory() : void + { + $dirPath = __DIR__ . '/test'; + self::assertTrue(FtpStorage::create($dirPath)); + self::assertFalse(FtpStorage::create($dirPath)); + + Directory::delete(self::$con, $dirPath); + } + + /** + * @testdox A directory can be forced to be created recursively + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticSubdirDirectory() : void + { + $dirPath = __DIR__ . '/test/sub/path'; + self::assertTrue(FtpStorage::create($dirPath, 0755, true)); + self::assertTrue(FtpStorage::exists($dirPath)); + + Directory::delete(self::$con, __DIR__ . '/test/sub/path'); + Directory::delete(self::$con, __DIR__ . '/test/sub'); + Directory::delete(self::$con, __DIR__ . '/test'); + } + + /** + * @testdox The name of a directory is just its name without its path + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticNameDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertEquals('test', FtpStorage::name($dirPath)); + } + + /** + * @testdox The basename is the same as the name of the directory + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticBasenameDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertEquals('test', FtpStorage::basename($dirPath)); + } + + /** + * @testdox The dirname is the same as the name of the directory + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDirnameDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertEquals('test', FtpStorage::dirname($dirPath)); + } + + /** + * @testdox The parent of a directory can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticParentDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertEquals(\str_replace('\\', '/', \realpath(__DIR__)), FtpStorage::parent($dirPath)); + } + + /** + * @testdox The full absolute path of a directory can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDirectoryPathDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertEquals($dirPath, FtpStorage::dirpath($dirPath)); + } + + /** + * @testdox The directories creation date can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCreatedAtDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertTrue(FtpStorage::create($dirPath)); + + $now = new \DateTime('now'); + $now->setTimestamp(-1); + + self::assertEquals($now->format('Y-m-d'), FtpStorage::created($dirPath)->format('Y-m-d')); + + Directory::delete(self::$con, $dirPath); + } + + /** + * @testdox The directories last change date can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticChangedAtDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertTrue(FtpStorage::create($dirPath)); + + $now = new \DateTime('now'); + $now->setTimestamp(-1); + + self::assertEquals($now->format('Y-m-d'), FtpStorage::changed($dirPath)->format('Y-m-d')); + + Directory::delete(self::$con, $dirPath); + } + + /** + * @testdox A directory can be deleted + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDeleteDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertTrue(FtpStorage::create($dirPath)); + self::assertTrue(FtpStorage::delete($dirPath)); + self::assertFalse(FtpStorage::exists($dirPath)); + } + + /** + * @testdox A none-existing directory cannot be deleted + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticDeleteDirectory() : void + { + $dirPath = __DIR__ . '/test'; + + self::assertFalse(FtpStorage::delete($dirPath)); + } + + /** + * @testdox The size of a directory can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticSizeRecursiveDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertGreaterThan(0, FtpStorage::size($dirTestPath)); + } + + /** + * @testdox The size of a none-existing directory is negative + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticSizeRecursiveDirectory() : void + { + $dirTestPath = __DIR__ . '/invalid/test/here'; + self::assertEquals(-1, FtpStorage::size($dirTestPath)); + } + + /** + * @testdox The recursive size of a directory is equals or greater than the size of the same directory none-recursive + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticSizeDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertGreaterThan(FtpStorage::size($dirTestPath, false), FtpStorage::size($dirTestPath)); + } + + /** + * @testdox The permission of a directory can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticPermissionDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertGreaterThan(0, FtpStorage::permission($dirTestPath)); + } + + /** + * @testdox The permission of a none-existing directory is negative + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticPermissionDirectory() : void + { + $dirTestPath = __DIR__ . '/invalid/test/here'; + self::assertEquals(-1, FtpStorage::permission($dirTestPath)); + } + + /** + * @testdox A directory can be copied recursively + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCopyDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertTrue(FtpStorage::copy($dirTestPath, __DIR__ . '/newdirtest')); + self::assertFileExists(__DIR__ . '/newdirtest/sub/path/test3.txt'); + + FtpStorage::delete(__DIR__ . '/newdirtest'); + } + + /** + * @testdox A directory can be moved/renamed to a different path + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticMoveDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + + self::assertTrue(FtpStorage::move($dirTestPath, __DIR__ . '/newdirtest')); + self::assertFileExists(__DIR__ . '/newdirtest/sub/path/test3.txt'); + + FtpStorage::move(__DIR__ . '/newdirtest', $dirTestPath); + } + + /** + * @testdox The amount of files in a directory can be returned recursively + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCountRecursiveDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertEquals(4, FtpStorage::count($dirTestPath)); + } + + /** + * @testdox The amount of files in a directory can be returned none-recursively + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCountDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertEquals(1, FtpStorage::count($dirTestPath, false)); + } + + /** + * @testdox The amount of files of a none-existing directory is negative + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCountDirectory() : void + { + $dirTestPath = __DIR__ . '/invalid/path/here'; + self::assertEquals(-1, FtpStorage::count($dirTestPath, false)); + } + + /** + * @testdox All files and sub-directories of a directory can be listed + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticListFilesDirectory() : void + { + $dirTestPath = __DIR__ . '/dirtest'; + self::assertCount(6, FtpStorage::list($dirTestPath, '*', true)); + } + + /** + * @testdox A none-existing directory returns a empty list of files and sub-directories + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidListPathDirectory() : void + { + self::assertEquals([], FtpStorage::list(__DIR__ . '/invalid/path/here')); + } + + /** + * @testdox A invalid directory cannot be copied to a new destination + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidCopyPathDirectory() : void + { + self::assertFalse(FtpStorage::copy(__DIR__ . '/invalid', __DIR__ . '/invalid2')); + } + + /** + * @testdox A invalid directory cannot be moved to a new destination + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidMovePathDirectory() : void + { + self::assertFalse(FtpStorage::move(__DIR__ . '/invalid', __DIR__ . '/invalid2')); + } + + /** + * @testdox Reading the creation date of a none-existing directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidCreatedPathDirectory() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::created(__DIR__ . '/invalid'); + } + + /** + * @testdox Reading the last change date of a none-existing directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidChangedPathDirectory() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::changed(__DIR__ . '/invalid'); + } + + /** + * @testdox Reading the owner of a none-existing directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidOwnerPathDirectory() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::owner(__DIR__ . '/invalid'); + } + + /** + * @testdox A file without content can be created + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCreateFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::create($testFile)); + self::assertTrue(\is_file($testFile)); + self::assertEquals('', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox A file cannot be created if it already exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCreateFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::create($testFile)); + self::assertFalse(FtpStorage::create($testFile)); + self::assertTrue(\is_file($testFile)); + + \unlink($testFile); + } + + /** + * @testdox A file with content can be created + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticPutFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(\is_file($testFile)); + self::assertEquals('test', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox A file cannot be replaced if it doesn't exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCreateReplaceFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertFalse(FtpStorage::put($testFile, 'test', ContentPutMode::REPLACE)); + self::assertfalse(\file_exists($testFile)); + } + + /** + * @testdox A file cannot be appended if it doesn't exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCreateAppendFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertFalse(FtpStorage::put($testFile, 'test', ContentPutMode::APPEND)); + self::assertfalse(\file_exists($testFile)); + } + + /** + * @testdox A file cannot be prepended if it doesn't exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCreatePrependFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertFalse(FtpStorage::put($testFile, 'test', ContentPutMode::PREPEND)); + self::assertfalse(\file_exists($testFile)); + } + + /** + * @testdox A file can be checked for existence + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticExistsFile() : void + { + self::assertTrue(FtpStorage::exists(__DIR__ . '/FileTest.php')); + self::assertFalse(FtpStorage::exists(__DIR__ . '/invalid/file.txt')); + } + + /** + * @testdox A file can be replaced with a new one + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticReplaceFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::put($testFile, 'test2', ContentPutMode::REPLACE)); + + self::assertEquals('test2', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The set alias works like the replace flag + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticSetAliasFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::set($testFile, 'test2')); + + self::assertEquals('test2', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox A file can be appended with additional content + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticAppendFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::put($testFile, 'test2', ContentPutMode::APPEND)); + + self::assertEquals('testtest2', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The append alias works like the append flag + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticAppendAliasFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::append($testFile, 'test2')); + + self::assertEquals('testtest2', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox A file can be prepended with additional content + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticPrependFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::put($testFile, 'test2', ContentPutMode::PREPEND)); + + self::assertEquals('test2test', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The prepend alias works like the prepend flag + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticPrependAliasFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertTrue(FtpStorage::prepend($testFile, 'test2')); + + self::assertEquals('test2test', \file_get_contents($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The content of a file can be read + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticGetFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::put($testFile, 'test', ContentPutMode::CREATE)); + self::assertEquals('test', FtpStorage::get($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The parent directory of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticParentFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals(\str_replace('\\', '/', \realpath(__DIR__ . '/../')), FtpStorage::parent($testFile)); + } + + /** + * @testdox The extension of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticExtensionFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals('txt', FtpStorage::extension($testFile)); + } + + /** + * @testdox The name of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticNameFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals('test', FtpStorage::name($testFile)); + } + + /** + * @testdox The basename of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticBaseNameFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals('test.txt', FtpStorage::basename($testFile)); + } + + /** + * @testdox The file name of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDirnameFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals(\basename(\realpath(__DIR__)), FtpStorage::dirname($testFile)); + } + + /** + * @testdox The file path of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDirectoryPathFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals(\realpath(__DIR__), FtpStorage::dirpath($testFile)); + } + + /** + * @testdox The count of a file is always 1 + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCountFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertEquals(1, FtpStorage::count($testFile)); + } + + /** + * @testdox The directories creation date can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCreatedAtFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::create($testFile)); + + $now = new \DateTime('now'); + self::assertEquals($now->format('Y-m-d'), FtpStorage::created($testFile)->format('Y-m-d')); + + \unlink($testFile); + } + + /** + * @testdox The directories last change date can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticChangedAtFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertTrue(FtpStorage::create($testFile)); + + $now = new \DateTime('now'); + self::assertEquals($now->format('Y-m-d'), FtpStorage::changed($testFile)->format('Y-m-d')); + + \unlink($testFile); + } + + /** + * @testdox A file can be deleted + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticDeleteFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertTrue(FtpStorage::create($testFile)); + self::assertTrue(FtpStorage::delete($testFile)); + self::assertFalse(FtpStorage::exists($testFile)); + } + + /** + * @testdox A none-existing file cannot be deleted + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticDeleteFile() : void + { + $testFile = __DIR__ . '/test.txt'; + + self::assertFalse(FtpStorage::delete($testFile)); + } + + /** + * @testdox The size of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticSizeFile() : void + { + $testFile = __DIR__ . '/test.txt'; + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + + self::assertGreaterThan(0, FtpStorage::size($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The permission of a file can be returned + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticPermissionFile() : void + { + $testFile = __DIR__ . '/test.txt'; + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + + self::assertGreaterThan(0, FtpStorage::permission($testFile)); + + \unlink($testFile); + } + + /** + * @testdox The permission of a none-existing file is negative + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticPermissionFile() : void + { + $testFile = __DIR__ . '/test.txt'; + self::assertEquals(-1, FtpStorage::permission($testFile)); + } + + /** + * @testdox A file can be copied to a different location + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCopyFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/sub/path/testing.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + + self::assertTrue(FtpStorage::copy($testFile, $newPath)); + self::assertTrue(FtpStorage::exists($newPath)); + self::assertEquals('test', FtpStorage::get($newPath)); + + File::delete(self::$con, $newPath); + Directory::delete(self::$con, __DIR__ . '/sub/path/'); + Directory::delete(self::$con, __DIR__ . '/sub/'); + + File::delete(self::$con, $testFile); + } + + /** + * @testdox A file cannot be copied to a different location if the destination already exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticCopyFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/test2.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + FtpStorage::put($newPath, 'test2', ContentPutMode::CREATE); + + self::assertFalse(FtpStorage::copy($testFile, $newPath)); + self::assertEquals('test2', FtpStorage::get($newPath)); + + File::delete(self::$con, $newPath); + File::delete(self::$con, $testFile); + } + + /** + * @testdox A file can be forced to be copied to a different location even if the destination already exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticCopyOverwriteFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/test2.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + FtpStorage::put($newPath, 'test2', ContentPutMode::CREATE); + + self::assertTrue(FtpStorage::copy($testFile, $newPath, true)); + self::assertEquals('test', FtpStorage::get($newPath)); + + File::delete(self::$con, $newPath); + File::delete(self::$con, $testFile); + } + + /** + * @testdox A file can be moved to a different location + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticMoveFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/sub/path/testing.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + + self::assertTrue(FtpStorage::move($testFile, $newPath)); + self::assertFalse(FtpStorage::exists($testFile)); + self::assertTrue(FtpStorage::exists($newPath)); + self::assertEquals('test', FtpStorage::get($newPath)); + + File::delete(self::$con, $newPath); + Directory::delete(self::$con, __DIR__ . '/sub/path/'); + Directory::delete(self::$con, __DIR__ . '/sub/'); + } + + /** + * @testdox A file cannot be moved to a different location if the destination already exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidStaticMoveFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/test2.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + FtpStorage::put($newPath, 'test2', ContentPutMode::CREATE); + + self::assertFalse(FtpStorage::move($testFile, $newPath)); + self::assertTrue(FtpStorage::exists($testFile)); + self::assertEquals('test2', FtpStorage::get($newPath)); + + File::delete(self::$con, $newPath); + File::delete(self::$con, $testFile); + } + + /** + * @testdox A file can be forced to be moved to a different location even if the destination already exists + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testStaticMoveOverwriteFile() : void + { + $testFile = __DIR__ . '/test.txt'; + $newPath = __DIR__ . '/test2.txt'; + + FtpStorage::put($testFile, 'test', ContentPutMode::CREATE); + FtpStorage::put($newPath, 'test2', ContentPutMode::CREATE); + + self::assertTrue(FtpStorage::move($testFile, $newPath, true)); + self::assertFalse(FtpStorage::exists($testFile)); + self::assertEquals('test', FtpStorage::get($newPath)); + + File::delete(self::$con, $testFile); + File::delete(self::$con, $newPath); + } + + public function testSanitize() : void + { + self::assertEquals(':/some/test/[path', FtpStorage::sanitize(':#&^$/some%/test/[path!')); + } + + /** + * @testdox The size of a none-existing file is negative + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidSizePathFile() : void + { + self::assertEquals(-1, FtpStorage::size(__DIR__ . '/invalid.txt')); + } + + /** + * @testdox A none-existing file cannot be copied + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidCopyPathFile() : void + { + self::assertFalse(FtpStorage::copy(__DIR__ . '/invalid.txt', __DIR__ . '/invalid2.txt')); + } + + /** + * @testdox A none-existing file cannot be moved + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidMovePathFile() : void + { + self::assertFalse(FtpStorage::move(__DIR__ . '/invalid.txt', __DIR__ . '/invalid2.txt')); + } + + /** + * @testdox Reading the content of a none-existing file throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidGetPathFile() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::get(__DIR__ . '/invalid.txt'); + } + + /** + * @testdox Reading the created date of a none-existing file throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidCreatedPathFile() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::created(__DIR__ . '/invalid.txt'); + } + + /** + * @testdox Reading the last change date of a none-existing file throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidChangedPathFile() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::changed(__DIR__ . '/invalid.txt'); + } + + /** + * @testdox Reading the owner of a none-existing file throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidOwnerPathFile() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::owner(__DIR__ . '/invalid.txt'); + } + + /** + * @testdox Writing data to a destination which looks like a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidPutPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::put(__DIR__, 'Test'); + } + + /** + * @testdox Reading data from a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidGetPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::get(__DIR__); + } + + /** + * @testdox Trying to run list on a file throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidListPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::list(__DIR__ . '/FtpStorageTest.php'); + } + + /** + * @testdox Setting data to a destination which looks like a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidSetPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::set(__DIR__, 'Test'); + } + + /** + * @testdox Appending data to a destination which looks like a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidAppendPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::append(__DIR__, 'Test'); + } + + /** + * @testdox Prepending data to a destination which looks like a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidPrependPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::prepend(__DIR__, 'Test'); + } + + /** + * @testdox Reading the extension of a destination which looks like a directory throws a PathException + * @covers phpOMS\System\File\Ftp\FtpStorage + * @group framework + */ + public function testInvalidExtensionPath() : void + { + $this->expectException(\phpOMS\System\File\PathException::class); + + FtpStorage::extension(__DIR__); + } +} diff --git a/tests/System/File/Local/DirectoryTest.php b/tests/System/File/Local/DirectoryTest.php index 3bff4d689..04ed2894e 100644 --- a/tests/System/File/Local/DirectoryTest.php +++ b/tests/System/File/Local/DirectoryTest.php @@ -592,7 +592,7 @@ class DirectoryTest extends \PHPUnit\Framework\TestCase { $dir = new Directory(__DIR__ . '/dirtest'); - self::assertEquals(__DIR__, $dir->parentNode()->getPath()); + self::assertEquals(__DIR__, $dir->getParent()->getPath()); } public function testNodeNext() : void diff --git a/tests/System/File/Local/LocalStorageTest.php b/tests/System/File/Local/LocalStorageTest.php index f46c78e58..10aaaced2 100644 --- a/tests/System/File/Local/LocalStorageTest.php +++ b/tests/System/File/Local/LocalStorageTest.php @@ -324,7 +324,7 @@ class LocalStorageTest extends \PHPUnit\Framework\TestCase public function testStaticListFilesDirectory() : void { $dirTestPath = __DIR__ . '/dirtest'; - self::assertCount(6, LocalStorage::list($dirTestPath)); + self::assertCount(6, LocalStorage::list($dirTestPath, '*', true)); } /**