139 lines
3.7 KiB
PHP
139 lines
3.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__.'/../../Base.php';
|
|
|
|
use Kanboard\Core\Security\Role;
|
|
use Kanboard\Core\User\UserProperty;
|
|
use Kanboard\User\LdapUserProvider;
|
|
|
|
class UserPropertyTest extends Base
|
|
{
|
|
public function testGetProperties()
|
|
{
|
|
$user = new LdapUserProvider('ldapId', 'bob', 'Bob', '', Role::APP_USER, array());
|
|
|
|
$expected = array(
|
|
'username' => 'bob',
|
|
'name' => 'Bob',
|
|
'role' => Role::APP_USER,
|
|
'is_ldap_user' => 1,
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::getProperties($user));
|
|
|
|
$user = new LdapUserProvider('ldapId', 'bob', '', '', '', array());
|
|
|
|
$expected = array(
|
|
'username' => 'bob',
|
|
'is_ldap_user' => 1,
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::getProperties($user));
|
|
}
|
|
|
|
public function testFilterPropertiesDoNotOverrideExistingValue()
|
|
{
|
|
$profile = array(
|
|
'id' => 123,
|
|
'username' => 'bob',
|
|
'name' => null,
|
|
'email' => '',
|
|
'other_column' => 'myvalue',
|
|
'role' => Role::APP_ADMIN,
|
|
);
|
|
|
|
$properties = array(
|
|
'external_id' => '456',
|
|
'username' => 'bobby',
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
'role' => '',
|
|
);
|
|
|
|
$expected = array(
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties));
|
|
|
|
$profile = array(
|
|
'id' => 123,
|
|
'username' => 'bob',
|
|
'name' => null,
|
|
'email' => '',
|
|
'other_column' => 'myvalue',
|
|
'role' => Role::APP_ADMIN,
|
|
);
|
|
|
|
$properties = array(
|
|
'external_id' => '456',
|
|
'username' => 'bobby',
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
'role' => null,
|
|
);
|
|
|
|
$expected = array(
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties));
|
|
}
|
|
|
|
public function testFilterPropertiesOverrideExistingValueWhenNecessary()
|
|
{
|
|
$profile = array(
|
|
'id' => 123,
|
|
'username' => 'bob',
|
|
'name' => null,
|
|
'email' => '',
|
|
'other_column' => 'myvalue',
|
|
'role' => Role::APP_USER,
|
|
);
|
|
|
|
$properties = array(
|
|
'external_id' => '456',
|
|
'username' => 'bobby',
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
'role' => Role::APP_MANAGER,
|
|
);
|
|
|
|
$expected = array(
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
'role' => Role::APP_MANAGER,
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties));
|
|
}
|
|
|
|
public function testFilterPropertiesDoNotOverrideSameValue()
|
|
{
|
|
$profile = array(
|
|
'id' => 123,
|
|
'username' => 'bob',
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@example.org',
|
|
'other_column' => 'myvalue',
|
|
'role' => Role::APP_MANAGER,
|
|
);
|
|
|
|
$properties = array(
|
|
'external_id' => '456',
|
|
'username' => 'bobby',
|
|
'name' => 'Bobby',
|
|
'email' => 'admin@localhost',
|
|
'role' => Role::APP_MANAGER,
|
|
);
|
|
|
|
$expected = array(
|
|
'email' => 'admin@localhost',
|
|
);
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties));
|
|
}
|
|
}
|