summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJan-Christoph Borchardt <hey@jancborchardt.net>2015-05-05 14:51:53 +0200
committerJan-Christoph Borchardt <hey@jancborchardt.net>2015-05-05 14:51:53 +0200
commit2aaafc134cf634c301b4258066012b3166247ef5 (patch)
treefd94da4742af882096b1fde2c7fb92aa21bb3ba8 /tests
parent767cf2774a5f357b3860034b3fe854d19f38bd15 (diff)
parentd36d14366b1d174cf3a2ea53b38f0955dc48ffd2 (diff)
downloadnextcloud-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.php70
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);
+ }
+
}