Skip to content

Commit d1a0703

Browse files
committed
Fix trailing slash used a product & category URL suffix
Cover with unit tests (cherry picked from commit ac41ad0)
1 parent 7d88a9b commit d1a0703

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

app/code/Magento/UrlRewrite/Test/Unit/Model/Storage/DbStorageTest.php

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ public function testFindOneByDataWithRequestPathIsRedirect()
356356

357357
$urlRewriteRowInDb = [
358358
UrlRewrite::REQUEST_PATH => $origRequestPath . '/',
359-
UrlRewrite::TARGET_PATH => 'page-A/',
359+
UrlRewrite::TARGET_PATH => 'page-A/',
360360
UrlRewrite::REDIRECT_TYPE => 301,
361361
UrlRewrite::STORE_ID => 1,
362362
];
@@ -378,6 +378,65 @@ public function testFindOneByDataWithRequestPathIsRedirect()
378378
$this->assertEquals(['urlRewrite1'], $this->storage->findOneByData($data));
379379
}
380380

381+
public function testFindOneByDataWithRequestPathTwoResults()
382+
{
383+
$origRequestPath = 'page-one';
384+
$data = [
385+
'col1' => 'val1',
386+
'col2' => 'val2',
387+
UrlRewrite::REQUEST_PATH => $origRequestPath,
388+
];
389+
390+
$this->select->expects($this->at(1))
391+
->method('where')
392+
->with('col1 IN (?)', 'val1');
393+
394+
$this->select->expects($this->at(2))
395+
->method('where')
396+
->with('col2 IN (?)', 'val2');
397+
398+
$this->select->expects($this->at(3))
399+
->method('where')
400+
->with('request_path IN (?)', [$origRequestPath, $origRequestPath . '/']);
401+
402+
$this->connectionMock->expects($this->any())
403+
->method('quoteIdentifier')
404+
->will($this->returnArgument(0));
405+
406+
$this->connectionMock->expects($this->never())
407+
->method('fetchRow');
408+
409+
$urlRewriteRowInDb = [
410+
UrlRewrite::REQUEST_PATH => $origRequestPath . '/',
411+
UrlRewrite::TARGET_PATH => 'page-A/',
412+
UrlRewrite::REDIRECT_TYPE => 301,
413+
UrlRewrite::STORE_ID => 1,
414+
];
415+
416+
$urlRewriteRowInDb2 = [
417+
UrlRewrite::REQUEST_PATH => $origRequestPath,
418+
UrlRewrite::TARGET_PATH => 'page-B/',
419+
UrlRewrite::REDIRECT_TYPE => 301,
420+
UrlRewrite::STORE_ID => 1,
421+
];
422+
423+
$this->connectionMock->expects($this->once())
424+
->method('fetchAll')
425+
->with($this->select)
426+
->will($this->returnValue([$urlRewriteRowInDb, $urlRewriteRowInDb2]));
427+
428+
$this->dataObjectHelper->expects($this->at(0))
429+
->method('populateWithArray')
430+
->with(['urlRewrite1'], $urlRewriteRowInDb2, \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
431+
->will($this->returnSelf());
432+
433+
$this->urlRewriteFactory->expects($this->at(0))
434+
->method('create')
435+
->will($this->returnValue(['urlRewrite1']));
436+
437+
$this->assertEquals(['urlRewrite1'], $this->storage->findOneByData($data));
438+
}
439+
381440
public function testReplace()
382441
{
383442
$urlFirst = $this->getMock('Magento\UrlRewrite\Service\V1\Data\UrlRewrite', [], [], '', false);

0 commit comments

Comments
 (0)