diff options
Diffstat (limited to 'apps/user_ldap/tests')
-rw-r--r-- | apps/user_ldap/tests/LDAPTest.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/apps/user_ldap/tests/LDAPTest.php b/apps/user_ldap/tests/LDAPTest.php index 8e181741b50..3e754dbd272 100644 --- a/apps/user_ldap/tests/LDAPTest.php +++ b/apps/user_ldap/tests/LDAPTest.php @@ -37,6 +37,46 @@ class LDAPTest extends TestCase { ->getMock(); } + public function errorProvider() { + return [ + [ + 'ldap_search(): Partial search results returned: Sizelimit exceeded at /srv/http/nextcloud/master/apps/user_ldap/lib/LDAP.php#292', + false + ], + [ + 'Some other error', true + ] + ]; + } + + /** + * @param string $errorMessage + * @param bool $passThrough + * @dataProvider errorProvider + */ + public function testSearchWithErrorHandler(string $errorMessage, bool $passThrough) { + + $wasErrorHandlerCalled = false; + $errorHandler = function($number, $message, $file, $line) use (&$wasErrorHandlerCalled) { + $wasErrorHandlerCalled = true; + }; + + set_error_handler($errorHandler); + + $this->ldap + ->expects($this->once()) + ->method('invokeLDAPMethod') + ->with('search', $this->anything(), $this->anything(), $this->anything(), $this->anything(), $this->anything()) + ->willReturnCallback(function() use($errorMessage) { + trigger_error($errorMessage); + }); + + $this->ldap->search('pseudo-resource', 'base', 'filter', []); + $this->assertSame($wasErrorHandlerCalled, $passThrough); + + restore_error_handler(); + } + public function testModReplace() { $link = $this->createMock(LDAP::class); $userDN = 'CN=user'; |