Skip to content

Commit 75a3f7b

Browse files
author
Bartosz Kubicki
authored
Merge pull request #1 from lizardmedia/bugfix/url-encoding-fix
url encoding fix
2 parents bb7ae71 + 3a301ae commit 75a3f7b

File tree

14 files changed

+5621
-1275
lines changed

14 files changed

+5621
-1275
lines changed

Api/Rewrite/GeneratorInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
interface GeneratorInterface
1818
{
1919
/**
20-
* @param RewriteInterface[] ...$rewrites
20+
* @param RewriteInterface ...$rewrites
2121
* @return void
2222
*/
2323
public function generateVerificationFileRewrite(RewriteInterface ...$rewrites);

Api/Rewrite/RewriteDataInterface.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@
1414
*/
1515
interface RewriteDataInterface
1616
{
17-
const GENERATED_REWRITE_DATA = [
17+
/**
18+
* @var array
19+
*/
20+
public const GENERATED_REWRITE_DATA = [
1821
'redirect_type' => 0,
1922
'entity_type' => 'custom',
2023
'is_autogenerated' => '0',

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
### 1.0.1 ###
2+
* fix for passing filepath through URL param

Controller/File/Index.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Magento\Framework\App\Action\Context;
1616
use Magento\Framework\Controller\Result\Raw;
1717
use Magento\Framework\Controller\Result\RawFactory;
18+
use Magento\Framework\Controller\Result\Redirect;
1819
use Magento\Framework\Controller\ResultFactory;
1920

2021
/**
@@ -53,9 +54,9 @@ public function __construct(
5354
}
5455

5556
/**
56-
* @return Raw
57+
* @return Raw|Redirect
5758
*/
58-
public function execute(): Raw
59+
public function execute()
5960
{
6061
try {
6162
$verificationFileContent = $this->getVerificationFileContent();
@@ -64,7 +65,8 @@ public function execute(): Raw
6465
$result->setContents($verificationFileContent);
6566
return $result;
6667
} catch (VerificationFileNotFoundException $e) {
67-
$this->messageManager->addError($e->getMessage());
68+
$this->messageManager->addErrorMessage($e->getMessage());
69+
/** @var Redirect $result */
6870
$result = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
6971
$result->setUrl('/');
7072
return $result;
@@ -77,13 +79,15 @@ public function execute(): Raw
7779
*/
7880
private function getVerificationFileContent(): string
7981
{
80-
$requestedFile = $this->getRequest()->getParam('request_path');
82+
$requestedFile = urldecode($this->getRequest()->getParam('request_path'));
8183
$rewrites = $this->configProvider->getRewritesDataArray();
84+
8285
foreach ($rewrites as $rewrite) {
8386
if ($requestedFile === $rewrite->getFileName()) {
8487
return $rewrite->getFileContent();
8588
}
8689
}
90+
8791
throw new VerificationFileNotFoundException(__('Requested verification file was not found'));
8892
}
8993
}

Model/ConfigProvider.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,15 @@
2323
*/
2424
class ConfigProvider implements ConfigProviderInterface
2525
{
26-
const XML_PATH_VERIFICATION_CODE = 'lizardmedia_google_analytics_verifier/head/verification_code';
27-
const XML_PATH_VERIFICATION_FILES = 'lizardmedia_google_analytics_verifier/file/files';
26+
/**
27+
* @var string
28+
*/
29+
public const XML_PATH_VERIFICATION_CODE = 'lizardmedia_google_analytics_verifier/head/verification_code';
30+
31+
/**
32+
* @var string
33+
*/
34+
public const XML_PATH_VERIFICATION_FILES = 'lizardmedia_google_analytics_verifier/file/files';
2835

2936
/**
3037
* @var ScopeConfigInterface

Model/Rewrite/Generator.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99

1010
namespace LizardMedia\GoogleAnalyticsVerifier\Model\Rewrite;
1111

12+
use Exception;
1213
use LizardMedia\GoogleAnalyticsVerifier\Api\Data\RewriteInterface;
1314
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\GeneratorInterface;
1415
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\RewriteDataInterface;
1516
use LizardMedia\GoogleAnalyticsVerifier\Controller\File\Index;
17+
use Magento\Framework\Exception\AlreadyExistsException;
1618
use Magento\Store\Api\Data\StoreInterface;
1719
use Magento\Store\Model\StoreManagerInterface;
1820
use Magento\UrlRewrite\Model\ResourceModel\UrlRewrite as UrlRewriteResource;
@@ -58,9 +60,9 @@ public function __construct(
5860
}
5961

6062
/**
61-
* @param RewriteInterface[] ...$rewrites
62-
* @throws \Exception
63-
* @throws \Magento\Framework\Exception\AlreadyExistsException
63+
* @param RewriteInterface ...$rewrites
64+
* @throws Exception
65+
* @throws AlreadyExistsException
6466
*/
6567
public function generateVerificationFileRewrite(RewriteInterface ...$rewrites)
6668
{
@@ -75,8 +77,8 @@ public function generateVerificationFileRewrite(RewriteInterface ...$rewrites)
7577
/**
7678
* @param StoreInterface $store
7779
* @param RewriteInterface $rewriteDataObject
78-
* @throws \Exception
79-
* @throws \Magento\Framework\Exception\AlreadyExistsException
80+
* @throws Exception
81+
* @throws AlreadyExistsException
8082
*/
8183
private function generateRewriteForStore(StoreInterface $store, RewriteInterface $rewriteDataObject)
8284
{
@@ -89,7 +91,7 @@ private function generateRewriteForStore(StoreInterface $store, RewriteInterface
8991
$rewrite->setData(UrlRewriteService::REQUEST_PATH, $fileName);
9092
$rewrite->setData(
9193
UrlRewriteService::TARGET_PATH,
92-
Index::URL_PATH . Index::FILENAME_PARAM . '/' . $fileName
94+
Index::URL_PATH . Index::FILENAME_PARAM . '/' . urlencode($fileName)
9395
);
9496

9597
$this->urlRewriteResource->save($rewrite);

Model/Rewrite/Purger.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace LizardMedia\GoogleAnalyticsVerifier\Model\Rewrite;
1111

12+
use Exception;
1213
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\PurgerInterface;
1314
use LizardMedia\GoogleAnalyticsVerifier\Api\Rewrite\RewriteDataInterface;
1415
use LizardMedia\GoogleAnalyticsVerifier\Controller\File\Index;
@@ -47,7 +48,7 @@ public function __construct(
4748
}
4849

4950
/**
50-
* @throws \Exception
51+
* @throws Exception
5152
*/
5253
public function purgeVerificationFileRewrites()
5354
{

Test/Unit/Model/ConfigProviderTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class ConfigProviderTest extends TestCase
4848
/**
4949
* @return void
5050
*/
51-
protected function setUp()
51+
protected function setUp(): void
5252
{
5353
$this->scopeConfig = $this->getMockBuilder(ScopeConfigInterface::class)->getMock();
5454
$this->rewriteFactory = $this->getMockBuilder(RewriteFactory::class)
@@ -65,8 +65,9 @@ protected function setUp()
6565

6666
/**
6767
* @test
68+
* @return void
6869
*/
69-
public function testGetVerificationCodeIsString()
70+
public function testGetVerificationCodeIsString(): void
7071
{
7172
$this->scopeConfig->expects($this->once())->method('getValue')
7273
->with(ConfigProvider::XML_PATH_VERIFICATION_CODE)->willReturn('test');
@@ -76,8 +77,9 @@ public function testGetVerificationCodeIsString()
7677

7778
/**
7879
* @test
80+
* @return void
7981
*/
80-
public function testGetVerificationCodeIsNull()
82+
public function testGetVerificationCodeIsNull(): void
8183
{
8284
$this->scopeConfig->expects($this->once())->method('getValue')
8385
->with(ConfigProvider::XML_PATH_VERIFICATION_CODE)->willReturn(null);
@@ -87,8 +89,9 @@ public function testGetVerificationCodeIsNull()
8789

8890
/**
8991
* @test
92+
* @return void
9093
*/
91-
public function testGetRewritesDataArray()
94+
public function testGetRewritesDataArray(): void
9295
{
9396
$value = '{"_1533030582256_256":{"file_name":"google800000000","file_content":"dupa1"}}';
9497
$this->scopeConfig->expects($this->once())

Test/Unit/Model/Rewrite/GeneratorTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class GeneratorTest extends TestCase
5959
/**
6060
* @return void
6161
*/
62-
protected function setUp()
62+
protected function setUp(): void
6363
{
6464
$this->urlRewrite = $this->getMockBuilder(UrlRewrite::class)
6565
->disableOriginalConstructor()->getMock();
@@ -78,8 +78,9 @@ protected function setUp()
7878

7979
/**
8080
* @test
81+
* @return void
8182
*/
82-
public function testGenerateVerificationFileRewriteCreatesRewrite()
83+
public function testGenerateVerificationFileRewriteCreatesRewrite(): void
8384
{
8485
$fileName = 'fileName';
8586
$rewriteMock = $this->getMockBuilder(Rewrite::class)
@@ -95,8 +96,9 @@ public function testGenerateVerificationFileRewriteCreatesRewrite()
9596

9697
/**
9798
* @test
99+
* @return void
98100
*/
99-
public function testGenerateVerificationFileRewriteWhenUrlResourceThrowsException()
101+
public function testGenerateVerificationFileRewriteWhenUrlResourceThrowsException(): void
100102
{
101103
$fileName = '';
102104
$rewriteMock = $this->getMockBuilder(Rewrite::class)
@@ -116,8 +118,9 @@ public function testGenerateVerificationFileRewriteWhenUrlResourceThrowsExceptio
116118
/**
117119
* @param string $fileName
118120
* @param int $storeId
121+
* @return void
119122
*/
120-
private function runGenerateVerificationFileRewriteMethod(string $fileName, int $storeId)
123+
private function runGenerateVerificationFileRewriteMethod(string $fileName, int $storeId): void
121124
{
122125
$store = $this->getMockBuilder(StoreInterface::class)->getMock();
123126
$stores = [$store];

Test/Unit/Model/Rewrite/PurgerTest.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class PurgerTest extends TestCase
4949
/**
5050
* @return void
5151
*/
52-
protected function setUp()
52+
protected function setUp(): void
5353
{
5454
$this->urlRewriteCollectionFactory = $this->getMockBuilder(UrlRewriteCollectionFactory::class)
5555
->disableOriginalConstructor()->getMock();
@@ -66,8 +66,9 @@ protected function setUp()
6666

6767
/**
6868
* @test
69+
* @return void
6970
*/
70-
public function testPurgeVerificationFileRewrites()
71+
public function testPurgeVerificationFileRewrites(): void
7172
{
7273
$this->setupCollection();
7374
$this->urlRewriteResource->expects($this->once())->method('delete')->with($this->urlRewrite);
@@ -76,8 +77,9 @@ public function testPurgeVerificationFileRewrites()
7677

7778
/**
7879
* @test
80+
* @return void
7981
*/
80-
public function testPurgeVerificationFileRewritesWhenThrowsExceptionWhileDelete()
82+
public function testPurgeVerificationFileRewritesWhenThrowsExceptionWhileDelete(): void
8183
{
8284
$this->setupCollection();
8385
$this->urlRewriteResource->expects($this->once())->method('delete')
@@ -90,7 +92,7 @@ public function testPurgeVerificationFileRewritesWhenThrowsExceptionWhileDelete(
9092
/**
9193
* @return void
9294
*/
93-
private function setupCollection()
95+
private function setupCollection(): void
9496
{
9597
$rewriteCollection = $this->getMockBuilder(UrlRewriteCollection::class)
9698
->disableOriginalConstructor()->getMock();

0 commit comments

Comments
 (0)