diff options
author | blizzz <blizzz@arthur-schiwon.de> | 2017-06-02 13:14:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-02 13:14:33 +0200 |
commit | 2e2d406bf5bf462b2c47320c08452de8016c1fb7 (patch) | |
tree | a6260836fd17165cfb11b891d76b78b6d7564aeb /tests | |
parent | 45305c762dd9902d90fbfcdd4bf1ec6346fb769f (diff) | |
parent | 999455c1aa8fc4a02a2fd778cd25fe3e4a1843ac (diff) | |
download | nextcloud-server-2e2d406bf5bf462b2c47320c08452de8016c1fb7.tar.gz nextcloud-server-2e2d406bf5bf462b2c47320c08452de8016c1fb7.zip |
Merge pull request #5213 from nextcloud/fix-change-hook
Trigger changeUser hook only on real changes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/User/UserTest.php | 96 |
1 files changed, 95 insertions, 1 deletions
diff --git a/tests/lib/User/UserTest.php b/tests/lib/User/UserTest.php index b53d07b0d4e..089f30a1fef 100644 --- a/tests/lib/User/UserTest.php +++ b/tests/lib/User/UserTest.php @@ -16,6 +16,7 @@ use OCP\IConfig; use OCP\IUser; use OCP\Notification\IManager as INotificationManager; use OCP\Notification\INotification; +use OCP\UserInterface; use Test\TestCase; /** @@ -614,7 +615,7 @@ class UserTest extends TestCase { public function testSetEMailAddress() { /** - * @var Backend | \PHPUnit_Framework_MockObject_MockObject $backend + * @var UserInterface | \PHPUnit_Framework_MockObject_MockObject $backend */ $backend = $this->createMock(\Test\Util\User\Dummy::class); @@ -649,6 +650,99 @@ class UserTest extends TestCase { $user->setEMailAddress('foo@bar.com'); } + public function testSetEMailAddressNoChange() { + /** + * @var UserInterface | \PHPUnit_Framework_MockObject_MockObject $backend + */ + $backend = $this->createMock(\Test\Util\User\Dummy::class); + + /** @var PublicEmitter|\PHPUnit_Framework_MockObject_MockObject $emitter */ + $emitter = $this->createMock(PublicEmitter::class); + $emitter->expects($this->never()) + ->method('emit'); + + $config = $this->createMock(IConfig::class); + $config->expects($this->any()) + ->method('getUserValue') + ->willReturn('foo@bar.com'); + $config->expects($this->once()) + ->method('setUserValue') + ->with( + 'foo', + 'settings', + 'email', + 'foo@bar.com' + ); + + $user = new User('foo', $backend, $emitter, $config); + $user->setEMailAddress('foo@bar.com'); + } + + public function testSetQuota() { + /** + * @var UserInterface | \PHPUnit_Framework_MockObject_MockObject $backend + */ + $backend = $this->createMock(\Test\Util\User\Dummy::class); + + $test = $this; + $hooksCalled = 0; + + /** + * @param IUser $user + * @param string $feature + * @param string $value + */ + $hook = function (IUser $user, $feature, $value) use ($test, &$hooksCalled) { + $hooksCalled++; + $test->assertEquals('quota', $feature); + $test->assertEquals('23 TB', $value); + }; + + $emitter = new PublicEmitter(); + $emitter->listen('\OC\User', 'changeUser', $hook); + + $config = $this->createMock(IConfig::class); + $config->expects($this->once()) + ->method('setUserValue') + ->with( + 'foo', + 'files', + 'quota', + '23 TB' + ); + + $user = new User('foo', $backend, $emitter, $config); + $user->setQuota('23 TB'); + } + + public function testSetQuotaAddressNoChange() { + /** + * @var UserInterface | \PHPUnit_Framework_MockObject_MockObject $backend + */ + $backend = $this->createMock(\Test\Util\User\Dummy::class); + + /** @var PublicEmitter|\PHPUnit_Framework_MockObject_MockObject $emitter */ + $emitter = $this->createMock(PublicEmitter::class); + $emitter->expects($this->never()) + ->method('emit'); + + $config = $this->createMock(IConfig::class); + $config->expects($this->any()) + ->method('getUserValue') + ->willReturn('23 TB'); + $config->expects($this->once()) + ->method('setUserValue') + ->with( + 'foo', + 'files', + 'quota', + '23 TB' + ); + + $user = new User('foo', $backend, $emitter, $config); + $user->setQuota('23 TB'); + } + public function testGetLastLogin() { /** * @var Backend | \PHPUnit_Framework_MockObject_MockObject $backend |