Browse Source

Add tests for Model\FileTag fileToArray and arrayToFile methods.

tags/2019.06^2
Hypolite Petovan 8 months ago
parent
commit
1e90d8efce
1 changed files with 119 additions and 0 deletions
  1. +119
    -0
      tests/src/Model/FileTagTest.php

+ 119
- 0
tests/src/Model/FileTagTest.php View File

@@ -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));
}
}

Loading…
Cancel
Save