Kanboard-Prod/tests/units/Core/User/UserPropertyTest.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));
}
}