TranslateCachingTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. /**
  9. * Class TranslateCachingTest
  10. * @package Magento\Framework
  11. * @magentoAppIsolation enabled
  12. */
  13. class TranslateCachingTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var \Magento\Framework\Phrase\RendererInterface
  17. */
  18. protected $renderer;
  19. /**
  20. * @var \Magento\Framework\ObjectManagerInterface
  21. */
  22. protected $objectManager;
  23. protected function setUp()
  24. {
  25. $this->objectManager = Bootstrap::getObjectManager();
  26. $this->renderer = Phrase::getRenderer();
  27. Phrase::setRenderer($this->objectManager->get(\Magento\Framework\Phrase\RendererInterface::class));
  28. }
  29. protected function tearDown()
  30. {
  31. Phrase::setRenderer($this->renderer);
  32. /** @var \Magento\Framework\App\Cache\Type\Translate $cache */
  33. $cache = $this->objectManager->get(\Magento\Framework\App\Cache\Type\Translate::class);
  34. $cache->clean();
  35. }
  36. /**
  37. * @magentoDataFixture Magento/Translation/_files/db_translate.php
  38. */
  39. public function testLoadDataCaching()
  40. {
  41. /** @var \Magento\Framework\Translate $model */
  42. $model = $this->objectManager->get(\Magento\Framework\Translate::class);
  43. $model->loadData(\Magento\Framework\App\Area::AREA_FRONTEND, true); // this is supposed to cache the fixture
  44. $this->assertEquals('Fixture Db Translation', new Phrase('Fixture String'));
  45. /** @var \Magento\Translation\Model\ResourceModel\StringUtils $translateString */
  46. $translateString = $this->objectManager->create(\Magento\Translation\Model\ResourceModel\StringUtils::class);
  47. $translateString->saveTranslate('Fixture String', 'New Db Translation');
  48. $this->assertEquals(
  49. 'Fixture Db Translation',
  50. new Phrase('Fixture String'),
  51. 'Translation is expected to be cached'
  52. );
  53. $model->loadData(\Magento\Framework\App\Area::AREA_FRONTEND, true);
  54. $this->assertEquals(
  55. 'New Db Translation',
  56. new Phrase('Fixture String'),
  57. 'Forced load should not use cache'
  58. );
  59. }
  60. }