Skip to content

Commit 272c73b

Browse files
Indrani SonawaneIndrani Sonawane
authored andcommitted
Merge remote-tracking branch '38539/fix-38538' into comprs_v2
2 parents 5a2037c + b890117 commit 272c73b

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

app/code/Magento/Config/Model/Config/Backend/Baseurl.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
*/
66
namespace Magento\Config\Model\Config\Backend;
77

8-
use Magento\Framework\Validator\Url as UrlValidator;
98
use Magento\Framework\App\ObjectManager;
9+
use Magento\Framework\Validator\Url as UrlValidator;
1010

1111
/**
1212
* @api
@@ -56,7 +56,7 @@ public function __construct(
5656
*/
5757
public function beforeSave()
5858
{
59-
$value = $this->getValue();
59+
$value = strtolower($this->getValue());
6060
try {
6161
if (!$this->_validateUnsecure($value) && !$this->_validateSecure($value)) {
6262
$this->_validateFullyQualifiedUrl($value);
@@ -68,6 +68,7 @@ public function beforeSave()
6868
$error = new \Magento\Framework\Exception\LocalizedException($msg, $e);
6969
throw $error;
7070
}
71+
$this->setValue($value);
7172
}
7273

7374
/**
@@ -232,6 +233,7 @@ public function afterSave()
232233
* Get URL Validator
233234
*
234235
* @deprecated 100.1.12
236+
* @see Nothing
235237
* @return UrlValidator
236238
*/
237239
private function getUrlValidator()

app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,17 @@
1717
use Magento\Framework\Registry;
1818
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1919
use Magento\Framework\View\Asset\MergeService;
20+
use Magento\Framework\Validator\Url as UrlValidator;
21+
use Magento\Framework\App\ObjectManager as AppObjectManager;
22+
use Magento\Framework\ObjectManagerInterface;
2023
use Magento\Store\Model\Store;
2124
use PHPUnit\Framework\TestCase;
2225

26+
/**
27+
* Test Class BaseurlTest
28+
*
29+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
30+
*/
2331
class BaseurlTest extends TestCase
2432
{
2533
public function testSaveMergedJsCssMustBeCleaned()
@@ -61,4 +69,51 @@ public function testSaveMergedJsCssMustBeCleaned()
6169
$model->setValue('http://example.com/')->setPath(Store::XML_PATH_UNSECURE_BASE_URL);
6270
$model->afterSave();
6371
}
72+
73+
/**
74+
* Test beforeSave method to ensure URL is converted to lower case.
75+
*
76+
* @dataProvider beforeSaveDataProvider
77+
* @param string $value
78+
* @param string $expectedValue
79+
* @return void
80+
*/
81+
public function testBeforeSaveConvertLowerCase(string $value, string $expectedValue): void
82+
{
83+
$model = (new ObjectManager($this))->getObject(Baseurl::class);
84+
85+
$urlValidatorMock = $this->getMockBuilder(UrlValidator::class)
86+
->disableOriginalConstructor()
87+
->getMock();
88+
89+
$objectManagerInterface = $this->createMock(ObjectManagerInterface::class);
90+
$objectManagerInterface->expects($this->exactly(1))
91+
->method('get')
92+
->with(UrlValidator::class)
93+
->willReturn($urlValidatorMock);
94+
AppObjectManager::setInstance($objectManagerInterface);
95+
96+
$urlValidatorMock->expects($this->once())
97+
->method('isValid')
98+
->with($expectedValue, ['http', 'https'])
99+
->willReturn(true);
100+
101+
$model->setValue($value);
102+
$model->beforeSave();
103+
$this->assertEquals($expectedValue, $model->getValue());
104+
}
105+
106+
/**
107+
* Data provider for testBeforeSaveConvertLowerCase.
108+
*
109+
* @return array
110+
*/
111+
public static function beforeSaveDataProvider(): array
112+
{
113+
return [
114+
['https://Example1.com/', 'https://example1.com/'],
115+
['https://EXAMPLE2.COM/', 'https://example2.com/'],
116+
['HTtpS://ExamPLe3.COM/', 'https://example3.com/'],
117+
];
118+
}
64119
}

0 commit comments

Comments
 (0)