add more unit tests; re-enable random_int warning in functions.inc.php for old php versions etc etc
parent
e8acb609c2
commit
590c80f0bc
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file should only be loaded if you're :
|
||||||
|
* a. running PHP < 7.0, and
|
||||||
|
* b. have the php_crypt password hash configured, and
|
||||||
|
* c. have not loaded paragonie's random_compat library.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(function_exists('random_int')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
function random_int() { // someone might not be using php_crypt or ask for password generation, in which case random_int() won't be called
|
||||||
|
die(__FILE__ . " Postfixadmin security: Please install https://github.com/paragonie/random_compat OR enable the 'Phar' extension.");
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obviously replies on working DNS service
|
||||||
|
*/
|
||||||
|
class CheckDomainTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$this->assertEquals('', check_domain('example.com'));
|
||||||
|
$this->assertEquals('', check_domain('google.com'));
|
||||||
|
$this->assertRegExp('/ not discoverable in DNS/', check_domain('fishbeansblahblahblah' . uniqid() . '.com'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obviously relies on working DNS service etc.
|
||||||
|
*/
|
||||||
|
class CheckEmailTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$this->assertEquals('', check_email('test@example.com'));
|
||||||
|
$this->assertRegExp('/ not discoverable in DNS/', check_email('test@fishbeansblahblahblah' . uniqid() . '.com'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class CheckLanguageTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
global $supported_languages;
|
||||||
|
|
||||||
|
$this->assertNotEmpty($supported_languages);
|
||||||
|
|
||||||
|
$config = Config::getInstance();
|
||||||
|
Config::write('default_language', 'test');
|
||||||
|
|
||||||
|
unset($_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
||||||
|
|
||||||
|
$lang = check_language(false);
|
||||||
|
|
||||||
|
$this->assertEquals('test', $lang);
|
||||||
|
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en';
|
||||||
|
|
||||||
|
$lang = check_language(false);
|
||||||
|
$this->assertEquals('en', $lang);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCookie() {
|
||||||
|
global $supported_languages;
|
||||||
|
|
||||||
|
$this->assertNotEmpty($supported_languages);
|
||||||
|
|
||||||
|
|
||||||
|
$config = Config::getInstance();
|
||||||
|
Config::write('default_language', 'test');
|
||||||
|
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'foo';
|
||||||
|
|
||||||
|
$_COOKIE['lang'] = 'en';
|
||||||
|
|
||||||
|
$lang = check_language(false);
|
||||||
|
|
||||||
|
$this->assertEquals('en', $lang);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPost() {
|
||||||
|
global $supported_languages;
|
||||||
|
|
||||||
|
$this->assertNotEmpty($supported_languages);
|
||||||
|
|
||||||
|
|
||||||
|
$config = Config::getInstance();
|
||||||
|
Config::write('default_language', 'test');
|
||||||
|
|
||||||
|
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'foo';
|
||||||
|
|
||||||
|
$_POST['lang'] = 'en';
|
||||||
|
|
||||||
|
$lang = check_language(true);
|
||||||
|
|
||||||
|
$this->assertEquals('en', $lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class CheckOwnerTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$check = check_owner('random@example.com', 'test.com');
|
||||||
|
|
||||||
|
$this->assertFalse($check);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class DbBasicTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testInsertDeleteDomain() {
|
||||||
|
$domain = "test". uniqid() . '.com';
|
||||||
|
|
||||||
|
$username = 'testusername' . uniqid();
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
1,
|
||||||
|
db_insert(
|
||||||
|
'domain',
|
||||||
|
array('domain' => $domain, 'description' => '', 'transport' => '', 'password_expiry' => 99)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$this->assertEquals(1,
|
||||||
|
db_insert(
|
||||||
|
'mailbox',
|
||||||
|
array('username' => $username, 'password' => 'blah', 'name' => 'blah', 'maildir' => 'blah', 'local_part' => 'blah', 'domain' => $domain,)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(1,
|
||||||
|
db_update(
|
||||||
|
'mailbox',
|
||||||
|
'username',
|
||||||
|
$username,
|
||||||
|
array('name' => 'blah updated')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$ret = db_query("SELECT * FROM mailbox WHERE username = '$username'");
|
||||||
|
|
||||||
|
$this->assertEquals(1, $ret['rows']);
|
||||||
|
$data = db_assoc($ret['result']);
|
||||||
|
|
||||||
|
$this->assertEquals($data['name'], 'blah updated');
|
||||||
|
|
||||||
|
$this->assertEquals(1, db_delete('mailbox', 'username', $username));
|
||||||
|
$this->assertEquals(1, db_delete('domain', 'domain', $domain));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class ListAdminsTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$list= list_admins();
|
||||||
|
|
||||||
|
// may be empty, depending on db.
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($list));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class ListDomainsForAdminTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$this->assertEquals([], list_domains_for_admin('test@test.com'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class ListDomainsTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$domains = list_domains();
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($domains));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('common.php');
|
||||||
|
|
||||||
|
class RemoveFromArrayTest extends \PHPUnit\Framework\TestCase {
|
||||||
|
public function testBasic() {
|
||||||
|
$list = array('a','b','c','d');
|
||||||
|
|
||||||
|
list($found, $new) = remove_from_array($list, 'd');
|
||||||
|
$this->assertEquals(1, $found);
|
||||||
|
$this->assertEquals(array('a','b','c'), $new);
|
||||||
|
|
||||||
|
list($found, $new) = remove_from_array($list, 'a');
|
||||||
|
$this->assertEquals(1, $found);
|
||||||
|
$this->assertEquals(array(1 => 'b',2 => 'c',3=>'d'), $new);
|
||||||
|
|
||||||
|
list($found, $new) = remove_from_array($list, 'x');
|
||||||
|
$this->assertEquals(0, $found);
|
||||||
|
$this->assertEquals(array('a','b','c','d'), $new);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|
Loading…
Reference in New Issue