add unit tests for new user create mail

remotes/origin/fix-10825
Morris Jobke 11 years ago
parent 3b61f76ca0
commit 04e172c2ce
  1. 10
      settings/application.php
  2. 70
      tests/settings/controller/userscontrollertest.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();
});
}
}

@ -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());
}
}

Loading…
Cancel
Save