]> git.mxchange.org Git - friendica.git/commitdiff
Add tests for Model\FileTag fileToArray and arrayToFile methods.
authorHypolite Petovan <hypolite@mrpetovan.com>
Tue, 28 May 2019 21:05:29 +0000 (17:05 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Tue, 28 May 2019 21:05:29 +0000 (17:05 -0400)
tests/src/Model/FileTagTest.php [new file with mode: 0644]

diff --git a/tests/src/Model/FileTagTest.php b/tests/src/Model/FileTagTest.php
new file mode 100644 (file)
index 0000000..f74bec3
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+
+namespace Friendica\Test\src\Model;
+
+use Friendica\Model\FileTag;
+use PHPUnit\Framework\TestCase;
+
+class FileTagTest extends TestCase
+{
+    public function dataArrayToFile()
+    {
+        return [
+            'list-category' => [
+                'array' => ['1', '2', '3', 'a', 'b', 'c'],
+                'type' => 'category',
+                'file' => '<1><2><3><a><b><c>',
+            ],
+            'list-file' => [
+                'array' => ['1', '2', '3', 'a', 'b', 'c'],
+                'type' => 'file',
+                'file' => '[1][2][3][a][b][c]',
+            ],
+            'chevron-category' => [
+                'array' => ['Left < Center > Right'],
+                'type' => 'category',
+                'file' => '<Left %3c Center %3e Right>',
+            ],
+            'bracket-file' => [
+                'array' => ['Glass [half-full]'],
+                'type' => 'file',
+                'file' => '[Glass %5bhalf-full%5d]',
+            ],
+            /** @see https://github.com/friendica/friendica/issues/7171 */
+            'bug-7171-category' => [
+                'array' => ['Science, Health, Medicine'],
+                'type' => 'category',
+                'file' => '<Science, Health, Medicine>',
+            ],
+            'bug-7171-file' => [
+                'array' => ['Science, Health, Medicine'],
+                'type' => 'file',
+                'file' => '[Science, Health, Medicine]',
+            ],
+        ];
+    }
+
+    /**
+     * Test convert saved folders arrays to a file/category field
+     * @dataProvider dataArrayToFile
+     *
+     * @param array  $array
+     * @param string $type
+     * @param string $file
+     */
+    public function testArrayToFile(array $array, string $type, string $file)
+    {
+        $this->assertEquals($file, FileTag::arrayToFile($array, $type));
+    }
+
+    public function dataFileToArray()
+    {
+        return [
+            'list-category' => [
+                'file' => '<1><2><3><a><b><c>',
+                'type' => 'category',
+                'array' => ['1', '2', '3', 'a', 'b', 'c'],
+            ],
+            'list-file' => [
+                'file' => '[1][2][3][a][b][c]',
+                'type' => 'file',
+                'array' => ['1', '2', '3', 'a', 'b', 'c'],
+            ],
+            'combinedlist-category' => [
+                'file' => '[1][2][3]<a><b><c>',
+                'type' => 'category',
+                'array' => ['a', 'b', 'c'],
+            ],
+            'combinedlist-file' => [
+                'file' => '[1][2][3]<a><b><c>',
+                'type' => 'file',
+                'array' => ['1', '2', '3'],
+            ],
+            'chevron-category' => [
+                'file' => '<Left %3c Center %3e Right>',
+                'type' => 'category',
+                'array' => ['Left < Center > Right'],
+            ],
+            'bracket-file' => [
+                'file' => '[Glass %5bhalf-full%5d]',
+                'type' => 'file',
+                'array' => ['Glass [half-full]'],
+            ],
+            /** @see https://github.com/friendica/friendica/issues/7171 */
+            'bug-7171-category' => [
+                'file' => '<Science, Health, Medicine>',
+                'type' => 'category',
+                'array' => ['Science, Health, Medicine'],
+            ],
+            'bug-7171-file' => [
+                'file' => '[Science, Health, Medicine]',
+                'type' => 'file',
+                'array' => ['Science, Health, Medicine'],
+            ],
+        ];
+    }
+
+    /**
+     * Test convert different saved folders to a file/category field
+     * @dataProvider dataFileToArray
+     *
+     * @param string $file
+     * @param string $type
+     * @param array  $array
+     */
+    public function testFileToArray(string $file, string $type, array $array)
+    {
+        $this->assertEquals($array, FileTag::fileToArray($file, $type));
+    }
+}