Strings.Regexp.errors.utf8.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Strings and RegexpException run-time error.
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Strings;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. Assert::exception(
  10. fn() => Strings::split("0123456789\xFF", '#\d#u'),
  11. Nette\Utils\RegexpException::class,
  12. 'Malformed UTF-8 characters, possibly incorrectly encoded (pattern: #\d#u)',
  13. );
  14. Assert::exception(
  15. fn() => Strings::match("0123456789\xFF", '#\d#u'),
  16. Nette\Utils\RegexpException::class,
  17. 'Malformed UTF-8 characters, possibly incorrectly encoded (pattern: #\d#u)',
  18. );
  19. Assert::exception(
  20. fn() => Strings::matchAll("0123456789\xFF", '#\d#u'),
  21. Nette\Utils\RegexpException::class,
  22. 'Malformed UTF-8 characters, possibly incorrectly encoded (pattern: #\d#u)',
  23. );
  24. Assert::exception(
  25. fn() => Strings::replace("0123456789\xFF", '#\d#u', 'x'),
  26. Nette\Utils\RegexpException::class,
  27. 'Malformed UTF-8 characters, possibly incorrectly encoded (pattern: #\d#u)',
  28. );
  29. function cb()
  30. {
  31. return 'x';
  32. }
  33. Assert::exception(
  34. fn() => Strings::replace("0123456789\xFF", '#\d#u', Closure::fromCallable('cb')),
  35. Nette\Utils\RegexpException::class,
  36. 'Malformed UTF-8 characters, possibly incorrectly encoded (pattern: #\d#u)',
  37. );