ResolverTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Model\Locale;
  7. use Magento\Framework\Locale\Resolver;
  8. /**
  9. * @magentoAppArea adminhtml
  10. */
  11. class ResolverTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\Locale\ResolverInterface
  15. */
  16. protected $_model;
  17. protected function setUp()
  18. {
  19. parent::setUp();
  20. $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  21. \Magento\Backend\Model\Locale\Resolver::class
  22. );
  23. }
  24. /**
  25. * @covers \Magento\Backend\Model\Locale\Resolver::setLocale
  26. */
  27. public function testSetLocaleWithDefaultLocale()
  28. {
  29. $this->_checkSetLocale(Resolver::DEFAULT_LOCALE);
  30. }
  31. /**
  32. * @covers \Magento\Backend\Model\Locale\Resolver::setLocale
  33. */
  34. public function testSetLocaleWithBaseInterfaceLocale()
  35. {
  36. $user = new \Magento\Framework\DataObject();
  37. $session = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  38. \Magento\Backend\Model\Auth\Session::class
  39. );
  40. $session->setUser($user);
  41. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  42. \Magento\Backend\Model\Auth\Session::class
  43. )->getUser()->setInterfaceLocale(
  44. 'fr_FR'
  45. );
  46. $this->_checkSetLocale('fr_FR');
  47. }
  48. /**
  49. * @covers \Magento\Backend\Model\Locale\Resolver::setLocale
  50. */
  51. public function testSetLocaleWithSessionLocale()
  52. {
  53. \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  54. \Magento\Backend\Model\Session::class
  55. )->setSessionLocale(
  56. 'es_ES'
  57. );
  58. $this->_checkSetLocale('es_ES');
  59. }
  60. /**
  61. * @covers \Magento\Backend\Model\Locale\Resolver::setLocale
  62. */
  63. public function testSetLocaleWithRequestLocale()
  64. {
  65. $request = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  66. ->get(\Magento\Framework\App\RequestInterface::class);
  67. $request->setPostValue(['locale' => 'de_DE']);
  68. $this->_checkSetLocale('de_DE');
  69. }
  70. /**
  71. * Check set locale
  72. *
  73. * @param string $localeCodeToCheck
  74. * @return void
  75. */
  76. protected function _checkSetLocale($localeCodeToCheck)
  77. {
  78. $this->_model->setLocale();
  79. $localeCode = $this->_model->getLocale();
  80. $this->assertEquals($localeCode, $localeCodeToCheck);
  81. }
  82. }