PathPatternTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\View\Test\Unit\Helper;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. class PathPatternTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \Magento\Framework\View\Helper\PathPattern
  12. */
  13. protected $pathPatternHelper;
  14. /**
  15. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  16. */
  17. protected $objectManagerHelper;
  18. protected function setUp()
  19. {
  20. $this->objectManagerHelper = new ObjectManagerHelper($this);
  21. $this->pathPatternHelper = $this->objectManagerHelper->getObject(
  22. \Magento\Framework\View\Helper\PathPattern::class
  23. );
  24. }
  25. /**
  26. * @param string $path
  27. * @param string $expectedPattern
  28. *
  29. * @dataProvider translatePatternFromGlobDataProvider
  30. */
  31. public function testTranslatePatternFromGlob($path, $expectedPattern)
  32. {
  33. $this->assertEquals($expectedPattern, $this->pathPatternHelper->translatePatternFromGlob($path));
  34. }
  35. /**
  36. * @return array
  37. */
  38. public function translatePatternFromGlobDataProvider()
  39. {
  40. return [
  41. [
  42. 'path' => '*.xml',
  43. 'expectedPattern' => '[^/]*\\.xml'
  44. ],
  45. [
  46. 'path' => 'd??.*',
  47. 'expectedPattern' => 'd[^/][^/]\\.[^/]*'
  48. ],
  49. [
  50. 'path' => '[!0-9]?-[a-fA-F0-9].php',
  51. 'expectedPattern' => '[^0-9][^/]\\-[a-fA-F0-9]\\.php'
  52. ],
  53. [
  54. 'path' => 'config.{php,json,xml}',
  55. 'expectedPattern' => 'config\\.(?:php|json|xml)'
  56. ],
  57. [
  58. 'path' => 'c?nf[aio]g{-,}[!0-9/]*.{p,}html',
  59. 'expectedPattern' => 'c[^/]nf[aio]g(?:\\-|)[^0-9/][^/]*\\.(?:p|)html'
  60. ]
  61. ];
  62. }
  63. }