diff --git a/test/php/library/Icinga/Data/Filter/FilterTest.php b/test/php/library/Icinga/Data/Filter/FilterTest.php index 3753debb1..2e8a2cff3 100644 --- a/test/php/library/Icinga/Data/Filter/FilterTest.php +++ b/test/php/library/Icinga/Data/Filter/FilterTest.php @@ -269,6 +269,20 @@ class FilterTest extends BaseTestCase ); } + /** + * Test whether special characters inside values are URL-encoded, but the other ones aren't + */ + public function testSpecialCharacterEscaping() + { + $this->assertSame( + Filter::matchAll( + Filter::expression('host', '!=', 'localhost'), + Filter::matchAny(Filter::where('service', 'ping4'), Filter::where('specialchars', '(|&!=)')) + )->toQueryString(), + 'host!=localhost&(service=ping4|specialchars=%28%7C%26%21%3D%29)' + ); + } + private function row($idx) { return $this->sampleData[$idx];