optimized CustomersTest and DomainsTest; minor fixes in SubDomains-ApiCommand; added more tests for SubDomains-Command

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2018-03-02 15:24:46 +01:00
parent aeb8655cc3
commit 594512404f
4 changed files with 120 additions and 14 deletions

View File

@@ -388,7 +388,7 @@ class SubDomains extends ApiCommand implements ResourceEntity
} else { } else {
$result_stmt = Database::prepare(" $result_stmt = Database::prepare("
SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` SELECT * FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE " . ($id > 0 ? "`id` = :iddn" : "`domainname` = :iddn")); WHERE " . ($id > 0 ? "`id` = :iddn" : "`domain` = :iddn"));
$params = array( $params = array(
'iddn' => ($id <= 0 ? $domainname : $id) 'iddn' => ($id <= 0 ? $domainname : $id)
); );
@@ -398,8 +398,8 @@ class SubDomains extends ApiCommand implements ResourceEntity
throw new Exception("You cannot access this resource", 405); throw new Exception("You cannot access this resource", 405);
} }
$result_stmt = Database::prepare(" $result_stmt = Database::prepare("
SELECT `id`, `customerid`, `domain`, `documentroot`, `isemaildomain`, `parentdomainid`, `aliasdomain` FROM `" . TABLE_PANEL_DOMAINS . "` SELECT `id`, `customerid`, `domain`, `documentroot`, `isemaildomain`, `parentdomainid`, `aliasdomain`, `caneditdomain` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `customerid`= :customerid AND " . ($id > 0 ? "`id` = :iddn" : "`domainname` = :iddn")); WHERE `customerid`= :customerid AND " . ($id > 0 ? "`id` = :iddn" : "`domain` = :iddn"));
$params = array( $params = array(
'customerid' => $this->getUserDetail('customerid'), 'customerid' => $this->getUserDetail('customerid'),
'iddn' => ($id <= 0 ? $domainname : $id) 'iddn' => ($id <= 0 ? $domainname : $id)
@@ -427,7 +427,7 @@ class SubDomains extends ApiCommand implements ResourceEntity
$customerid = $this->getParam('customerid', true, 0); $customerid = $this->getParam('customerid', true, 0);
$loginname = $this->getParam('loginname', true, ''); $loginname = $this->getParam('loginname', true, '');
if (! empty($customer_id) || ! empty($loginname)) { if (! empty($customerid) || ! empty($loginname)) {
$json_result = Customers::getLocal($this->getUserData(), array( $json_result = Customers::getLocal($this->getUserData(), array(
'id' => $customerid, 'id' => $customerid,
'loginname' => $loginname 'loginname' => $loginname

View File

@@ -44,14 +44,6 @@ class CustomersTest extends TestCase
$json_result = Customers::getLocal($admin_userdata, $data)->add(); $json_result = Customers::getLocal($admin_userdata, $data)->add();
$result = json_decode($json_result, true)['data']; $result = json_decode($json_result, true)['data'];
$customer_id = $result['customerid'];
// get customer and check results
$json_result = Customers::getLocal($admin_userdata, array(
'id' => $customer_id
))->get();
$result = json_decode($json_result, true)['data'];
$this->assertEquals(1, $result['customerid']); $this->assertEquals(1, $result['customerid']);
$this->assertEquals('test@froxlor.org', $result['email']); $this->assertEquals('test@froxlor.org', $result['email']);
$this->assertEquals(1337, $result['customernumber']); $this->assertEquals(1337, $result['customernumber']);

View File

@@ -116,7 +116,7 @@ class DomainsTest extends TestCase
'customerid' => 1 'customerid' => 1
]; ];
$this->expectExceptionMessage('You must not specify punycode (IDNA). The domain will automatically be converted'); $this->expectExceptionMessage('You must not specify punycode (IDNA). The domain will automatically be converted');
$json_result = Domains::getLocal($admin_userdata, $data)->add(); Domains::getLocal($admin_userdata, $data)->add();
} }
public function testAdminDomainsAddInvalidDomain() public function testAdminDomainsAddInvalidDomain()
@@ -127,7 +127,7 @@ class DomainsTest extends TestCase
'customerid' => 1 'customerid' => 1
]; ];
$this->expectExceptionMessage("Wrong Input in Field 'Domain'"); $this->expectExceptionMessage("Wrong Input in Field 'Domain'");
$json_result = Domains::getLocal($admin_userdata, $data)->add(); Domains::getLocal($admin_userdata, $data)->add();
} }
/** /**

View File

@@ -8,6 +8,45 @@ use PHPUnit\Framework\TestCase;
*/ */
class SubDomainsTest extends TestCase class SubDomainsTest extends TestCase
{ {
public function testCustomerSubDomainsAdd()
{
global $admin_userdata;
// get customer
$json_result = Customers::getLocal($admin_userdata, array(
'loginname' => 'test1'
))->get();
$customer_userdata = json_decode($json_result, true)['data'];
$data = [
'subdomain' => 'mysub',
'domain' => 'test2.local'
];
$json_result = SubDomains::getLocal($customer_userdata, $data)->add();
$result = json_decode($json_result, true)['data'];
$this->assertEquals('mysub.test2.local', $result['domain']);
}
public function testResellerSubDomainsAdd()
{
global $admin_userdata;
// get reseller
$json_result = Admins::getLocal($admin_userdata, array(
'loginname' => 'reseller'
))->get();
$reseller_userdata = json_decode($json_result, true)['data'];
$reseller_userdata['adminsession'] = 1;
$data = [
'subdomain' => 'mysub2',
'domain' => 'test2.local',
'customer_id' => 1
];
$json_result = SubDomains::getLocal($reseller_userdata, $data)->add();
$result = json_decode($json_result, true)['data'];
$this->assertEquals('mysub2.test2.local', $result['domain']);
}
public function testCustomerSubDomainsAddNoPunycode() public function testCustomerSubDomainsAddNoPunycode()
{ {
global $admin_userdata; global $admin_userdata;
@@ -61,4 +100,79 @@ class SubDomainsTest extends TestCase
$this->expectExceptionMessage("Wrong Input in Field 'Domain'"); $this->expectExceptionMessage("Wrong Input in Field 'Domain'");
SubDomains::getLocal($customer_userdata, $data)->add(); SubDomains::getLocal($customer_userdata, $data)->add();
} }
/**
* @depends testCustomerSubDomainsAdd
*/
public function testAdminSubDomainsGet()
{
global $admin_userdata;
// get customer
$json_result = Customers::getLocal($admin_userdata, array(
'loginname' => 'test1'
))->get();
$customer_userdata = json_decode($json_result, true)['data'];
$data = [
'domainname' => 'mysub.test2.local'
];
$json_result = SubDomains::getLocal($admin_userdata, $data)->get();
$result = json_decode($json_result, true)['data'];
$this->assertEquals('mysub.test2.local', $result['domain']);
$this->assertEquals(1, $result['customerid']);
}
public function testCustomerSubDomainsList()
{
global $admin_userdata;
// get customer
$json_result = Customers::getLocal($admin_userdata, array(
'loginname' => 'test1'
))->get();
$customer_userdata = json_decode($json_result, true)['data'];
$json_result = SubDomains::getLocal($customer_userdata)->list();
$result = json_decode($json_result, true)['data'];
$this->assertEquals(3, $result['count']);
}
public function testResellerSubDomainsList()
{
global $admin_userdata;
// get reseller
$json_result = Admins::getLocal($admin_userdata, array(
'loginname' => 'reseller'
))->get();
$reseller_userdata = json_decode($json_result, true)['data'];
$reseller_userdata['adminsession'] = 1;
$json_result = SubDomains::getLocal($reseller_userdata)->list();
$result = json_decode($json_result, true)['data'];
$this->assertEquals(3, $result['count']);
}
public function testAdminSubDomainsListWithCustomer()
{
global $admin_userdata;
$json_result = SubDomains::getLocal($admin_userdata, ['loginname' => 'test1'])->list();
$result = json_decode($json_result, true)['data'];
$this->assertEquals(3, $result['count']);
}
/**
* @depends testCustomerSubDomainsList
*/
public function testCustomerSubDomainsDelete()
{
global $admin_userdata;
// get customer
$json_result = Customers::getLocal($admin_userdata, array(
'loginname' => 'test1'
))->get();
$customer_userdata = json_decode($json_result, true)['data'];
$json_result = SubDomains::getLocal($customer_userdata, ['domainname' => 'mysub.test2.local'])->delete();
$result = json_decode($json_result, true)['data'];
$this->assertEquals('mysub.test2.local', $result['domain']);
$this->assertEquals($customer_userdata['customerid'], $result['customerid']);
}
} }