From: Morris Jobke Date: Tue, 16 Dec 2014 16:54:30 +0000 (+0100) Subject: add unit tests for new user create mail X-Git-Tag: v8.0.0alpha1~59^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=04e172c2ce9a43ea8884384b22efd5d07f027664;p=nextcloud-server.git add unit tests for new user create mail --- 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()); + } + }