DomainHandlerTest.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. class DomainHandlerTest extends \PHPUnit\Framework\TestCase {
  3. public function testBasic() {
  4. $x = new DomainHandler();
  5. $list = $x->getList("");
  6. $this->assertTrue($list);
  7. $results = $x->result();
  8. $this->assertEmpty($results);
  9. }
  10. public function testAddAndUpdate() {
  11. // Fake being an admin.
  12. $_SESSION = [
  13. 'sessid' => [
  14. 'roles' => ['global-admin']
  15. ]
  16. ];
  17. // Add example.com
  18. $username = 'admin';
  19. $domain = 'example.com';
  20. $dh = new DomainHandler(1, $username, true);
  21. $dh->init($domain);
  22. $ret = $dh->set(
  23. [
  24. 'domain' => $domain,
  25. 'description' => 'test domain',
  26. 'aliases' => 11,
  27. 'mailboxes' => 12,
  28. 'active' => 1,
  29. 'backupmx' => 0,
  30. 'default_aliases' => 1
  31. ]
  32. );
  33. $this->assertEmpty($dh->errormsg);
  34. $this->assertEmpty($dh->infomsg);
  35. $this->assertTrue($ret);
  36. $ret = $dh->save();
  37. $this->assertTrue($ret);
  38. // Need to add 'admin' as a domain_admin
  39. db_insert('domain_admins', ['username' => $username, 'domain' => $domain, 'created' => '2020-01-01', 'active' => 1], ['created'], true);
  40. $dh = new DomainHandler(0, $username, true);
  41. $dh->getList('');
  42. $result = $dh->result();
  43. $this->assertEmpty($dh->infomsg);
  44. $this->assertEmpty($dh->errormsg);
  45. $this->assertNotEmpty($result);
  46. $expected = [
  47. 'domain' => $domain,
  48. 'description' => 'test domain',
  49. 'aliases' => 11,
  50. 'alias_count' => 4,
  51. 'mailboxes' => 12,
  52. 'mailbox_count' => 0,
  53. 'backupmx' => 0,
  54. 'active' => 1,
  55. ];
  56. foreach ($expected as $k => $v) {
  57. $this->assertEquals($v, $result[$domain][$k]);
  58. }
  59. // perform some token update
  60. $dh = new DomainHandler(0, 'admin', true);
  61. $dh->init($domain);
  62. $ret = $dh->set(
  63. [
  64. //'domain' => 'example.com',
  65. 'aliases' => 99,
  66. 'mailboxes' => 88,
  67. 'backupmx' => 0,
  68. 'active' => 1,
  69. ]
  70. );
  71. $this->assertTrue($ret);
  72. $this->assertTrue($dh->save());
  73. $this->assertEmpty($dh->errormsg);
  74. $dh->getList('');
  75. $d = $dh->result()[$domain];
  76. $this->assertEquals(99, $d['aliases']);
  77. $this->assertEquals(88, $d['mailboxes']);
  78. }
  79. }