MessagesFileLoaderTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
  4. * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
  5. *
  6. * Licensed under The MIT License
  7. * For full copyright and license information, please see the LICENSE.txt
  8. * Redistributions of files must retain the above copyright notice
  9. *
  10. * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
  11. * @link https://cakephp.org CakePHP(tm) Project
  12. * @since 3.0.0
  13. * @license https://opensource.org/licenses/mit-license.php MIT License
  14. */
  15. namespace Cake\Test\TestCase\I18n;
  16. use Cake\Core\Configure;
  17. use Cake\I18n\MessagesFileLoader;
  18. use Cake\TestSuite\TestCase;
  19. /**
  20. * MessagesFileLoaderTest class
  21. */
  22. class MessagesFileLoaderTest extends TestCase
  23. {
  24. /**
  25. * Set Up
  26. *
  27. * @return void
  28. */
  29. public function setUp()
  30. {
  31. parent::setUp();
  32. $this->localePaths = Configure::read('App.paths.locales');
  33. }
  34. /**
  35. * Tear down method
  36. *
  37. * @return void
  38. */
  39. public function tearDown()
  40. {
  41. parent::tearDown();
  42. Configure::write('App.paths.locales', $this->localePaths);
  43. }
  44. /**
  45. * test reading file from custom locale folder
  46. *
  47. * @return void
  48. */
  49. public function testCustomLocalePath()
  50. {
  51. $loader = new MessagesFileLoader('default', 'en');
  52. $package = $loader();
  53. $messages = $package->getMessages();
  54. $this->assertEquals('Po (translated)', $messages['Plural Rule 1']['_context']['']);
  55. Configure::write('App.paths.locales', [TEST_APP . 'custom_locale' . DS]);
  56. $loader = new MessagesFileLoader('default', 'en');
  57. $package = $loader();
  58. $messages = $package->getMessages();
  59. $this->assertEquals('Po (translated) from custom folder', $messages['Plural Rule 1']['_context']['']);
  60. }
  61. /**
  62. * Test reading MO files
  63. * @return void
  64. */
  65. public function testLoadingMoFiles()
  66. {
  67. $loader = new MessagesFileLoader('empty', 'es', 'mo');
  68. $package = $loader();
  69. $this->assertNotFalse($package);
  70. $loader = new MessagesFileLoader('missing', 'es', 'mo');
  71. $package = $loader();
  72. $this->assertFalse($package);
  73. }
  74. }