summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/User/ManagerTest.php33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/lib/User/ManagerTest.php b/tests/lib/User/ManagerTest.php
index d2e48ffa538..e0b6aadf2ac 100644
--- a/tests/lib/User/ManagerTest.php
+++ b/tests/lib/User/ManagerTest.php
@@ -668,4 +668,37 @@ class ManagerTest extends TestCase {
$manager->get('foo')->delete();
$this->assertFalse($manager->userExists('foo'));
}
+
+ public function testGetByEmail() {
+ $config = $this->getMockBuilder(IConfig::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $config
+ ->expects($this->at(0))
+ ->method('getUsersForUserValue')
+ ->with('settings', 'email', 'test@example.com')
+ ->will($this->returnValue(['uid1', 'uid99', 'uid2']));
+
+ $backend = $this->createMock(\Test\Util\User\Dummy::class);
+ $backend->expects($this->at(0))
+ ->method('userExists')
+ ->with($this->equalTo('uid1'))
+ ->will($this->returnValue(true));
+ $backend->expects($this->at(1))
+ ->method('userExists')
+ ->with($this->equalTo('uid99'))
+ ->will($this->returnValue(false));
+ $backend->expects($this->at(2))
+ ->method('userExists')
+ ->with($this->equalTo('uid2'))
+ ->will($this->returnValue(true));
+
+ $manager = new \OC\User\Manager($config);
+ $manager->registerBackend($backend);
+
+ $users = $manager->getByEmail('test@example.com');
+ $this->assertCount(2, $users);
+ $this->assertEquals('uid1', $users[0]->getUID());
+ $this->assertEquals('uid2', $users[1]->getUID());
+ }
}