summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2014-12-16 17:54:30 +0100
committerMorris Jobke <hey@morrisjobke.de>2014-12-16 17:54:30 +0100
commit04e172c2ce9a43ea8884384b22efd5d07f027664 (patch)
tree98a8f27821428a04e8e742153c84beecdf9e1217
parent3b61f76ca0eb9ad9487fa2ab64dda97e51f9df57 (diff)
downloadnextcloud-server-04e172c2ce9a43ea8884384b22efd5d07f027664.tar.gz
nextcloud-server-04e172c2ce9a43ea8884384b22efd5d07f027664.zip
add unit tests for new user create mail
-rw-r--r--settings/application.php10
-rw-r--r--tests/settings/controller/userscontrollertest.php70
2 files changed, 78 insertions, 2 deletions
diff --git a/settings/application.php b/settings/application.php
index b088c2f937b..74d021c5bf3 100644
--- a/settings/application.php
+++ b/settings/application.php
@@ -84,11 +84,11 @@ class Application extends App {
$c->query('Config'),
$c->query('IsAdmin'),
$c->query('L10N'),
- $c->getServer()->getLogger(),
+ $c->query('Logger'),
$c->query('Defaults'),
$c->query('Mail'),
$c->query('DefaultMailAddress'),
- $c->getServer()->getURLGenerator()
+ $c->query('URLGenerator')
);
});
@@ -139,5 +139,11 @@ class Application extends App {
$container->registerService('DefaultMailAddress', function(IContainer $c) {
return Util::getDefaultEmailAddress('no-reply');
});
+ $container->registerService('Logger', function(IContainer $c) {
+ return $c->query('ServerContainer')->getLogger();
+ });
+ $container->registerService('URLGenerator', function(IContainer $c) {
+ return $c->query('ServerContainer')->getURLGenerator();
+ });
}
}
diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php
index 0ac6d3f0c01..207943c4c87 100644
--- a/tests/settings/controller/userscontrollertest.php
+++ b/tests/settings/controller/userscontrollertest.php
@@ -45,6 +45,16 @@ class UsersControllerTest extends \Test\TestCase {
->will($this->returnCallback(function($text, $parameters = array()) {
return vsprintf($text, $parameters);
}));
+ $this->container['Defaults'] = $this->getMockBuilder('\OC_Defaults')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['Mail'] = $this->getMockBuilder('\OC_Mail')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['DefaultMailAddress'] = 'no-reply@owncloud.com';
+ $this->container['Logger'] = $this->getMockBuilder('\OCP\ILogger')
+ ->disableOriginalConstructor()->getMock();
+ $this->container['URLGenerator'] = $this->getMockBuilder('\OCP\IURLGenerator')
+ ->disableOriginalConstructor()->getMock();
+
$this->usersController = $this->container['UsersController'];
}
@@ -473,4 +483,64 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertEquals($expectedResponse, $response);
}
+ /**
+ * test if an invalid mail result in a failure response
+ */
+ public function testCreateUnsuccessfulWithInvalidEMail() {
+ /**
+ * FIXME: Disabled due to missing DI on mail class.
+ * TODO: Re-enable when https://github.com/owncloud/core/pull/12085 is merged.
+ */
+ $this->markTestSkipped('Disable test until OC_Mail is rewritten.');
+
+ $this->container['Mail']
+ ->expects($this->once())
+ ->method('validateAddress')
+ ->will($this->returnValue(false));
+
+ $expectedResponse = new DataResponse(
+ array(
+ 'message' => 'Invalid mail address'
+ ),
+ Http::STATUS_UNPROCESSABLE_ENTITY
+ );
+ $response = $this->usersController->create('foo', 'password', array(), 'invalidMailAdress');
+ $this->assertEquals($expectedResponse, $response);
+ }
+
+ /**
+ * test if a valid mail result in a successful mail send
+ */
+ public function testCreateSuccessfulWithValidEMail() {
+ /**
+ * FIXME: Disabled due to missing DI on mail class.
+ * TODO: Re-enable when https://github.com/owncloud/core/pull/12085 is merged.
+ */
+ $this->markTestSkipped('Disable test until OC_Mail is rewritten.');
+
+ $this->container['Mail']
+ ->expects($this->once())
+ ->method('validateAddress')
+ ->will($this->returnValue(true));
+ $this->container['Mail']
+ ->expects($this->once())
+ ->method('send')
+ ->with(
+ $this->equalTo('validMail@Adre.ss'),
+ $this->equalTo('foo'),
+ $this->anything(),
+ $this->anything(),
+ $this->anything(),
+ $this->equalTo('no-reply@owncloud.com'),
+ $this->equalTo(1),
+ $this->anything()
+ );
+ $this->container['Logger']
+ ->expects($this->never())
+ ->method('error');
+
+ $response = $this->usersController->create('foo', 'password', array(), 'validMail@Adre.ss');
+ $this->assertEquals(Http::STATUS_CREATED, $response->getStatus());
+ }
+
}