diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-11-05 18:35:50 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-11-07 13:15:55 +0100 |
commit | deec5a70a00ac930d67c439c99a1a3fbf09af9ac (patch) | |
tree | fc6c794c1fe4f262823ccd0c75a4508db29c06bf /apps/user_ldap/tests/LDAPTest.php | |
parent | 9ea65734162191b3222ea9f6e265380ea5175f3a (diff) | |
download | nextcloud-server-deec5a70a00ac930d67c439c99a1a3fbf09af9ac.tar.gz nextcloud-server-deec5a70a00ac930d67c439c99a1a3fbf09af9ac.zip |
avoid logging of "Partial search results returned: Sizelimit exceeded at"
LDAP servers respond with that even if a limit was passed with the
request. Having this statement logged causes a lot of confusion.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap/tests/LDAPTest.php')
-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'; |