/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/users/tests/TestCase/Model/Table
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/users/tests/TestCase/Model/Table/UsersTableTest.php (9693B)
Users = TableRegistry::getTableLocator()->get('CakeDC/Users.Users');
$this->fullBaseBackup = Router::fullBaseUrl();
Router::fullBaseUrl('http://users.test');
TransportFactory::drop('test');
TransportFactory::setConfig('test', ['className' => 'Debug']);
Email::setConfig('default', [
'transport' => 'test',
'from' => 'cakedc@example.com',
]);
}
/**
* tearDown method
*
* @return void
*/
public function tearDown(): void
{
unset($this->Users);
Router::fullBaseUrl($this->fullBaseBackup);
Email::drop('default');
parent::tearDown();
}
/**
* Test register method
*
* @return void
*/
public function testValidateRegisterNoValidateEmail()
{
$user = [
'username' => 'testuser',
'email' => 'testuser@test.com',
'password' => 'password',
'password_confirm' => 'password',
'first_name' => 'test',
'last_name' => 'user',
'tos' => 1,
];
$result = $this->Users->register($this->Users->newEntity([]), $user, ['token_expiration' => 3600, 'validate_email' => 0]);
$this->assertTrue($result->active);
}
/**
* Test register method
*
* @return void
*/
public function testValidateRegisterEmptyUser()
{
$user = [];
$result = $this->Users->register($this->Users->newEntity([]), $user, ['token_expiration' => 3600, 'validate_email' => 1]);
$this->assertFalse($result);
}
/**
* Test register method
*
* @return void
*/
public function testValidateRegisterValidateEmail()
{
Router::connect('/users/validate-email/*', [
'plugin' => 'CakeDC/Users',
'controller' => 'Users',
'action' => 'validateEmail',
]);
$user = [
'username' => 'testuser',
'email' => 'testuser@test.com',
'password' => 'password',
'password_confirm' => 'password',
'first_name' => 'test',
'last_name' => 'user',
'tos' => 1,
];
$result = $this->Users->register($this->Users->newEntity([]), $user, ['token_expiration' => 3600, 'validate_email' => 1]);
$this->assertNotEmpty($result);
$this->assertFalse($result->active);
}
/**
* test
*/
public function testValidateRegisterTosRequired()
{
$user = [
'username' => 'testuser',
'email' => 'testuser@test.com',
'password' => 'password',
'password_confirm' => 'password',
'first_name' => 'test',
'last_name' => 'user',
];
$userEntity = $this->Users->newEntity([]);
$this->Users->register($userEntity, $user, ['token_expiration' => 3600, 'validate_email' => 1, 'use_tos' => 1]);
$this->assertEquals(['tos' => ['_required' => 'This field is required']], $userEntity->getErrors());
}
/**
* Test register method
* testValidateRegisterValidateEmail
*/
public function testValidateRegisterNoTosRequired()
{
Router::connect('/users/validate-email/*', [
'plugin' => 'CakeDC/Users',
'controller' => 'Users',
'action' => 'validateEmail',
]);
$user = [
'username' => 'testuser',
'email' => 'testuser@test.com',
'password' => 'password',
'password_confirm' => 'password',
'first_name' => 'test',
'last_name' => 'user',
];
$result = $this->Users->register($this->Users->newEntity([]), $user, ['token_expiration' => 3600, 'validate_email' => 1, 'use_tos' => 0]);
$this->assertNotEmpty($result);
}
/**
* Test ActivateUser method
*
* @return void
*/
public function testActivateUser()
{
$user = $this->Users->find()->where(['id' => '00000000-0000-0000-0000-000000000001'])->first();
$result = $this->Users->activateUser($user);
$this->assertTrue($result->active);
}
public function testSocialLogin()
{
$data = [
'provider' => SocialAccountsTable::PROVIDER_FACEBOOK,
'email' => 'user-2@test.com',
'id' => 'reference-2-1',
'link' => 'link',
'raw' => [
'id' => 'reference-2-1',
'token' => 'token',
'first_name' => 'User 2',
'gender' => 'female',
'verified' => 1,
'user_email' => 'user-2@test.com',
'link' => 'link',
],
];
$options = [
'use_email' => 1,
'validate_email' => 1,
'token_expiration' => 3600,
];
$result = $this->Users->socialLogin($data, $options);
$this->assertEquals('user-2@test.com', $result->email);
$this->assertTrue($result->active);
}
/**
* Test socialLogin
*/
public function testSocialLoginInactiveAccount()
{
$this->expectException(AccountNotActiveException::class);
$data = [
'provider' => SocialAccountsTable::PROVIDER_TWITTER,
'email' => 'hello@test.com',
'id' => 'reference-2-2',
'link' => 'link',
'raw' => [
'id' => 'reference-2-2',
'first_name' => 'User 2',
'gender' => 'female',
'verified' => 1,
'user_email' => 'hello@test.com',
],
];
$options = [
'use_email' => 1,
'validate_email' => 1,
'token_expiration' => 3600,
];
$result = $this->Users->socialLogin($data, $options);
$this->assertEquals('user-2@test.com', $result->email);
$this->assertFalse($result->active);
}
/**
* Test socialLogin
*/
public function testSocialLoginCreateNewAccountWithNoCredentials()
{
$this->expectException(\InvalidArgumentException::class);
$data = [
'provider' => SocialAccountsTable::PROVIDER_TWITTER,
'email' => 'user@test.com',
'id' => 'reference-not-existing',
'link' => 'link',
'raw' => [
'id' => 'reference-not-existing',
'first_name' => 'Not existing user',
'gender' => 'male',
'user_email' => 'user@test.com',
],
'credentials' => [],
'name' => '',
];
$options = [
'use_email' => 0,
'validate_email' => 1,
'token_expiration' => 3600,
];
$result = $this->Users->socialLogin($data, $options);
$this->assertFalse($result);
}
/**
* Test socialLogin
*
*/
public function testSocialLoginCreateNewAccount()
{
$data = [
'provider' => SocialAccountsTable::PROVIDER_TWITTER,
'email' => 'username@test.com',
'id' => 'no-existing-reference',
'link' => 'link',
'first_name' => 'First Name',
'last_name' => 'Last Name',
'raw' => [
'id' => 'no-existing-reference',
'first_name' => 'First Name',
'last_name' => 'Last Name',
'gender' => 'male',
'user_email' => 'user@test.com',
'twitter' => 'link',
],
'info' => [
'first_name' => 'First Name',
'last_name' => 'Last Name',
'urls' => ['twitter' => 'twitter'],
],
'validated' => true,
'credentials' => [
'token' => 'token',
'token_secret' => 'secret',
'token_expires' => '',
],
];
$options = [
'use_email' => 0,
'validate_email' => 0,
'token_expiration' => 3600,
];
$result = $this->Users->socialLogin($data, $options);
$this->assertNotEmpty($result);
$this->assertEquals('no-existing-reference', $result->social_accounts[0]->reference);
$this->assertEquals(1, count($result->social_accounts));
$this->assertEquals('username', $result->username);
$this->assertEquals('First Name', $result->first_name);
$this->assertEquals('Last Name', $result->last_name);
}
}