diff --git a/composer.json b/composer.json index 4a5539e..1d05c79 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "require-dev": { - "phpunit/phpunit": "^5.5" + "phpunit/phpunit": "^5.5", + "christophwurst/nextcloud_testing": "^0.3.1" } } diff --git a/tests/integration/service/RegistrationServiceTest.php b/tests/integration/service/RegistrationServiceTest.php new file mode 100644 index 0000000..d9358d6 --- /dev/null +++ b/tests/integration/service/RegistrationServiceTest.php @@ -0,0 +1,146 @@ +mailService = $this->createMock(MailService::class); + $this->l10n = $this->createMock(IL10N::class); + $this->urlGenerator = $this->createMock(IURLGenerator::class); + $this->registrationMapper = $this->createMock(RegistrationMapper::class); + #$this->userManager = $this->createMock(IUserManager::class); + $this->userManager = \OC::$server->getUserManager(); + $this->config = $this->createMock(IConfig::class); + $this->groupManager = \OC::$server->getGroupManager(); + $this->defaults = $this->createMock(Defaults::class); + $this->random = $this->createMock(ISecureRandom::class); + $this->usersession = $this->createMock(IUserSession::class); + $this->request = $this->createMock(IRequest::class); + $this->logger = $this->createMock(ILogger::class); + $this->session = $this->createMock(ISession::class); + $this->tokenProvider = $this->createMock(IProvider::class); + $this->crypto = $this->createMock(ICrypto::class); + + $this->service = new RegistrationService( + 'registration', + $this->mailService, + $this->l10n, + $this->urlGenerator, + $this->registrationMapper, + $this->userManager, + $this->config, + $this->groupManager, + $this->defaults, + $this->random, + $this->usersession, + $this->request, + $this->logger, + $this->session, + $this->tokenProvider, + $this->crypto + ); + } + + public function testCreateAccountWebForm() { + $reg = new Registration(); + $reg->setEmail("asd@example.com"); + //$reg->setUsername("alice1"); + $reg->setDisplayname("Alice"); + //$reg->setPassword("asdf"); + $reg->setEmailConfirmed(true); + + /* + $map = [ + ["registration", 'registered_user_group', 'none'], + ["registration", 'admin_approval_required', 'no'] + ]; + */ + + $this->config->expects($this->at(0)) + ->method('getAppValue') + ->with("registration", 'registered_user_group', 'none') + ->willReturn('none'); + $this->config->expects($this->at(1)) + ->method('getAppValue') + ->with("registration", 'admin_approval_required', 'no') + ->willReturn('no'); + + + //$regroup = $this->config->getAppValue("registration", 'registered_user_group', 'none'); + //print_r($regroup); + //$this->assertEquals($this->config->getAppValue('registration', 'registered_user_group', 'none'), "none"); + + $form_input_username = 'alice1'; + $resulting_user = $this->service->createAccount($reg, $form_input_username, 'asdf'); + + $this->assertInstanceOf(IUser::class, $resulting_user); + $this->assertEquals($form_input_username, $resulting_user->getUID()); + $this->assertEquals('asd@example.com', $resulting_user->getEmailAddress()); + + + } +}