ConfigTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\App\Test\Unit\Language;
  7. use \Magento\Framework\App\Language\Config;
  8. /**
  9. * Test for configuration of language
  10. */
  11. class ConfigTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /** @var \Magento\Framework\Config\Dom\UrnResolver */
  14. protected $urnResolver;
  15. /** @var \Magento\Framework\Config\Dom\UrnResolver */
  16. protected $urnResolverMock;
  17. /** @var Config */
  18. protected $config;
  19. protected function setUp()
  20. {
  21. $this->urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
  22. $this->urnResolverMock = $this->createMock(\Magento\Framework\Config\Dom\UrnResolver::class);
  23. $this->urnResolverMock->expects($this->any())
  24. ->method('getRealPath')
  25. ->with('urn:magento:framework:App/Language/package.xsd')
  26. ->willReturn($this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd'));
  27. $validationStateMock = $this->createMock(\Magento\Framework\Config\ValidationStateInterface::class);
  28. $validationStateMock->method('isValidationRequired')
  29. ->willReturn(true);
  30. $domFactoryMock = $this->createMock(\Magento\Framework\Config\DomFactory::class);
  31. $domFactoryMock->expects($this->once())
  32. ->method('createDom')
  33. ->willReturnCallback(
  34. function ($arguments) use ($validationStateMock) {
  35. return new \Magento\Framework\Config\Dom(
  36. $arguments['xml'],
  37. $validationStateMock,
  38. [],
  39. null,
  40. $arguments['schemaFile']
  41. );
  42. }
  43. );
  44. $this->config = new Config(
  45. file_get_contents(__DIR__ . '/_files/language.xml'),
  46. $this->urnResolverMock,
  47. $domFactoryMock
  48. );
  49. }
  50. public function testConfiguration()
  51. {
  52. $this->assertEquals('en_GB', $this->config->getCode());
  53. $this->assertEquals('Magento', $this->config->getVendor());
  54. $this->assertEquals('en_GB', $this->config->getPackage());
  55. $this->assertEquals('100', $this->config->getSortOrder());
  56. $this->assertEquals(
  57. [
  58. ['vendor' => 'oxford-university', 'package' => 'en_us'],
  59. ['vendor' => 'oxford-university', 'package' => 'en_gb'],
  60. ],
  61. $this->config->getUses()
  62. );
  63. }
  64. public function testGetSchemaFile()
  65. {
  66. $method = new \ReflectionMethod($this->config, 'getSchemaFile');
  67. $method->setAccessible(true);
  68. $this->assertEquals(
  69. $this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd'),
  70. $method->invoke($this->config)
  71. );
  72. }
  73. }