Implement Panel changes to support internal SFTP subsystem on Daemon (#703)
This commit is contained in:
parent
57db949a9c
commit
058e490ec4
23 changed files with 484 additions and 247 deletions
|
@ -18,7 +18,6 @@ use Illuminate\Database\ConnectionInterface;
|
|||
use Pterodactyl\Exceptions\PterodactylException;
|
||||
use Pterodactyl\Services\Servers\ServerCreationService;
|
||||
use Pterodactyl\Services\Servers\VariableValidatorService;
|
||||
use Pterodactyl\Services\Servers\UsernameGenerationService;
|
||||
use Pterodactyl\Contracts\Repository\NodeRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
|
||||
|
@ -109,11 +108,6 @@ class ServerCreationServiceTest extends TestCase
|
|||
*/
|
||||
protected $userRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Services\Servers\UsernameGenerationService|\Mockery\Mock
|
||||
*/
|
||||
protected $usernameService;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Services\Servers\VariableValidatorService|\Mockery\Mock
|
||||
*/
|
||||
|
@ -135,7 +129,6 @@ class ServerCreationServiceTest extends TestCase
|
|||
$this->repository = m::mock(ServerRepositoryInterface::class);
|
||||
$this->serverVariableRepository = m::mock(ServerVariableRepositoryInterface::class);
|
||||
$this->userRepository = m::mock(UserRepositoryInterface::class);
|
||||
$this->usernameService = m::mock(UsernameGenerationService::class);
|
||||
$this->validatorService = m::mock(VariableValidatorService::class);
|
||||
|
||||
$this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'str_random')
|
||||
|
@ -150,7 +143,6 @@ class ServerCreationServiceTest extends TestCase
|
|||
$this->repository,
|
||||
$this->serverVariableRepository,
|
||||
$this->userRepository,
|
||||
$this->usernameService,
|
||||
$this->validatorService
|
||||
);
|
||||
}
|
||||
|
@ -165,8 +157,6 @@ class ServerCreationServiceTest extends TestCase
|
|||
->shouldReceive('validate')->with($this->data['egg_id'])->once()->andReturnSelf();
|
||||
|
||||
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
|
||||
$this->usernameService->shouldReceive('generate')->with($this->data['name'], 'random_string')
|
||||
->once()->andReturn('user_name');
|
||||
|
||||
$this->repository->shouldReceive('create')->with(m::subset([
|
||||
'uuid' => $this->getKnownUuid(),
|
||||
|
@ -211,7 +201,6 @@ class ServerCreationServiceTest extends TestCase
|
|||
{
|
||||
$this->validatorService->shouldReceive('isAdmin->setFields->validate->getResults')->once()->andReturn([]);
|
||||
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
|
||||
$this->usernameService->shouldReceive('generate')->once()->andReturn('user_name');
|
||||
$this->repository->shouldReceive('create')->once()->andReturn((object) [
|
||||
'node_id' => 1,
|
||||
'id' => 1,
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Pterodactyl - Panel
|
||||
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
|
||||
*
|
||||
* This software is licensed under the terms of the MIT license.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
namespace Tests\Unit\Services\Servers;
|
||||
|
||||
use Tests\TestCase;
|
||||
use phpmock\phpunit\PHPMock;
|
||||
use Pterodactyl\Services\Servers\UsernameGenerationService;
|
||||
|
||||
class UsernameGenerationServiceTest extends TestCase
|
||||
{
|
||||
use PHPMock;
|
||||
|
||||
/**
|
||||
* @var UsernameGenerationService
|
||||
*/
|
||||
protected $service;
|
||||
|
||||
/**
|
||||
* Setup tests.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->service = new UsernameGenerationService();
|
||||
|
||||
$this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'str_random')
|
||||
->expects($this->any())->willReturnCallback(function ($count) {
|
||||
return str_pad('', $count, '0');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that a valid username is returned and is the correct length.
|
||||
*/
|
||||
public function testShouldReturnAValidUsernameWithASelfGeneratedIdentifier()
|
||||
{
|
||||
$response = $this->service->generate('testname');
|
||||
|
||||
$this->assertEquals('testna_00000000', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that a name and identifier provided returns the expected username.
|
||||
*/
|
||||
public function testShouldReturnAValidUsernameWithAnIdentifierProvided()
|
||||
{
|
||||
$response = $this->service->generate('testname', 'identifier');
|
||||
|
||||
$this->assertEquals('testna_identifi', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the identifier is extended to 8 characters if it is shorter.
|
||||
*/
|
||||
public function testShouldExtendIdentifierToBe8CharactersIfItIsShorter()
|
||||
{
|
||||
$response = $this->service->generate('testname', 'xyz');
|
||||
|
||||
$this->assertEquals('testna_xyz00000', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that special characters are removed from the username.
|
||||
*/
|
||||
public function testShouldStripSpecialCharactersFromName()
|
||||
{
|
||||
$response = $this->service->generate('te!st_n$ame', 'identifier');
|
||||
|
||||
$this->assertEquals('testna_identifi', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that an empty name is replaced with 6 random characters.
|
||||
*/
|
||||
public function testEmptyNamesShouldBeReplacedWithRandomCharacters()
|
||||
{
|
||||
$response = $this->service->generate('');
|
||||
|
||||
$this->assertEquals('000000_00000000', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that a name consisting entirely of special characters is handled.
|
||||
*/
|
||||
public function testNameOfOnlySpecialCharactersIsHandledProperly()
|
||||
{
|
||||
$response = $this->service->generate('$%#*#(@#(#*$&#(#!#@');
|
||||
|
||||
$this->assertEquals('000000_00000000', $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that passing a name shorter than 6 characters returns the entire name.
|
||||
*/
|
||||
public function testNameShorterThan6CharactersShouldBeRenderedEntirely()
|
||||
{
|
||||
$response = $this->service->generate('test', 'identifier');
|
||||
|
||||
$this->assertEquals('test_identifi', $response);
|
||||
}
|
||||
}
|
Reference in a new issue