TranslateTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. class TranslateTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\Translate|\PHPUnit_Framework_MockObject_MockObject
  11. */
  12. protected $_translator;
  13. /**
  14. * @var \Magento\Framework\Phrase\Renderer\Translate
  15. */
  16. protected $_renderer;
  17. /**
  18. * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $loggerMock;
  21. protected function setUp()
  22. {
  23. $this->_translator = $this->createMock(\Magento\Framework\TranslateInterface::class);
  24. $this->loggerMock = $this->getMockBuilder(\Psr\Log\LoggerInterface::class)
  25. ->getMock();
  26. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  27. $this->_renderer = $objectManagerHelper->getObject(
  28. \Magento\Framework\Phrase\Renderer\Translate::class,
  29. [
  30. 'translator' => $this->_translator,
  31. 'logger' => $this->loggerMock
  32. ]
  33. );
  34. }
  35. public function testRenderTextWithoutTranslation()
  36. {
  37. $text = 'text';
  38. $this->_translator->expects($this->once())
  39. ->method('getData')
  40. ->willReturn([]);
  41. $this->assertEquals($text, $this->_renderer->render([$text], []));
  42. }
  43. public function testRenderTextWithSingleQuotes()
  44. {
  45. $translatedTextInDictionary = "That's translated text";
  46. $translatedTextInput = 'That\\\'s translated text';
  47. $translate = 'translate';
  48. $this->_translator->expects($this->once())
  49. ->method('getData')
  50. ->will($this->returnValue([$translatedTextInDictionary => $translate]));
  51. $this->assertEquals($translate, $this->_renderer->render([$translatedTextInput], []));
  52. }
  53. public function testRenderWithoutTranslation()
  54. {
  55. $translate = "Text with quote \'";
  56. $this->_translator->expects($this->once())
  57. ->method('getData')
  58. ->will($this->returnValue([]));
  59. $this->assertEquals($translate, $this->_renderer->render([$translate], []));
  60. }
  61. public function testRenderTextWithDoubleQuotes()
  62. {
  63. $translatedTextInDictionary = "That\"s translated text";
  64. $translatedTextInput = 'That\"s translated text';
  65. $translate = 'translate';
  66. $this->_translator->expects($this->once())
  67. ->method('getData')
  68. ->will($this->returnValue([$translatedTextInDictionary => $translate]));
  69. $this->assertEquals($translate, $this->_renderer->render([$translatedTextInput], []));
  70. }
  71. public function testRenderException()
  72. {
  73. $message = 'something went wrong';
  74. $exception = new \Exception($message);
  75. $this->_translator->expects($this->once())
  76. ->method('getData')
  77. ->willThrowException($exception);
  78. $this->expectException('Exception');
  79. $this->expectExceptionMessage($message);
  80. $this->_renderer->render(['text'], []);
  81. }
  82. }