You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
6.1 KiB
PHP

<?php
// Copyright 1999-2021. Plesk International GmbH.
namespace PleskXTest;
use PleskXTest\Utility\PasswordProvider;
class WebspaceTest extends TestCase
{
public function testGetPermissionDescriptor()
{
$descriptor = static::$_client->webspace()->getPermissionDescriptor();
$this->assertIsArray($descriptor->permissions);
$this->assertNotEmpty($descriptor->permissions);
}
public function testGetLimitDescriptor()
{
$descriptor = static::$_client->webspace()->getLimitDescriptor();
$this->assertIsArray($descriptor->limits);
$this->assertNotEmpty($descriptor->limits);
}
public function testGetDiskUsage()
{
$webspace = static::_createWebspace();
$diskusage = static::$_client->webspace()->getDiskUsage('id', $webspace->id);
$this->assertObjectHasAttribute('httpdocs', $diskusage);
static::$_client->webspace()->delete('id', $webspace->id);
}
public function testGetPhysicalHostingDescriptor()
{
$descriptor = static::$_client->webspace()->getPhysicalHostingDescriptor();
$this->assertIsArray($descriptor->properties);
$this->assertNotEmpty($descriptor->properties);
$ftpLoginProperty = $descriptor->properties['ftp_login'];
$this->assertEquals('ftp_login', $ftpLoginProperty->name);
$this->assertEquals('string', $ftpLoginProperty->type);
}
public function testGetPhpSettings()
{
$webspace = static::_createWebspace();
$info = static::$_client->webspace()->getPhpSettings('id', $webspace->id);
$this->assertArrayHasKey('open_basedir', $info->properties);
static::$_client->webspace()->delete('id', $webspace->id);
}
public function testGetLimits()
{
$webspace = static::_createWebspace();
$limits = static::$_client->webspace()->getLimits('id', $webspace->id);
$this->assertIsArray($limits->limits);
$this->assertNotEmpty($limits->limits);
static::$_client->webspace()->delete('id', $webspace->id);
}
public function testCreateWebspace()
{
$webspace = static::_createWebspace();
$this->assertGreaterThan(0, $webspace->id);
static::$_client->webspace()->delete('id', $webspace->id);
}
public function testDelete()
{
$webspace = static::_createWebspace();
$result = static::$_client->webspace()->delete('id', $webspace->id);
$this->assertTrue($result);
}
public function testDeleteByName()
{
$webspace = static::_createWebspace();
$result = static::$_client->webspace()->delete('name', $webspace->name);
$this->assertTrue($result);
}
public function testRequestCreateWebspace()
{
$handlers = static::$_client->phpHandler()->getAll();
$enabledHandlers = array_filter($handlers, function ($handler) {
return $handler->handlerStatus !== 'disabled';
});
$this->assertGreaterThan(0, count($enabledHandlers));
$handler = current($enabledHandlers);
$request = [
'add' => [
'gen_setup' => [
'name' => 'webspace-test-full.test',
'htype' => 'vrt_hst',
'status' => '0',
'ip_address' => [static::_getIpAddress()],
],
'hosting' => [
'vrt_hst' => [
'property' => [
[
'name' => 'php_handler_id',
'value' => $handler->id,
],
[
'name' => 'ftp_login',
'value' => 'testuser',
],
[
'name' => 'ftp_password',
'value' => PasswordProvider::STRONG_PASSWORD,
],
],
'ip_address' => static::_getIpAddress(),
],
],
'limits' => [
'overuse' => 'block',
'limit' => [
[
'name' => 'mbox_quota',
'value' => 100,
],
],
],
'prefs' => [
'www' => 'false',
'stat_ttl' => 6,
],
'performance' => [
'bandwidth' => 120,
'max_connections' => 10000,
],
'permissions' => [
'permission' => [
[
'name' => 'manage_sh_access',
'value' => 'true',
],
],
],
'php-settings' => [
'setting' => [
[
'name' => 'memory_limit',
'value' => '128M',
],
[
'name' => 'safe_mode',
'value' => 'false',
],
],
],
'plan-name' => 'Unlimited',
],
];
$webspace = static::$_client->webspace()->request($request);
$this->assertGreaterThan(0, $webspace->id);
static::$_client->webspace()->delete('id', $webspace->id);
}
public function testGet()
{
$webspace = static::_createWebspace();
$webspaceInfo = static::$_client->webspace()->get('id', $webspace->id);
$this->assertNotEmpty($webspaceInfo->name);
$this->assertEquals(0, $webspaceInfo->realSize);
$this->assertEquals($webspaceInfo->name, $webspaceInfo->asciiName);
$this->assertIsArray($webspaceInfo->ipAddresses);
$this->assertEquals(36, strlen($webspaceInfo->guid));
static::$_client->webspace()->delete('id', $webspace->id);
}
}