Finder.phar.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Finder browsing PHAR.
  4. *
  5. * @phpIni phar.readonly=0
  6. */
  7. declare(strict_types=1);
  8. use Nette\Utils\Finder;
  9. use Tester\Assert;
  10. require __DIR__ . '/../bootstrap.php';
  11. $pharFile = getTempDir() . '/test.phar';
  12. $phar = new Phar($pharFile);
  13. $phar['a.php'] = '';
  14. $phar['b.php'] = '';
  15. $phar['sub/c.php'] = '';
  16. unset($phar);
  17. Assert::true(is_file($pharFile));
  18. Phar::loadPhar($pharFile, 'test.phar');
  19. test('from()', function () {
  20. $finder = Finder::findFiles('*')
  21. ->from('phar://test.phar');
  22. Assert::same([
  23. 'phar://test.phar' . DIRECTORY_SEPARATOR . 'a.php',
  24. 'phar://test.phar' . DIRECTORY_SEPARATOR . 'b.php',
  25. 'phar://test.phar' . DIRECTORY_SEPARATOR . 'sub' . DIRECTORY_SEPARATOR . 'c.php',
  26. ], array_keys(iterator_to_array($finder)));
  27. });
  28. test('files()', function () {
  29. $finder = Finder::findFiles('phar://test.phar/*');
  30. Assert::same([
  31. 'phar://test.phar' . DIRECTORY_SEPARATOR . 'a.php',
  32. 'phar://test.phar' . DIRECTORY_SEPARATOR . 'b.php',
  33. ], array_keys(iterator_to_array($finder)));
  34. });