FileSystem.normalizePath.phpt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. declare(strict_types=1);
  3. use Nette\Utils\FileSystem;
  4. use Tester\Assert;
  5. require __DIR__ . '/../bootstrap.php';
  6. test('', function () {
  7. $S = DIRECTORY_SEPARATOR;
  8. Assert::same('', FileSystem::normalizePath(''));
  9. Assert::same($S, FileSystem::normalizePath('\\'));
  10. Assert::same($S, FileSystem::normalizePath('/'));
  11. Assert::same('file', FileSystem::normalizePath('file'));
  12. Assert::same("file{$S}", FileSystem::normalizePath('file/'));
  13. Assert::same("d:{$S}file", FileSystem::normalizePath('d:/file'));
  14. Assert::same("d:{$S}file", FileSystem::normalizePath('d:\file'));
  15. Assert::same("{$S}file", FileSystem::normalizePath('/file'));
  16. Assert::same('', FileSystem::normalizePath('.'));
  17. Assert::same($S, FileSystem::normalizePath('\\.'));
  18. Assert::same($S, FileSystem::normalizePath('/.'));
  19. Assert::same($S, FileSystem::normalizePath('.\\'));
  20. Assert::same($S, FileSystem::normalizePath('./'));
  21. Assert::same($S, FileSystem::normalizePath('/file/..'));
  22. Assert::same($S, FileSystem::normalizePath('/file/../'));
  23. Assert::same('', FileSystem::normalizePath('file/..'));
  24. Assert::same($S, FileSystem::normalizePath('file/../'));
  25. Assert::same("{$S}..", FileSystem::normalizePath('/file/../..'));
  26. Assert::same("{$S}..{$S}", FileSystem::normalizePath('/file/../../'));
  27. Assert::same('..', FileSystem::normalizePath('file/../..'));
  28. Assert::same("..{$S}", FileSystem::normalizePath('file/../../'));
  29. Assert::same("{$S}..{$S}bar", FileSystem::normalizePath('/file/../../bar'));
  30. Assert::same("..{$S}bar", FileSystem::normalizePath('file/../../bar'));
  31. Assert::same("..{$S}file", FileSystem::normalizePath('../file'));
  32. Assert::same("{$S}..{$S}file", FileSystem::normalizePath('/../file'));
  33. Assert::same('file', FileSystem::normalizePath('./file'));
  34. Assert::same("{$S}file", FileSystem::normalizePath('/./file'));
  35. Assert::same("{$S}..{$S}bar", FileSystem::normalizePath('/file/./.././.././bar'));
  36. Assert::same("..{$S}bar", FileSystem::normalizePath('file/../../bar/.'));
  37. Assert::same("{$S}..{$S}bar{$S}", FileSystem::normalizePath('/file/./.././.././bar/'));
  38. Assert::same("..{$S}bar{$S}", FileSystem::normalizePath('file/../../bar/./'));
  39. Assert::same($S, FileSystem::normalizePath('//'));
  40. Assert::same("{$S}foo{$S}", FileSystem::normalizePath('//foo//'));
  41. Assert::same("{$S}", FileSystem::normalizePath('//foo//..//'));
  42. });