AllowedIpsTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Developer\Test\Unit\Model\Config\Backend;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. /**
  9. * Class AllowedIpsTest
  10. */
  11. class AllowedIpsTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Developer\Model\Config\Backend\AllowedIps
  15. */
  16. protected $model;
  17. protected function setUp()
  18. {
  19. $contextMock = $this->getMockBuilder(\Magento\Framework\Model\Context::class)
  20. ->disableOriginalConstructor()
  21. ->getMock();
  22. $eventMangerMock = $this->getMockBuilder(\Magento\Framework\Event\ManagerInterface::class)
  23. ->disableOriginalConstructor()
  24. ->getMock();
  25. $contextMock->expects($this->any())
  26. ->method('getEventDispatcher')
  27. ->willReturn($eventMangerMock);
  28. $objectManagerHelper = new ObjectManagerHelper($this);
  29. $escaper = $objectManagerHelper->getObject(\Magento\Framework\Escaper::class);
  30. $this->model = $objectManagerHelper->getObject(
  31. \Magento\Developer\Model\Config\Backend\AllowedIps::class,
  32. [
  33. 'context' => $contextMock,
  34. 'escaper' => $escaper,
  35. ]
  36. );
  37. }
  38. /**
  39. * @param string $value
  40. * @param string $expected
  41. * @dataProvider beforeSaveDataProvider
  42. * @return void
  43. */
  44. public function testBeforeSave($value, $expected)
  45. {
  46. $this->assertNull($this->model->getValue());
  47. $this->model->setValue($value);
  48. $this->model->beforeSave();
  49. $this->assertEquals($expected, trim($this->model->getValue()));
  50. }
  51. /**
  52. * @return array
  53. */
  54. public function beforeSaveDataProvider()
  55. {
  56. return [
  57. [ '', '' ],
  58. [ ', 10.64.206.85, 10. 64.85.206 ', '10.64.206.85' ],
  59. [ '10.64.206.85, 10.64.1a.x, ,,', '10.64.206.85' ],
  60. [ ' ,, 10.64.206.85, 10.49.206.85 , ', '10.64.206.85, 10.49.206.85' ],
  61. [ '2001:db8:0:1234:0:567:8:1, ', '2001:db8:0:1234:0:567:8:1' ], /* valid IPV6 address */
  62. [ '2001:0cb8:25a3:04c1:1324:8a2b:0471:8221', '2001:0cb8:25a3:04c1:1324:8a2b:0471:8221'],
  63. [ '255.255.255.255', '255.255.255.255'], /* valid private ip */
  64. [ '127.0.0.1, ::1', '127.0.0.1, ::1'], /* valid reserved ip */
  65. ['*[789bo88n=], 12.34.56.78,[,q 049cq9840@@', '12.34.56.78']
  66. ];
  67. }
  68. }