diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:17:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:17:31 +0000 |
commit | f66ab8dae2f3d0418759f81a3a64dc9517a62449 (patch) | |
tree | fbff2135e7013f196b891bbde54618eb050e4aaf /test/php/library/Director/Restriction | |
parent | Initial commit. (diff) | |
download | icingaweb2-module-director-f66ab8dae2f3d0418759f81a3a64dc9517a62449.tar.xz icingaweb2-module-director-f66ab8dae2f3d0418759f81a3a64dc9517a62449.zip |
Adding upstream version 1.10.2.upstream/1.10.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/php/library/Director/Restriction')
-rw-r--r-- | test/php/library/Director/Restriction/MatchingFilterTest.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/test/php/library/Director/Restriction/MatchingFilterTest.php b/test/php/library/Director/Restriction/MatchingFilterTest.php new file mode 100644 index 0000000..cd1b57e --- /dev/null +++ b/test/php/library/Director/Restriction/MatchingFilterTest.php @@ -0,0 +1,56 @@ +<?php + +namespace Tests\Icinga\Module\Director\Restriction; + +use Icinga\Module\Director\Restriction\MatchingFilter; +use Icinga\Module\Director\Test\BaseTestCase; +use Icinga\User; + +class MatchingFilterTest extends BaseTestCase +{ + public function testUserWithNoRestrictionHasNoFilter() + { + $user = new User('dummy'); + $this->assertEquals( + '', + (string) MatchingFilter::forUser($user, 'some/name', 'prop') + ); + } + + public function testSimpleRestrictionRendersCorrectly() + { + $this->assertEquals( + 'prop = a*', + (string) MatchingFilter::forPatterns(['a*'], 'prop') + ); + } + + public function testMultipleRestrictionsAreCombinedWithOr() + { + $this->assertEquals( + 'prop = a* | prop = *b', + (string) MatchingFilter::forPatterns(['a*', '*b'], 'prop') + ); + } + + public function testUserWithMultipleRestrictionsWorksFine() + { + $user = new User('dummy'); + $user->setRestrictions([ + 'some/name' => ['a*', '*b'], + 'some/thing' => ['else'] + ]); + $this->assertEquals( + 'prop = a* | prop = *b', + (string) MatchingFilter::forUser($user, 'some/name', 'prop') + ); + } + + public function testSingleRestrictionAllowsForPipes() + { + $this->assertEquals( + 'prop = a* | prop = *b', + (string) MatchingFilter::forPatterns(['a*|*b'], 'prop') + ); + } +} |