|
@@ -48,6 +48,7 @@ use OCA\Provisioning_API\FederatedShareProviderFactory;
|
|
|
use OCA\Settings\Mailer\NewUserMailHelper;
|
|
|
use OCP\App\IAppManager;
|
|
|
use OCP\AppFramework\Http\DataResponse;
|
|
|
+use OCP\EventDispatcher\IEventDispatcher;
|
|
|
use OCP\IConfig;
|
|
|
use OCP\IGroup;
|
|
|
use OCP\IL10N;
|
|
@@ -58,6 +59,7 @@ use OCP\IUserManager;
|
|
|
use OCP\IUserSession;
|
|
|
use OCP\L10N\IFactory;
|
|
|
use OCP\Mail\IEMailTemplate;
|
|
|
+use OCP\Security\Events\GenerateSecurePasswordEvent;
|
|
|
use OCP\Security\ISecureRandom;
|
|
|
use OCP\UserInterface;
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
@@ -94,6 +96,8 @@ class UsersControllerTest extends TestCase {
|
|
|
private $secureRandom;
|
|
|
/** @var RemoteWipe|MockObject */
|
|
|
private $remoteWipe;
|
|
|
+ /** @var IEventDispatcher */
|
|
|
+ private $eventDispatcher;
|
|
|
|
|
|
protected function setUp(): void {
|
|
|
parent::setUp();
|
|
@@ -111,6 +115,7 @@ class UsersControllerTest extends TestCase {
|
|
|
$this->federatedShareProviderFactory = $this->createMock(FederatedShareProviderFactory::class);
|
|
|
$this->secureRandom = $this->createMock(ISecureRandom::class);
|
|
|
$this->remoteWipe = $this->createMock(RemoteWipe::class);
|
|
|
+ $this->eventDispatcher = $this->createMock(IEventDispatcher::class);
|
|
|
|
|
|
$this->api = $this->getMockBuilder(UsersController::class)
|
|
|
->setConstructorArgs([
|
|
@@ -128,6 +133,7 @@ class UsersControllerTest extends TestCase {
|
|
|
$this->federatedShareProviderFactory,
|
|
|
$this->secureRandom,
|
|
|
$this->remoteWipe,
|
|
|
+ $this->eventDispatcher,
|
|
|
])
|
|
|
->setMethods(['fillStorageInfo'])
|
|
|
->getMock();
|
|
@@ -389,7 +395,8 @@ class UsersControllerTest extends TestCase {
|
|
|
$this->newUserMailHelper,
|
|
|
$this->federatedShareProviderFactory,
|
|
|
$this->secureRandom,
|
|
|
- $this->remoteWipe
|
|
|
+ $this->remoteWipe,
|
|
|
+ $this->eventDispatcher,
|
|
|
])
|
|
|
->setMethods(['editUser'])
|
|
|
->getMock();
|
|
@@ -486,6 +493,46 @@ class UsersControllerTest extends TestCase {
|
|
|
));
|
|
|
}
|
|
|
|
|
|
+ public function testAddUserSuccessfulGeneratePassword() {
|
|
|
+ $this->userManager
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('userExists')
|
|
|
+ ->with('NewUser')
|
|
|
+ ->willReturn(false);
|
|
|
+ $this->userManager
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('createUser');
|
|
|
+ $this->logger
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('info')
|
|
|
+ ->with('Successful addUser call with userid: NewUser', ['app' => 'ocs_api']);
|
|
|
+ $loggedInUser = $this->getMockBuilder(IUser::class)
|
|
|
+ ->disableOriginalConstructor()
|
|
|
+ ->getMock();
|
|
|
+ $loggedInUser
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('getUID')
|
|
|
+ ->willReturn('adminUser');
|
|
|
+ $this->userSession
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('getUser')
|
|
|
+ ->willReturn($loggedInUser);
|
|
|
+ $this->groupManager
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('isAdmin')
|
|
|
+ ->with('adminUser')
|
|
|
+ ->willReturn(true);
|
|
|
+ $this->eventDispatcher
|
|
|
+ ->expects($this->once())
|
|
|
+ ->method('dispatchTyped')
|
|
|
+ ->with(new GenerateSecurePasswordEvent());
|
|
|
+
|
|
|
+ $this->assertTrue(key_exists(
|
|
|
+ 'id',
|
|
|
+ $this->api->addUser('NewUser', '', '', 'foo@bar')->getData()
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public function testAddUserFailedToGenerateUserID() {
|
|
|
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
|
|
@@ -3126,6 +3173,7 @@ class UsersControllerTest extends TestCase {
|
|
|
$this->federatedShareProviderFactory,
|
|
|
$this->secureRandom,
|
|
|
$this->remoteWipe,
|
|
|
+ $this->eventDispatcher,
|
|
|
])
|
|
|
->setMethods(['getUserData'])
|
|
|
->getMock();
|
|
@@ -3190,6 +3238,7 @@ class UsersControllerTest extends TestCase {
|
|
|
$this->federatedShareProviderFactory,
|
|
|
$this->secureRandom,
|
|
|
$this->remoteWipe,
|
|
|
+ $this->eventDispatcher,
|
|
|
])
|
|
|
->setMethods(['getUserData'])
|
|
|
->getMock();
|