Merge branch 'master' into feature/service-actions-9284
This commit is contained in:
commit
f4d25a71c8
|
@ -12,7 +12,6 @@ class FilterExpression extends Filter
|
|||
public function __construct($column, $sign, $expression)
|
||||
{
|
||||
$column = trim($column);
|
||||
$expression = is_array($expression) ? array_map('trim', $expression) : trim($expression);
|
||||
$this->column = $column;
|
||||
$this->sign = $sign;
|
||||
$this->expression = $expression;
|
||||
|
|
|
@ -231,10 +231,11 @@ class FilterEditor extends AbstractWidget
|
|||
if ($searchCol === null) {
|
||||
throw new Exception('Cannot search here');
|
||||
}
|
||||
$search = ltrim($search);
|
||||
$filter = $this->mergeRootExpression($filter, $searchCol, '=', "*$search*");
|
||||
} else {
|
||||
list($k, $v) = preg_split('/=/', $search);
|
||||
$filter = $this->mergeRootExpression($filter, $k, '=', $v);
|
||||
$filter = $this->mergeRootExpression($filter, trim($k), '=', ltrim($v));
|
||||
}
|
||||
} else {
|
||||
if (false === $this->resetSearchColumns($filter)) {
|
||||
|
@ -242,6 +243,7 @@ class FilterEditor extends AbstractWidget
|
|||
}
|
||||
|
||||
$filters = array();
|
||||
$search = ltrim($search);
|
||||
foreach ($this->searchColumns as $searchColumn) {
|
||||
$filters[] = Filter::expression($searchColumn, '=', "*$search*");
|
||||
}
|
||||
|
|
|
@ -68,17 +68,8 @@ if ($object->getType() === $object::TYPE_HOST) {
|
|||
<?php if ($object->check_execution_time): ?>
|
||||
<tr>
|
||||
<th><?= $this->translate('Check execution time') ?></th>
|
||||
<td><?php
|
||||
$matches = array();
|
||||
if (preg_match(
|
||||
'/(?<!.)([0-9]+\.[0-9]{4,})(?!.)/ms',
|
||||
$object->check_execution_time,
|
||||
$matches
|
||||
)) {
|
||||
printf('%.3f', (float) $matches[1]);
|
||||
} else {
|
||||
echo $object->check_execution_time;
|
||||
}
|
||||
<td><?= $object->check_execution_time === null
|
||||
? '-' : round((float) $object->check_execution_time, 3)
|
||||
?>s</td>
|
||||
</tr>
|
||||
<?php endif ?>
|
||||
|
|
|
@ -198,16 +198,53 @@ class FilterTest extends BaseTestCase
|
|||
$this->assertNotEquals((string) $c, (string) $d);
|
||||
}
|
||||
|
||||
public function testLeadingAndTrailingWhitespacesSanitizing()
|
||||
public function testLeadingAndTrailingWhitespaces()
|
||||
{
|
||||
$columnHasWhitespaces = Filter::where(' host ', 'localhost');
|
||||
$expressionHasWhitespaces = Filter::where('host', ' localhost ');
|
||||
$bothHaveWhitespaces = Filter::fromQueryString(' host = localhost ');
|
||||
$withArray = Filter::where(' host ', array(' no match ', ' localhost '));
|
||||
$this->assertTrue($columnHasWhitespaces->matches($this->sampleData[0]));
|
||||
$this->assertTrue($expressionHasWhitespaces->matches($this->sampleData[0]));
|
||||
$this->assertTrue($bothHaveWhitespaces->matches($this->sampleData[0]));
|
||||
$this->assertTrue($withArray->matches($this->sampleData[0]));
|
||||
$columnWithWhitespaces = Filter::where(' host ', 'localhost');
|
||||
$this->assertTrue($columnWithWhitespaces->matches((object) array(
|
||||
'host' => 'localhost'
|
||||
)),
|
||||
'Filter doesn\'t remove leading and trailing whitespaces from columns'
|
||||
);
|
||||
$expressionWithLeadingWhitespaces = Filter::where('host', ' localhost');
|
||||
$this->assertTrue($expressionWithLeadingWhitespaces->matches((object) array(
|
||||
'host' => ' localhost'
|
||||
)),
|
||||
'Filter doesn\'t take leading whitespaces of expressions into account'
|
||||
);
|
||||
$this->assertFalse($expressionWithLeadingWhitespaces->matches((object) array(
|
||||
'host' => ' localhost '
|
||||
)),
|
||||
'Filter doesn\'t take trailing whitespaces of expressions into account'
|
||||
);
|
||||
$expressionWithTrailingWhitespaces = Filter::where('host', 'localhost ');
|
||||
$this->assertTrue($expressionWithTrailingWhitespaces->matches((object) array(
|
||||
'host' => 'localhost '
|
||||
)),
|
||||
'Filter doesn\'t take trailing whitespaces of expressions into account'
|
||||
);
|
||||
$this->assertFalse($expressionWithTrailingWhitespaces->matches((object) array(
|
||||
'host' => ' localhost '
|
||||
)),
|
||||
'Filter doesn\'t take leading whitespaces of expressions into account'
|
||||
);
|
||||
$expressionWithLeadingAndTrailingWhitespaces = Filter::where('host', ' localhost ');
|
||||
$this->assertTrue($expressionWithLeadingAndTrailingWhitespaces->matches((object) array(
|
||||
'host' => ' localhost '
|
||||
)),
|
||||
'Filter doesn\'t take leading and trailing whitespaces of expressions into account'
|
||||
);
|
||||
$this->assertFalse($expressionWithLeadingAndTrailingWhitespaces->matches((object) array(
|
||||
'host' => ' localhost '
|
||||
)),
|
||||
'Filter doesn\'t take leading and trailing whitespaces of expressions into account'
|
||||
);
|
||||
$queryStringWithWhitespaces = Filter::fromQueryString(' host = localhost ');
|
||||
$this->assertTrue($queryStringWithWhitespaces->matches((object) array(
|
||||
'host' => ' localhost '
|
||||
)),
|
||||
'Filter doesn\'t take leading and trailing whitespaces of expressions in query strings into account'
|
||||
);
|
||||
}
|
||||
|
||||
private function row($idx)
|
||||
|
|
Loading…
Reference in New Issue