ContentListingFormatterTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace League\Flysystem\Adapter;
  3. use League\Flysystem\Util;
  4. use League\Flysystem\Util\ContentListingFormatter;
  5. use PHPUnit\Framework\TestCase;
  6. class ContentListingFormatterTest extends TestCase
  7. {
  8. /**
  9. * @test
  10. * @dataProvider formatterDataProvider
  11. */
  12. public function formatting_a_listing($root, $recurse, $caseSensitive, array $listing, array $expected)
  13. {
  14. $formatted = (new ContentListingFormatter($root, $recurse, $caseSensitive))->formatListing($listing);
  15. $expected = array_map([$this, 'addPathInfo'], $expected);
  16. $this->assertEquals($expected, $formatted);
  17. }
  18. public function formatterDataProvider()
  19. {
  20. $recurse = true;
  21. $noRecursion = false;
  22. $caseSensitive = true;
  23. $notCaseSensitive = false;
  24. return [
  25. /* normal cases */
  26. ['/dirname', $noRecursion, $caseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  27. ['/dirname', $noRecursion, $notCaseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  28. ['/dirname', $recurse, $caseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  29. ['/dirname', $recurse, $notCaseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  30. /* normal cases */
  31. ['/dirName', $noRecursion, $caseSensitive, [['path' => '/dirname/here.txt']], []],
  32. ['/dirName', $noRecursion, $notCaseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  33. ['/dirName', $recurse, $caseSensitive, [['path' => '/dirname/here.txt']], []],
  34. ['/dirName', $recurse, $notCaseSensitive, [['path' => '/dirname/here.txt']], [['path' => '/dirname/here.txt']]],
  35. ];
  36. }
  37. private function addPathInfo(array $entry)
  38. {
  39. return $entry + Util::pathinfo($entry['path']);
  40. }
  41. }