DecoderTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Url\Test\Unit;
  7. use \Magento\Framework\Url\Decoder;
  8. use \Magento\Framework\Url\Encoder;
  9. class DecoderTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @covers \Magento\Framework\Url\Encoder::encode
  13. * @covers \Magento\Framework\Url\Decoder::decode
  14. */
  15. public function testDecode()
  16. {
  17. $urlBuilderMock = $this->createMock(\Magento\Framework\UrlInterface::class);
  18. /** @var $urlBuilderMock \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject */
  19. $decoder = new Decoder($urlBuilderMock);
  20. $encoder = new Encoder();
  21. $data = uniqid();
  22. $result = $encoder->encode($data);
  23. $urlBuilderMock->expects($this->once())
  24. ->method('sessionUrlVar')
  25. ->with($this->equalTo($data))
  26. ->will($this->returnValue($result));
  27. $this->assertNotContains('&', $result);
  28. $this->assertNotContains('%', $result);
  29. $this->assertNotContains('+', $result);
  30. $this->assertNotContains('=', $result);
  31. $this->assertEquals($result, $decoder->decode($result));
  32. }
  33. }