Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Controller/UsersTest.php
Show All 23 Lines | public function setUp(): void | ||||
parent::setUp(); | parent::setUp(); | ||||
$this->deleteTestUser('jane@kolabnow.com'); | $this->deleteTestUser('jane@kolabnow.com'); | ||||
$this->deleteTestUser('UsersControllerTest1@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest1@userscontroller.com'); | ||||
$this->deleteTestUser('UsersControllerTest2@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest2@userscontroller.com'); | ||||
$this->deleteTestUser('UsersControllerTest3@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest3@userscontroller.com'); | ||||
$this->deleteTestUser('UserEntitlement2A@UserEntitlement.com'); | $this->deleteTestUser('UserEntitlement2A@UserEntitlement.com'); | ||||
$this->deleteTestUser('john2.doe2@kolab.org'); | $this->deleteTestUser('john2.doe2@kolab.org'); | ||||
$this->deleteTestUser('deleted@kolab.org'); | |||||
$this->deleteTestUser('deleted@kolabnow.com'); | |||||
$this->deleteTestDomain('userscontroller.com'); | $this->deleteTestDomain('userscontroller.com'); | ||||
$user = $this->getTestUser('john@kolab.org'); | $user = $this->getTestUser('john@kolab.org'); | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$wallet->discount()->dissociate(); | $wallet->discount()->dissociate(); | ||||
$wallet->settings()->whereIn('key', ['mollie_id', 'stripe_id'])->delete(); | $wallet->settings()->whereIn('key', ['mollie_id', 'stripe_id'])->delete(); | ||||
$wallet->save(); | $wallet->save(); | ||||
$user->status |= User::STATUS_IMAP_READY; | $user->status |= User::STATUS_IMAP_READY; | ||||
$user->save(); | $user->save(); | ||||
} | } | ||||
/** | /** | ||||
* {@inheritDoc} | * {@inheritDoc} | ||||
*/ | */ | ||||
public function tearDown(): void | public function tearDown(): void | ||||
{ | { | ||||
$this->deleteTestUser('jane@kolabnow.com'); | $this->deleteTestUser('jane@kolabnow.com'); | ||||
$this->deleteTestUser('UsersControllerTest1@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest1@userscontroller.com'); | ||||
$this->deleteTestUser('UsersControllerTest2@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest2@userscontroller.com'); | ||||
$this->deleteTestUser('UsersControllerTest3@userscontroller.com'); | $this->deleteTestUser('UsersControllerTest3@userscontroller.com'); | ||||
$this->deleteTestUser('UserEntitlement2A@UserEntitlement.com'); | $this->deleteTestUser('UserEntitlement2A@UserEntitlement.com'); | ||||
$this->deleteTestUser('john2.doe2@kolab.org'); | $this->deleteTestUser('john2.doe2@kolab.org'); | ||||
$this->deleteTestUser('deleted@kolab.org'); | |||||
$this->deleteTestUser('deleted@kolabnow.com'); | |||||
$this->deleteTestDomain('userscontroller.com'); | $this->deleteTestDomain('userscontroller.com'); | ||||
$user = $this->getTestUser('john@kolab.org'); | $user = $this->getTestUser('john@kolab.org'); | ||||
$wallet = $user->wallets()->first(); | $wallet = $user->wallets()->first(); | ||||
$wallet->discount()->dissociate(); | $wallet->discount()->dissociate(); | ||||
$wallet->settings()->whereIn('key', ['mollie_id', 'stripe_id'])->delete(); | $wallet->settings()->whereIn('key', ['mollie_id', 'stripe_id'])->delete(); | ||||
$wallet->save(); | $wallet->save(); | ||||
$user->status |= User::STATUS_IMAP_READY; | $user->status |= User::STATUS_IMAP_READY; | ||||
▲ Show 20 Lines • Show All 941 Lines • ▼ Show 20 Lines | class UsersTest extends TestCase | ||||
*/ | */ | ||||
public function testValidateEmail($alias, $user, $is_alias, $expected_result): void | public function testValidateEmail($alias, $user, $is_alias, $expected_result): void | ||||
{ | { | ||||
$args = [$alias, $user, $is_alias]; | $args = [$alias, $user, $is_alias]; | ||||
$result = $this->invokeMethod(new UsersController(), 'validateEmail', $args); | $result = $this->invokeMethod(new UsersController(), 'validateEmail', $args); | ||||
$this->assertSame($expected_result, $result); | $this->assertSame($expected_result, $result); | ||||
} | } | ||||
/** | |||||
* User email/alias validation - more cases. | |||||
* | |||||
* Note: Technically these include unit tests, but let's keep it here for now. | |||||
* FIXME: Shall we do a http request for each case? | |||||
*/ | |||||
public function testValidateEmail2(): void | |||||
{ | |||||
Queue::fake(); | |||||
$john = $this->getTestUser('john@kolab.org'); | |||||
$jack = $this->getTestUser('jack@kolab.org'); | |||||
$user = $this->getTestUser('UsersControllerTest1@userscontroller.com'); | |||||
$deleted_priv = $this->getTestUser('deleted@kolab.org'); | |||||
$deleted_priv->setAliases(['deleted-alias@kolab.org']); | |||||
$deleted_priv->delete(); | |||||
$deleted_pub = $this->getTestUser('deleted@kolabnow.com'); | |||||
$deleted_pub->setAliases(['deleted-alias@kolabnow.com']); | |||||
$deleted_pub->delete(); | |||||
// An alias that was a user email before is allowed, but only for custom domains | |||||
$result = UsersController::validateEmail('deleted@kolab.org', $john, true); | |||||
$this->assertSame(null, $result); | |||||
$result = UsersController::validateEmail('deleted-alias@kolab.org', $john, true); | |||||
$this->assertSame(null, $result); | |||||
$result = UsersController::validateEmail('deleted@kolabnow.com', $john, true); | |||||
$this->assertSame('The specified alias is not available.', $result); | |||||
$result = UsersController::validateEmail('deleted-alias@kolabnow.com', $john, true); | |||||
$this->assertSame('The specified alias is not available.', $result); | |||||
} | |||||
} | } |