diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 9a928793..10d62e16 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -5,10 +5,14 @@ namespace Pterodactyl\Exceptions; use Exception; use Throwable; use PDOException; -use Psr\Log\LoggerInterface; +use Illuminate\Support\Arr; +use Illuminate\Support\Str; use Swift_TransportException; +use Illuminate\Http\JsonResponse; +use Illuminate\Support\Collection; use Illuminate\Container\Container; use Illuminate\Database\Connection; +use Illuminate\Foundation\Application; use Illuminate\Auth\AuthenticationException; use Illuminate\Session\TokenMismatchException; use Illuminate\Validation\ValidationException; @@ -83,11 +87,11 @@ class Handler extends ExceptionHandler $cleanedStack .= sprintf( "#%d %s(%d): %s%s%s\n", $index, - array_get($item, 'file'), - array_get($item, 'line'), - array_get($item, 'class'), - array_get($item, 'type'), - array_get($item, 'function') + Arr::get($item, 'file'), + Arr::get($item, 'line'), + Arr::get($item, 'class'), + Arr::get($item, 'type'), + Arr::get($item, 'function') ); } @@ -113,7 +117,7 @@ class Handler extends ExceptionHandler */ public function render($request, Throwable $exception) { - $connections = Container::getInstance()->make(Connection::class); + $connections = $this->container->make(Connection::class); // If we are currently wrapped up inside a transaction, we will roll all the way // back to the beginning. This needs to happen, otherwise session data does not @@ -141,21 +145,21 @@ class Handler extends ExceptionHandler */ public function invalidJson($request, ValidationException $exception) { - $codes = collect($exception->validator->failed())->mapWithKeys(function ($reasons, $field) { + $codes = Collection::make($exception->validator->failed())->mapWithKeys(function ($reasons, $field) { $cleaned = []; foreach ($reasons as $reason => $attrs) { - $cleaned[] = snake_case($reason); + $cleaned[] = Str::snake($reason); } return [str_replace('.', '_', $field) => $cleaned]; })->toArray(); - $errors = collect($exception->errors())->map(function ($errors, $field) use ($codes, $exception) { + $errors = Collection::make($exception->errors())->map(function ($errors, $field) use ($codes, $exception) { $response = []; foreach ($errors as $key => $error) { $meta = [ 'source_field' => $field, - 'rule' => str_replace(self::PTERODACTYL_RULE_STRING, 'p_', array_get( + 'rule' => str_replace(self::PTERODACTYL_RULE_STRING, 'p_', Arr::get( $codes, str_replace('.', '_', $field) . '.' . $key )), ]; @@ -206,7 +210,7 @@ class Handler extends ExceptionHandler 'detail' => $exception->getMessage(), 'source' => [ 'line' => $exception->getLine(), - 'file' => str_replace(base_path(), '', $exception->getFile()), + 'file' => str_replace(Application::getInstance()->basePath(), '', $exception->getFile()), ], 'meta' => [ 'trace' => explode("\n", $exception->getTraceAsString()), @@ -238,10 +242,10 @@ class Handler extends ExceptionHandler protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()) { - return response()->json(self::convertToArray($exception), 401); + return new JsonResponse(self::convertToArray($exception), JsonResponse::HTTP_UNAUTHORIZED); } - return redirect()->guest(route('auth.login')); + return $this->container->make('redirect')->guest('/auth/login'); } /** diff --git a/tests/Assertions/CommandAssertionsTrait.php b/tests/Assertions/CommandAssertionsTrait.php deleted file mode 100644 index a6cc12f8..00000000 --- a/tests/Assertions/CommandAssertionsTrait.php +++ /dev/null @@ -1,26 +0,0 @@ -. - * - * This software is licensed under the terms of the MIT license. - * https://opensource.org/licenses/MIT - */ - -namespace Pterodactyl\Tests\Assertions; - -use PHPUnit\Framework\Assert; - -trait CommandAssertionsTrait -{ - /** - * Assert that an output table contains a value. - * - * @param mixed $string - * @param string $display - */ - public function assertTableContains($string, $display) - { - Assert::assertRegExp('/\|(\s+)' . preg_quote($string) . '(\s+)\|/', $display, 'Assert that a response table contains a value.'); - } -} diff --git a/tests/Assertions/ControllerAssertionsTrait.php b/tests/Assertions/ControllerAssertionsTrait.php deleted file mode 100644 index dbf76419..00000000 --- a/tests/Assertions/ControllerAssertionsTrait.php +++ /dev/null @@ -1,207 +0,0 @@ -. - * - * This software is licensed under the terms of the MIT license. - * https://opensource.org/licenses/MIT - */ - -namespace Pterodactyl\Tests\Assertions; - -use Illuminate\View\View; -use Illuminate\Http\Response; -use PHPUnit\Framework\Assert; -use Illuminate\Http\JsonResponse; -use Illuminate\Http\RedirectResponse; - -trait ControllerAssertionsTrait -{ - /** - * Assert that a response is an instance of Illuminate View. - * - * @param mixed $response - */ - public function assertIsViewResponse($response) - { - Assert::assertInstanceOf(View::class, $response); - } - - /** - * Assert that a response is an instance of Illuminate Redirect Response. - * - * @param mixed $response - */ - public function assertIsRedirectResponse($response) - { - Assert::assertInstanceOf(RedirectResponse::class, $response); - } - - /** - * Assert that a response is an instance of Illuminate Json Response. - * - * @param mixed $response - */ - public function assertIsJsonResponse($response) - { - Assert::assertInstanceOf(JsonResponse::class, $response); - } - - /** - * Assert that a response is an instance of Illuminate Response. - * - * @param mixed $response - */ - public function assertIsResponse($response) - { - Assert::assertInstanceOf(Response::class, $response); - } - - /** - * Assert that a view name equals the passed name. - * - * @param string $name - * @param mixed $view - */ - public function assertViewNameEquals($name, $view) - { - Assert::assertEquals($name, $view->getName()); - } - - /** - * Assert that a view name does not equal a provided name. - * - * @param string $name - * @param mixed $view - */ - public function assertViewNameNotEquals($name, $view) - { - Assert::assertNotEquals($name, $view->getName()); - } - - /** - * Assert that a view has an attribute passed into it. - * - * @param string $attribute - * @param mixed $view - */ - public function assertViewHasKey($attribute, $view) - { - if (str_contains($attribute, '.')) { - Assert::assertNotEquals( - '__TEST__FAIL', - array_get($view->getData(), $attribute, '__TEST__FAIL') - ); - } else { - Assert::assertArrayHasKey($attribute, $view->getData()); - } - } - - /** - * Assert that a view does not have a specific attribute passed in. - * - * @param string $attribute - * @param mixed $view - */ - public function assertViewNotHasKey($attribute, $view) - { - if (str_contains($attribute, '.')) { - Assert::assertEquals( - '__TEST__PASS', - array_get($view->getData(), $attribute, '__TEST__PASS') - ); - } else { - Assert::assertArrayNotHasKey($attribute, $view->getData()); - } - } - - /** - * Assert that a view attribute equals a given parameter. - * - * @param string $attribute - * @param mixed $value - * @param mixed $view - */ - public function assertViewKeyEquals($attribute, $value, $view) - { - Assert::assertEquals($value, array_get($view->getData(), $attribute, '__TEST__FAIL')); - } - - /** - * Assert that a view attribute does not equal a given parameter. - * - * @param string $attribute - * @param mixed $value - * @param mixed $view - */ - public function assertViewKeyNotEquals($attribute, $value, $view) - { - Assert::assertNotEquals($value, array_get($view->getData(), $attribute, '__TEST__FAIL')); - } - - /** - * Assert that a route redirect equals a given route name. - * - * @param string $route - * @param mixed $response - * @param array $args - */ - public function assertRedirectRouteEquals($route, $response, array $args = []) - { - Assert::assertEquals(route($route, $args), $response->getTargetUrl()); - } - - /** - * Assert that a route redirect URL equals as passed URL. - * - * @param string $url - * @param mixed $response - */ - public function assertRedirectUrlEquals($url, $response) - { - Assert::assertEquals($url, $response->getTargetUrl()); - } - - /** - * Assert that a response code equals a given code. - * - * @param int $code - * @param mixed $response - */ - public function assertResponseCodeEquals($code, $response) - { - Assert::assertEquals($code, $response->getStatusCode()); - } - - /** - * Assert that a response code does not equal a given code. - * - * @param int $code - * @param mixed $response - */ - public function assertResponseCodeNotEquals($code, $response) - { - Assert::assertNotEquals($code, $response->getStatusCode()); - } - - /** - * Assert that a response is in a JSON format. - * - * @param mixed $response - */ - public function assertResponseHasJsonHeaders($response) - { - Assert::assertEquals('application/json', $response->headers->get('content-type')); - } - - /** - * Assert that response JSON matches a given JSON string. - * - * @param array|string $json - * @param mixed $response - */ - public function assertResponseJsonEquals($json, $response) - { - Assert::assertEquals(is_array($json) ? json_encode($json) : $json, $response->getContent()); - } -} diff --git a/tests/Assertions/NestedObjectAssertionsTrait.php b/tests/Assertions/NestedObjectAssertionsTrait.php deleted file mode 100644 index 3745189f..00000000 --- a/tests/Assertions/NestedObjectAssertionsTrait.php +++ /dev/null @@ -1,47 +0,0 @@ -. - * - * This software is licensed under the terms of the MIT license. - * https://opensource.org/licenses/MIT - */ - -namespace Pterodactyl\Tests\Assertions; - -use PHPUnit\Framework\Assert; -use PHPUnit_Util_InvalidArgumentHelper; - -trait NestedObjectAssertionsTrait -{ - /** - * Assert that an object value matches an expected value. - * - * @param string $key - * @param mixed $expected - * @param object $object - */ - public function assertObjectNestedValueEquals(string $key, $expected, $object) - { - if (! is_object($object)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'object'); - } - - Assert::assertEquals($expected, object_get_strict($object, $key, '__TEST_FAILURE'), 'Assert that an object value equals a provided value.'); - } - - /** - * Assert that an object contains a nested key. - * - * @param string $key - * @param object $object - */ - public function assertObjectHasNestedAttribute(string $key, $object) - { - if (! is_object($object)) { - throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'object'); - } - - Assert::assertNotEquals('__TEST_FAILURE', object_get_strict($object, $key, '__TEST_FAILURE'), 'Assert that an object contains a nested key.'); - } -}