Util changes
This commit is contained in:
@@ -757,4 +757,44 @@ class Util
|
||||
|
||||
return $sanitized;
|
||||
}
|
||||
|
||||
public static function urlAddParam($url, $paramName, $paramValue)
|
||||
{
|
||||
$urlQuery = parse_url($url, \PHP_URL_QUERY);
|
||||
|
||||
if (!$urlQuery) {
|
||||
$params = [
|
||||
$paramName => $paramValue
|
||||
];
|
||||
|
||||
return $url . '/?' . http_build_query($params);
|
||||
}
|
||||
|
||||
parse_str($urlQuery, $params);
|
||||
|
||||
if (!isset($params[$paramName]) || $params[$paramName] != $paramValue) {
|
||||
$params[$paramName] = $paramValue;
|
||||
|
||||
return str_replace($urlQuery, http_build_query($params), $url);
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public static function urlRemoveParam($url, $paramName)
|
||||
{
|
||||
$urlQuery = parse_url($url, \PHP_URL_QUERY);
|
||||
|
||||
if ($urlQuery) {
|
||||
parse_str($urlQuery, $params);
|
||||
|
||||
if (isset($params[$paramName])) {
|
||||
unset($params[$paramName]);
|
||||
|
||||
return str_replace($urlQuery, http_build_query($params), $url);
|
||||
}
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1586,11 +1586,11 @@ class UtilTest extends \PHPUnit\Framework\TestCase
|
||||
public function htmlList()
|
||||
{
|
||||
return [
|
||||
['Test<script>alert("test")</script>', 'Test<script>alert("test")</script>'],
|
||||
['Test<script>alert("test")</script>', 'Test<script>alert("test")</script>'],
|
||||
['<p>Test</p>', '<p>Test</p>'],
|
||||
['<p><b>Test</b></p>', '<p><b>Test</b></p>'],
|
||||
['<pre>Test</pre>', '<pre>Test</pre>'],
|
||||
['<p><b>Test</b> <a href="#">test link</a></p>', '<p><b>Test</b> <a href="#">test link</a></p>'],
|
||||
['<p><b>Test</b> <a href="#">test link</a></p>', '<p><b>Test</b> <a href="#">test link</a></p>'],
|
||||
['<strong>Test</strong>', '<strong>Test</strong>'],
|
||||
];
|
||||
}
|
||||
@@ -1598,8 +1598,48 @@ class UtilTest extends \PHPUnit\Framework\TestCase
|
||||
/**
|
||||
* @dataProvider htmlList
|
||||
*/
|
||||
public function testSanitizeHtml($html, $expectedResult)
|
||||
public function testSanitizeHtml($expectedResult, $html)
|
||||
{
|
||||
$this->assertEquals($expectedResult, Util::sanitizeHtml($html));
|
||||
}
|
||||
|
||||
public function urlAddParamList()
|
||||
{
|
||||
return [
|
||||
['https://test.link/?param1=1111', 'https://test.link', 'param1', '1111'],
|
||||
['https://test.link/?param1=1111¶m2=2222', 'https://test.link/?param1=1111', 'param2', '2222'],
|
||||
['https://test.link/?param2=2222¶m1=1111', 'https://test.link/?param2=2222', 'param1', '1111'],
|
||||
['https://test.link/?param1=1111¶m2=2222', 'https://test.link/?param1=1111¶m2=2222', 'param1', '1111'],
|
||||
['https://test.link/?param1=3333¶m2=2222', 'https://test.link/?param1=1111¶m2=2222', 'param1', '3333'],
|
||||
['https://test.link/?param1=1111¶m2=2222&new-param3=85%7BXjKbrNe%40%5D8', 'https://test.link/?param1=1111¶m2=2222', 'new-param3', '85{XjKbrNe@]8'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider urlAddParamList
|
||||
*/
|
||||
public function testUrlAddParam($expectedResult, $url, $paramName, $paramValue)
|
||||
{
|
||||
$this->assertEquals($expectedResult, Util::urlAddParam($url, $paramName, $paramValue));
|
||||
}
|
||||
|
||||
public function urlRemoveParamList()
|
||||
{
|
||||
return [
|
||||
['https://test.link', 'https://test.link', 'param1'],
|
||||
['https://test.link/', 'https://test.link/', 'param1'],
|
||||
['https://test.link/?param1=1111', 'https://test.link/?param1=1111', 'param2'],
|
||||
['https://test.link/?param2=2222', 'https://test.link/?param1=1111¶m2=2222', 'param1'],
|
||||
['https://test.link/?param1=1111', 'https://test.link/?param1=1111¶m2=2222', 'param2'],
|
||||
['https://test.link/?param1=1111¶m2=2222', 'https://test.link/?param1=1111¶m2=2222&new-param3=85%7BXjKbrNe%40%5D8', 'new-param3'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider urlRemoveParamList
|
||||
*/
|
||||
public function testUrlRemoveParam($expectedResult, $url, $paramName)
|
||||
{
|
||||
$this->assertEquals($expectedResult, Util::urlRemoveParam($url, $paramName));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user