triming settings values

This commit is contained in:
Amine Ben hammou
2018-10-09 19:18:41 +02:00
parent c3a97b7139
commit b632d74e5f
4 changed files with 38 additions and 5 deletions

View File

@ -2,6 +2,7 @@
namespace MailPoet\Models;
use MailPoet\Cron\CronTrigger;
use MailPoet\Util\Helpers;
if(!defined('ABSPATH')) exit;
@ -106,6 +107,7 @@ class Setting extends Model {
}
public static function setValue($key, $value) {
$value = Helpers::recursiveTrim($value);
$keys = explode('.', $key);
if(count($keys) === 1) {

View File

@ -87,4 +87,12 @@ class Helpers {
: null;
}
static function recursiveTrim($value) {
if(is_array($value))
return array_map([__CLASS__, 'recursiveTrim'], $value);
if(is_string($value))
return trim($value);
return $value;
}
}

View File

@ -64,7 +64,7 @@ class SettingTest extends \MailPoetTest {
expect($setting)->equals('default_value');
// setting a "known" key
$setting = Setting::setValue('known_key', 'actual_value');
$setting = Setting::setValue('known_key', ' actual_value ');
expect($setting)->equals(true);
// try to get a "known" key
@ -123,16 +123,16 @@ class SettingTest extends \MailPoetTest {
}
function testItCanGetAndSetValue() {
expect(Setting::setValue('test', '123'))->true();
expect(Setting::setValue('test', ' 123 '))->true();
expect(Setting::getValue('test'))->equals('123');
}
function testItCanGetAndSetNestedValue() {
expect(Setting::setValue('test.key', '123'))->true();
expect(Setting::setValue('test.key', ' 123 '))->true();
expect(Setting::getValue('test.key'))->equals('123');
expect(Setting::setValue('test.key.subkey', '123'))->true();
expect(Setting::setValue('test.key.subkey2', '456'))->true();
expect(Setting::setValue('test.key.subkey', ' 123'))->true();
expect(Setting::setValue('test.key.subkey2', '456 '))->true();
expect(Setting::getValue('test.key'))->notEmpty();
expect(Setting::getValue('test.key.subkey'))->equals('123');

View File

@ -34,4 +34,27 @@ class HelpersTest extends \MailPoetTest {
$json = json_encode(array('one' => 1, 'two' => 2));
expect(Helpers::isJson($json))->true();
}
function testItTrimStringsRecursively() {
expect(Helpers::recursiveTrim(' foo'))->equals('foo');
expect(Helpers::recursiveTrim('foo '))->equals('foo');
expect(Helpers::recursiveTrim(123))->equals(123);
expect(Helpers::recursiveTrim([
'name' => ' some text here ',
'list' => [
'string 1',
'string 2 ',
' string 3 '
],
'number' => 523
]))->equals([
'name' => 'some text here',
'list' => [
'string 1',
'string 2',
'string 3'
],
'number' => 523
]);
}
}