Strings.truncate().phpt 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Strings::truncate()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Strings;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. $s = "\u{158}ekn\u{11B}te, jak se (dnes) m\u{E1}te?"; // Řekněte, jak se (dnes) máte?
  10. Assert::same('…', Strings::truncate($s, -1)); // length=-1
  11. Assert::same('…', Strings::truncate($s, 0)); // length=0
  12. Assert::same('…', Strings::truncate($s, 1)); // length=1
  13. Assert::same('Ř…', Strings::truncate($s, 2)); // length=2
  14. Assert::same('Ře…', Strings::truncate($s, 3)); // length=3
  15. Assert::same('Řek…', Strings::truncate($s, 4)); // length=4
  16. Assert::same('Řekn…', Strings::truncate($s, 5)); // length=5
  17. Assert::same('Řekně…', Strings::truncate($s, 6)); // length=6
  18. Assert::same('Řeknět…', Strings::truncate($s, 7)); // length=7
  19. Assert::same('Řekněte…', Strings::truncate($s, 8)); // length=8
  20. Assert::same('Řekněte,…', Strings::truncate($s, 9)); // length=9
  21. Assert::same('Řekněte,…', Strings::truncate($s, 10)); // length=10
  22. Assert::same('Řekněte,…', Strings::truncate($s, 11)); // length=11
  23. Assert::same('Řekněte,…', Strings::truncate($s, 12)); // length=12
  24. Assert::same('Řekněte, jak…', Strings::truncate($s, 13)); // length=13
  25. Assert::same('Řekněte, jak…', Strings::truncate($s, 14)); // length=14
  26. Assert::same('Řekněte, jak…', Strings::truncate($s, 15)); // length=15
  27. Assert::same('Řekněte, jak se…', Strings::truncate($s, 16)); // length=16
  28. Assert::same('Řekněte, jak se …', Strings::truncate($s, 17)); // length=17
  29. Assert::same('Řekněte, jak se …', Strings::truncate($s, 18)); // length=18
  30. Assert::same('Řekněte, jak se …', Strings::truncate($s, 19)); // length=19
  31. Assert::same('Řekněte, jak se …', Strings::truncate($s, 20)); // length=20
  32. Assert::same('Řekněte, jak se …', Strings::truncate($s, 21)); // length=21
  33. Assert::same('Řekněte, jak se (dnes…', Strings::truncate($s, 22)); // length=22
  34. Assert::same('Řekněte, jak se (dnes)…', Strings::truncate($s, 23)); // length=23
  35. Assert::same('Řekněte, jak se (dnes)…', Strings::truncate($s, 24)); // length=24
  36. Assert::same('Řekněte, jak se (dnes)…', Strings::truncate($s, 25)); // length=25
  37. Assert::same('Řekněte, jak se (dnes)…', Strings::truncate($s, 26)); // length=26
  38. Assert::same('Řekněte, jak se (dnes)…', Strings::truncate($s, 27)); // length=27
  39. Assert::same('Řekněte, jak se (dnes) máte?', Strings::truncate($s, 28)); // length=28
  40. Assert::same('Řekněte, jak se (dnes) máte?', Strings::truncate($s, 29)); // length=29
  41. Assert::same('Řekněte, jak se (dnes) máte?', Strings::truncate($s, 30)); // length=30
  42. Assert::same('Řekněte, jak se (dnes) máte?', Strings::truncate($s, 31)); // length=31
  43. Assert::same('Řekněte, jak se (dnes) máte?', Strings::truncate($s, 32)); // length=32
  44. // mañana, U+006E + U+0303 (combining character)
  45. Assert::same("man\u{303}", Strings::truncate("man\u{303}ana", 4, ''));
  46. Assert::same('man', Strings::truncate("man\u{303}ana", 3, ''));