From 09acddb3b7c8d4adc647e79b16cf294adbf07725 Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Wed, 8 Apr 2015 10:18:42 +0200 Subject: [PATCH] Fix filter tests not taking whitespaces into account refs #8777 --- .../library/Icinga/Data/Filter/FilterTest.php | 55 ++++++++++++++++--- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/test/php/library/Icinga/Data/Filter/FilterTest.php b/test/php/library/Icinga/Data/Filter/FilterTest.php index e14decb20..8080d47f7 100644 --- a/test/php/library/Icinga/Data/Filter/FilterTest.php +++ b/test/php/library/Icinga/Data/Filter/FilterTest.php @@ -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)