I18nFileTest.php 900 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. declare(strict_types=1);
  3. require_once dirname(__DIR__, 3) . '/cli/i18n/I18nFile.php';
  4. final class I18nFileTest extends \PHPUnit\Framework\TestCase {
  5. public function test(): void {
  6. $before = $this->computeFilesHash();
  7. $file = new I18nFile();
  8. $data = $file->load();
  9. self::assertArrayNotHasKey('plurals.php', $data['en']);
  10. $file->dump($data);
  11. $after = $this->computeFilesHash();
  12. self::assertSame($before, $after);
  13. }
  14. /** @return array<string,string|false> */
  15. private function computeFilesHash(): array {
  16. $hashes = [];
  17. $dirs = new DirectoryIterator(I18N_PATH);
  18. foreach ($dirs as $dir) {
  19. if ($dir->isDot()) {
  20. continue;
  21. }
  22. $files = new DirectoryIterator($dir->getPathname());
  23. foreach ($files as $file) {
  24. if (!$file->isFile()) {
  25. continue;
  26. }
  27. $hashes[$file->getPathname()] = sha1_file($file->getPathname());
  28. }
  29. }
  30. return $hashes;
  31. }
  32. }