Files
roundcubemail/tests/Framework/AddressbookTest.php
Michael Voříšek 736795326c Fix plugins composer.json format (#9405)
* Check plugins composer.json using CI

* Add "require-dev" and "config.allow-plugins" to plugins

* fix composer.json format - rm invalid email

* fix composer.json format - fix ext require

* fix composer.json format - fix plugin name

* tmp

* Revert "tmp"

* fix ext in ext install

* disable plugin in plugin install until Roundcube is fully autoloadable

* fix composer.json format - fix non-canonical license name

* Revert "Add "require-dev" and "config.allow-plugins" to plugins"

* no composer install for plugins needed

* Revert "fix ext in ext install"

* add standard "Test" suffix to phpunit files

* rm unneeded "suffix" in phpunit config

* simplify phpunit config

* fix default "xhtml" doctype in unit testing

* fix test_format_date test to not rely on other tests

* even more phpunit config simplify

* stricter/unify phpunit params for E2E tests

* run E2E tests on maximal php version too with lowest deps

* "repositories" in bundled plugins are useless as for root package only

* add/unify missing plugin test
2024-04-05 17:55:46 +02:00

93 lines
2.8 KiB
PHP

<?php
use PHPUnit\Framework\TestCase;
/**
* Test class to test rcube_addressbook class
*/
class Framework_Addressbook extends TestCase
{
/**
* Test for get_col_values() method
*/
public function test_get_col_values()
{
$data = ['email' => 'test@test.com', 'other' => 'test'];
$result = rcube_addressbook::get_col_values('email', $data, true);
$this->assertSame(['test@test.com'], $result);
$data = ['email:home' => 'test@test.com', 'other' => 'test'];
$result = rcube_addressbook::get_col_values('email', $data, true);
$this->assertSame(['test@test.com'], $result);
$data = ['email:home' => 'test@test.com', 'other' => 'test'];
$result = rcube_addressbook::get_col_values('email', $data, false);
$this->assertSame(['home' => ['test@test.com']], $result);
}
/**
* Test for compose_list_name() method
*/
public function test_compose_list_name()
{
$contact = [];
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('', $result);
$contact = ['email' => 'email@address.tld'];
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('email@address.tld', $result);
$contact = ['email' => 'email@address.tld', 'organization' => 'Org'];
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('Org', $result);
$contact['firstname'] = 'First';
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('First', $result);
$contact['surname'] = 'Last';
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('First Last', $result);
$contact['name'] = 'Name';
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('Name', $result);
unset($contact['name']);
$contact['prefix'] = 'Dr.';
$contact['suffix'] = 'Jr.';
$contact['middlename'] = 'M.';
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('Dr. First M. Last Jr.', $result);
// TODO: Test different modes
/*
rcube::get_instance()->config->set('addressbook_name_listing', 3);
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('Last, First M.', $result);
rcube::get_instance()->config->set('addressbook_name_listing', 2);
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('Last First M.', $result);
rcube::get_instance()->config->set('addressbook_name_listing', 1);
$result = rcube_addressbook::compose_list_name($contact);
$this->assertSame('First M. Last', $result);
*/
}
}