mirror of
https://github.com/Froxlor/Froxlor.git
synced 2024-09-21 10:27:29 +00:00
1b2c186c07
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
315 lines
8.3 KiB
PHP
315 lines
8.3 KiB
PHP
<?php
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
use Froxlor\Settings;
|
|
use Froxlor\Database\Database;
|
|
use Froxlor\Api\Commands\Admins;
|
|
use Froxlor\Api\Commands\Customers;
|
|
use Froxlor\Api\Commands\HostingPlans;
|
|
|
|
/**
|
|
*
|
|
* @covers \Froxlor\Api\ApiCommand
|
|
* @covers \Froxlor\Api\ApiParameter
|
|
* @covers \Froxlor\Api\Commands\HostingPlans
|
|
* @covers \Froxlor\Api\Commands\Customers
|
|
*/
|
|
class HostingPlansTest extends TestCase
|
|
{
|
|
|
|
public function testAdminPlanAdd()
|
|
{
|
|
global $admin_userdata;
|
|
|
|
$data = [
|
|
'name' => 'test',
|
|
'description' => 'first test plan',
|
|
'diskspace' => 0,
|
|
'diskspace_ul' => 1,
|
|
'traffic' => - 1,
|
|
'subdomains' => 15,
|
|
'emails' => - 1,
|
|
'email_accounts' => 15,
|
|
'email_forwarders' => 15,
|
|
'email_imap' => 1,
|
|
'email_pop3' => 0,
|
|
'ftps' => 15,
|
|
'mysqls' => 15,
|
|
'phpenabled' => 1,
|
|
'dnsenabled' => 1,
|
|
'allowed_phpconfigs' => array(
|
|
1
|
|
)
|
|
];
|
|
|
|
$json_result = HostingPlans::getLocal($admin_userdata, $data)->add();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$result['value'] = json_decode($result['value'], true);
|
|
foreach ($result['value'] as $index => $value) {
|
|
$result[$index] = $value;
|
|
}
|
|
$this->assertEquals('test', $result['name']);
|
|
$this->assertEquals(- 1, $result['diskspace']);
|
|
$this->assertEquals(15, $result['email_accounts']);
|
|
$this->assertEquals([
|
|
1
|
|
], $result['allowed_phpconfigs']);
|
|
}
|
|
|
|
public function testAdminPlanAddEmptyName()
|
|
{
|
|
global $admin_userdata;
|
|
|
|
$data = [
|
|
'description' => 'test plan'
|
|
];
|
|
|
|
$this->expectExceptionMessage('Requested parameter "name" could not be found for "HostingPlans:add"');
|
|
HostingPlans::getLocal($admin_userdata, $data)->add();
|
|
|
|
$data['name'] = null;
|
|
$this->expectExceptionMessage('Requested parameter "name" is empty where it should not be for "HostingPlans:add"');
|
|
HostingPlans::getLocal($admin_userdata, $data)->add();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testAdminPlanList()
|
|
{
|
|
global $admin_userdata;
|
|
|
|
$json_result = HostingPlans::getLocal($admin_userdata)->listing();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals(1, $result['count']);
|
|
|
|
$json_result = HostingPlans::getLocal($admin_userdata)->listingCount();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals(1, $result);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testResellerPlanList()
|
|
{
|
|
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 = HostingPlans::getLocal($reseller_userdata)->listing();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals(0, $result['count']);
|
|
|
|
$json_result = HostingPlans::getLocal($reseller_userdata)->listingCount();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals(0, $result);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testCustomerPlanList()
|
|
{
|
|
global $admin_userdata;
|
|
// get customer
|
|
$json_result = Customers::getLocal($admin_userdata, array(
|
|
'id' => 1
|
|
))->get();
|
|
$customer_userdata = json_decode($json_result, true)['data'];
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->listing();
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->listingCount();
|
|
}
|
|
|
|
public function testCustomerPlanAdd()
|
|
{
|
|
global $admin_userdata;
|
|
// get customer
|
|
$json_result = Customers::getLocal($admin_userdata, array(
|
|
'id' => 1
|
|
))->get();
|
|
$customer_userdata = json_decode($json_result, true)['data'];
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->add();
|
|
}
|
|
|
|
public function testCustomerPlanGet()
|
|
{
|
|
global $admin_userdata;
|
|
// get customer
|
|
$json_result = Customers::getLocal($admin_userdata, array(
|
|
'id' => 1
|
|
))->get();
|
|
$customer_userdata = json_decode($json_result, true)['data'];
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->get();
|
|
}
|
|
|
|
public function testCustomerPlanUpdate()
|
|
{
|
|
global $admin_userdata;
|
|
// get customer
|
|
$json_result = Customers::getLocal($admin_userdata, array(
|
|
'id' => 1
|
|
))->get();
|
|
$customer_userdata = json_decode($json_result, true)['data'];
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->update();
|
|
}
|
|
|
|
public function testCustomerPlanDelete()
|
|
{
|
|
global $admin_userdata;
|
|
// get customer
|
|
$json_result = Customers::getLocal($admin_userdata, array(
|
|
'id' => 1
|
|
))->get();
|
|
$customer_userdata = json_decode($json_result, true)['data'];
|
|
|
|
$this->expectExceptionCode(403);
|
|
$this->expectExceptionMessage("Not allowed to execute given command.");
|
|
|
|
$json_result = HostingPlans::getLocal($customer_userdata)->delete();
|
|
}
|
|
|
|
public function testAdminPlanGetNotFound()
|
|
{
|
|
global $admin_userdata;
|
|
$this->expectExceptionCode(404);
|
|
$this->expectExceptionMessage("Hosting-plan with id #999 could not be found");
|
|
HostingPlans::getLocal($admin_userdata, array(
|
|
'id' => 999
|
|
))->get();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testAdminPlanUpdate()
|
|
{
|
|
global $admin_userdata;
|
|
|
|
HostingPlans::getLocal($admin_userdata, array(
|
|
'planname' => 'test',
|
|
'name' => '',
|
|
'ftps' => '20'
|
|
))->update();
|
|
|
|
$json_result = HostingPlans::getLocal($admin_userdata, array(
|
|
'planname' => 'test'
|
|
))->get();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$result['value'] = json_decode($result['value'], true);
|
|
foreach ($result['value'] as $index => $value) {
|
|
$result[$index] = $value;
|
|
}
|
|
$this->assertEquals(20, $result['ftps']);
|
|
$this->assertEquals(- 1, $result['diskspace']);
|
|
$this->assertEquals(15, $result['email_accounts']);
|
|
$this->assertEquals([
|
|
1
|
|
], $result['allowed_phpconfigs']);
|
|
}
|
|
|
|
public function testResellerPlanDeleteNotOwned()
|
|
{
|
|
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;
|
|
$this->expectExceptionCode(404);
|
|
HostingPlans::getLocal($reseller_userdata, array(
|
|
'planname' => 'test'
|
|
))->delete();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testAdminPlanDelete()
|
|
{
|
|
global $admin_userdata;
|
|
// add new customer
|
|
$data = [
|
|
'name' => 'test2',
|
|
'description' => 'second test plan'
|
|
];
|
|
HostingPlans::getLocal($admin_userdata, $data)->add();
|
|
$json_result = HostingPlans::getLocal($admin_userdata, array(
|
|
'planname' => 'test2'
|
|
))->delete();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals('test2', $result['name']);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @depends testAdminPlanAdd
|
|
*/
|
|
public function testAdminCustomersAddWithHostingPlan()
|
|
{
|
|
global $admin_userdata;
|
|
|
|
$json_result = HostingPlans::getLocal($admin_userdata, array(
|
|
'planname' => 'test'
|
|
))->get();
|
|
$result = json_decode($json_result, true)['data'];
|
|
|
|
$data = [
|
|
'new_loginname' => 'test1hp',
|
|
'email' => 'team@froxlor.org',
|
|
'firstname' => 'Test',
|
|
'name' => 'Testman',
|
|
'customernumber' => 1337,
|
|
'createstdsubdomain' => 0,
|
|
'new_customer_password' => 'h0lYmo1y',
|
|
'sendpassword' => TRAVIS_CI == 1 ? 0 : 1,
|
|
'store_defaultindex' => 1,
|
|
'custom_notes' => 'secret',
|
|
'custom_notes_show' => 0,
|
|
'gender' => 5,
|
|
'hosting_plan_id' => $result['id']
|
|
];
|
|
|
|
$json_result = Customers::getLocal($admin_userdata, $data)->add();
|
|
$result = json_decode($json_result, true)['data'];
|
|
$this->assertEquals(- 1024, $result['diskspace']);
|
|
$this->assertEquals(15, $result['subdomains']);
|
|
$this->assertEquals(1, $result['phpenabled']);
|
|
$this->assertJsonStringEqualsJsonString(json_encode([
|
|
1
|
|
]), $result['allowed_phpconfigs']);
|
|
|
|
// remove customer
|
|
Customers::getLocal($admin_userdata, array(
|
|
'loginname' => 'test1hp'
|
|
))->delete();
|
|
}
|
|
}
|