123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?php
- class MailboxHandlerTest extends \PHPUnit\Framework\TestCase {
- public function tearDown() : void {
- db_query('DELETE FROM mailbox');
- db_query('DELETE FROM alias');
- db_query('DELETE FROM domain_admins');
- db_query('DELETE FROM domain');
- parent::tearDown();
- }
- public function setUp() : void {
- global $CONF;
- parent::setUp();
- $CONF['quota'] = 'YES';
- }
- public function testBasic() {
- $x = new MailboxHandler();
- $list = $x->getList("");
- $this->assertTrue($list);
- $results = $x->result();
- $this->assertEmpty($results);
- }
- public function testAddingDataEtc() {
- // Fake being an admin.
- $_SESSION = [
- 'sessid' => [
- 'roles' => ['global-admin']
- ]
- ];
- // Add example.com
- $dh = new DomainHandler(1, 'admin', true);
- $dh->init('example.com');
- $ret = $dh->set(
- [
- 'domain' => 'example.com',
- 'description' => 'test domain',
- 'aliases' => 11,
- 'mailboxes' => 12,
- 'active' => 1,
- 'quota' => 99999911111,
- 'maxquota' => 99999999999,
- 'backupmx' => 0,
- 'default_aliases' => 1
- ]
- );
- $this->assertEmpty($dh->errormsg);
- $this->assertEmpty($dh->infomsg);
- $this->assertTrue($ret);
- $ret = $dh->save();
- $this->assertTrue($ret);
- // Need to add 'admin' as a domain_admin
- db_insert('domain_admins', ['username' => 'admin', 'domain' => 'example.com', 'created' => '2020-01-01', 'active' => 1], ['created'], true);
- $dh = new DomainHandler(0, 'admin', true);
- $dh->getList('');
- $result = $dh->result();
- $this->assertEmpty($dh->infomsg);
- $this->assertEmpty($dh->errormsg);
- $this->assertNotEmpty($result);
- $this->assertEquals('example.com', $result['example.com']['domain']);
- $this->assertEquals('test domain', $result['example.com']['description']);
- $this->assertEquals(11, $result['example.com']['aliases']);
- $this->assertEquals(12, $result['example.com']['mailboxes']); // default aliases.
- $this->assertEquals(4, $result['example.com']['alias_count']); // default aliases.
- $this->assertEquals(0, $result['example.com']['mailbox_count']);
- $this->assertEquals(1, $result['example.com']['active']);
- $x = new MailboxHandler(1, 'admin', true);
- $values = [
- 'localpart' => 'david.test',
- 'domain' => 'example.com',
- 'active' => 1,
- 'password' => 'test1234',
- 'password2' => 'test1234',
- 'name' => 'test person',
- 'quota' => 1,
- 'welcome_mail' => 0,
- 'email_other' => '',
- 'username' => 'david.test@example.com',
- ];
- $r = $x->init('david.test@example.com');
- $this->assertTrue($r);
- $x->getList('');
- $list = $x->result();
- $this->assertEquals(0, count($list));
- $x->set($values);
- $x->save();
- $x->getList('');
- $list = $x->result();
- $this->assertEquals(1, count($list), json_encode($x->errormsg));
- $found = false;
- foreach ($list as $key => $details) {
- if ($key == 'david.test@example.com') {
- $this->assertEquals('example.com', $details['domain']);
- $this->assertEquals('david.test@example.com', $details['username']);
- $this->assertEquals('test person', $details['name']);
- $found = true;
- break;
- }
- }
- $this->assertTrue($found, "check output : " . json_encode($list));
- // Try and edit.
- $h = new MailboxHandler(0, 'admin', true);
- $h->init('david.test@example.com');
- $r = $h->set([
- 'password' => '',
- 'password2' => '',
- 'name' => 'test person 1234',
- 'quota' => 123456,
- 'active' => 1,
- 'email_other' => 'fred@example.com',
- 'username' => 'david.test@example.com'
- ]);
- $this->assertEmpty($h->errormsg, json_Encode($h->errormsg));
- $this->assertEmpty($h->infomsg);
- $this->assertTrue($r);
- $this->assertTrue($h->save());
-
- $h->getList('');
- $list = $h->result();
- $this->assertEquals(1, count($list));
- $found = false;
- foreach ($list as $key => $details) {
- if ($key == 'david.test@example.com') {
- // Found!
- $this->assertEquals('example.com', $details['domain']);
- $this->assertEquals('david.test@example.com', $details['username']);
- $this->assertEquals(123456, $details['quota']);
- $this->assertEquals('test person 1234', $details['name']);
- $found = true;
- break;
- }
- }
- $this->assertTrue($found);
- }
- }
- /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */
|