diff options
author | Jan-Christoph Borchardt <hey@jancborchardt.net> | 2015-05-05 14:51:53 +0200 |
---|---|---|
committer | Jan-Christoph Borchardt <hey@jancborchardt.net> | 2015-05-05 14:51:53 +0200 |
commit | 2aaafc134cf634c301b4258066012b3166247ef5 (patch) | |
tree | fd94da4742af882096b1fde2c7fb92aa21bb3ba8 /tests | |
parent | 767cf2774a5f357b3860034b3fe854d19f38bd15 (diff) | |
parent | d36d14366b1d174cf3a2ea53b38f0955dc48ffd2 (diff) | |
download | nextcloud-server-2aaafc134cf634c301b4258066012b3166247ef5.tar.gz nextcloud-server-2aaafc134cf634c301b4258066012b3166247ef5.zip |
Merge pull request #16064 from owncloud/fix-empty-mail-address
Allow user to set an empty email address
Diffstat (limited to 'tests')
-rw-r--r-- | tests/settings/controller/userscontrollertest.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php index 25c935bef58..b9d45d786ec 100644 --- a/tests/settings/controller/userscontrollertest.php +++ b/tests/settings/controller/userscontrollertest.php @@ -1388,4 +1388,74 @@ class UsersControllerTest extends \Test\TestCase { $this->assertEquals($expectedResult, $result); } + public function setEmailAddressData() { + return [ + ['', true, false, true], + ['foobar@localhost', true, true, false], + ['foo@bar@localhost', false, false, false], + ]; + } + + /** + * @dataProvider setEmailAddressData + * + * @param string $mailAddress + * @param bool $isValid + * @param bool $expectsUpdate + * @param bool $expectsDelete + */ + public function testSetEmailAddress($mailAddress, $isValid, $expectsUpdate, $expectsDelete) { + $this->container['IsAdmin'] = true; + + $user = $this->getMockBuilder('\OC\User\User') + ->disableOriginalConstructor()->getMock(); + $user + ->expects($this->any()) + ->method('getUID') + ->will($this->returnValue('foo')); + $this->container['UserSession'] + ->expects($this->atLeastOnce()) + ->method('getUser') + ->will($this->returnValue($user)); + $this->container['Mailer'] + ->expects($this->any()) + ->method('validateMailAddress') + ->with($mailAddress) + ->willReturn($isValid); + + if ($isValid) { + $user->expects($this->atLeastOnce()) + ->method('canChangeDisplayName') + ->willReturn(true); + + $this->container['UserManager'] + ->expects($this->atLeastOnce()) + ->method('get') + ->with('foo') + ->will($this->returnValue($user)); + } + + $this->container['Config'] + ->expects(($expectsUpdate) ? $this->once() : $this->never()) + ->method('setUserValue') + ->with( + $this->equalTo($user->getUID()), + $this->equalTo('settings'), + $this->equalTo('email'), + $this->equalTo($mailAddress) + + ); + $this->container['Config'] + ->expects(($expectsDelete) ? $this->once() : $this->never()) + ->method('deleteUserValue') + ->with( + $this->equalTo($user->getUID()), + $this->equalTo('settings'), + $this->equalTo('email') + + ); + + $this->container['UsersController']->setMailAddress($user->getUID(), $mailAddress); + } + } |