PlaceholderTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Phrase\Test\Unit\Renderer;
  7. use \Magento\Framework\Phrase\Renderer\Placeholder;
  8. class PlaceholderTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /** @var Placeholder */
  11. protected $_renderer;
  12. protected function setUp()
  13. {
  14. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  15. $this->_renderer = $objectManager->getObject(\Magento\Framework\Phrase\Renderer\Placeholder::class);
  16. }
  17. /**
  18. * @param string $text The text with placeholders
  19. * @param array $arguments The arguments supplying values for the placeholders
  20. * @param string $result The result of Phrase rendering
  21. *
  22. * @dataProvider renderPlaceholderDataProvider
  23. */
  24. public function testRenderPlaceholder($text, array $arguments, $result)
  25. {
  26. $this->assertEquals($result, $this->_renderer->render([$text], $arguments));
  27. }
  28. /**
  29. * @return array
  30. */
  31. public function renderPlaceholderDataProvider()
  32. {
  33. return [
  34. ['text %1 %2', ['one', 'two'], 'text one two'],
  35. ['text %one %two', ['one' => 'one', 'two' => 'two'], 'text one two'],
  36. ['%one text %two %1', ['one' => 'one', 'two' => 'two', 'three'], 'one text two three'],
  37. [
  38. 'text %1 %two %2 %3 %five %4 %5',
  39. ['one', 'two' => 'two', 'three', 'four', 'five' => 'five', 'six', 'seven'],
  40. 'text one two three four five six seven'
  41. ],
  42. [
  43. '%one text %two text %three %1 %2',
  44. ['two' => 'two', 'one' => 'one', 'three' => 'three', 'four', 'five'],
  45. 'one text two text three four five'
  46. ],
  47. [
  48. '%three text %two text %1',
  49. ['two' => 'two', 'three' => 'three', 'one'],
  50. 'three text two text one'
  51. ],
  52. ['text %1 text %2 text', [], 'text %1 text %2 text'],
  53. ['%1 text %2', ['one'], 'one text %2'],
  54. [
  55. '%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11',
  56. ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven'],
  57. 'one two three four five six seven eight nine ten eleven',
  58. ],
  59. [
  60. 'A %table has four legs',
  61. ['tab' => 'Tab-Leiste', 'able' => '', 'table' => 'Tabelle'], 'A Tabelle has four legs'
  62. ],
  63. ];
  64. }
  65. }