mirror of https://github.com/flightphp/core
- removed autoload-dev.classmap - normalize Tests/* namespace to tests - rename tests/server-v2 to tests/server_v2 - remove tests/phpunit_autoload.php - update tests files namespaces - update tests/server/index.php and tests/server_v2/index.php to use composer autoloader - extract tests/server_v2/AuthCheck.phpautoload-rework
parent
6b47c10192
commit
85d2f82f77
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
$path = file_exists(__DIR__ . '/../vendor/autoload.php')
|
|
||||||
? __DIR__ . '/../vendor/autoload.php'
|
|
||||||
: __DIR__ . '/../flight/autoload.php';
|
|
||||||
|
|
||||||
require_once($path);
|
|
||||||
@ -1,243 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the test file where we can open up a quick test server and make
|
|
||||||
* sure that the UI is really working the way we would expect it to.
|
|
||||||
*
|
|
||||||
* @author Kristaps Muižnieks https://github.com/krmu
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Tests\ServerV2 {
|
|
||||||
class AuthCheck
|
|
||||||
{
|
|
||||||
public function before(): void
|
|
||||||
{
|
|
||||||
if (!isset($_COOKIE['user'])) {
|
|
||||||
echo '<span id="infotext">Middleware text:</span> You are not authorized to access this route!';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
use Tests\ServerV2\AuthCheck;
|
|
||||||
|
|
||||||
require_once __DIR__ . '/../phpunit_autoload.php';
|
|
||||||
|
|
||||||
Flight::set('flight.content_length', false);
|
|
||||||
Flight::set('flight.views.path', './');
|
|
||||||
Flight::set('flight.views.extension', '.phtml');
|
|
||||||
// This enables the old functionality of Flight output buffering
|
|
||||||
Flight::set('flight.v2.output_buffering', true);
|
|
||||||
|
|
||||||
// Test 1: Root route
|
|
||||||
Flight::route('/', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> Root route works!';
|
|
||||||
|
|
||||||
if (Flight::request()->query['redirected']) {
|
|
||||||
echo '<br>Redirected from /redirect route successfully!';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::route('/querytestpath', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> This ir query route<br>';
|
|
||||||
echo 'I got such query parameters:<pre>';
|
|
||||||
print_r(Flight::request()->query);
|
|
||||||
echo '</pre>';
|
|
||||||
}, false, 'querytestpath');
|
|
||||||
|
|
||||||
// Test 2: Simple route
|
|
||||||
Flight::route('/test', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> Test route works!';
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 3: Route with parameter
|
|
||||||
Flight::route('/user/@name', function ($name) {
|
|
||||||
echo "<span id='infotext'>Route text:</span> Hello, $name!";
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::route('POST /postpage', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> THIS IS POST METHOD PAGE';
|
|
||||||
}, false, 'postpage');
|
|
||||||
|
|
||||||
// Test 4: Grouped routes
|
|
||||||
Flight::group('/group', function () {
|
|
||||||
Flight::route('/test', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> Group test route works!';
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::route('/user/@name', function ($name) {
|
|
||||||
echo "<span id='infotext'>Route text:</span> There is variable called name and it is $name";
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::group('/group1', function () {
|
|
||||||
Flight::group('/group2', function () {
|
|
||||||
Flight::group('/group3', function () {
|
|
||||||
Flight::group('/group4', function () {
|
|
||||||
Flight::group('/group5', function () {
|
|
||||||
Flight::group('/group6', function () {
|
|
||||||
Flight::group('/group7', function () {
|
|
||||||
Flight::group('/group8', function () {
|
|
||||||
Flight::route('/final_group', function () {
|
|
||||||
echo 'Mega Group test route works!';
|
|
||||||
}, false, 'final_group');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 5: Route alias
|
|
||||||
Flight::route('/alias', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> Alias route works!';
|
|
||||||
}, false, 'aliasroute');
|
|
||||||
|
|
||||||
$middle = new AuthCheck();
|
|
||||||
|
|
||||||
// Test 6: Route with middleware
|
|
||||||
Flight::route('/protected', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> Protected route works!';
|
|
||||||
})->addMiddleware([$middle]);
|
|
||||||
|
|
||||||
// Test 7: Route with template
|
|
||||||
Flight::route('/template/@name', function ($name) {
|
|
||||||
Flight::render('template.phtml', ['name' => $name]);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 8: Throw an error
|
|
||||||
Flight::route('/error', function () {
|
|
||||||
trigger_error('This is a successful error');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 9: JSON output (should not output any other html)
|
|
||||||
Flight::route('/json', function () {
|
|
||||||
echo "\n\n\n\n\n";
|
|
||||||
Flight::json(['message' => 'JSON renders successfully!']);
|
|
||||||
echo "\n\n\n\n\n";
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 13: JSONP output (should not output any other html)
|
|
||||||
Flight::route('/jsonp', function () {
|
|
||||||
echo "\n\n\n\n\n";
|
|
||||||
Flight::jsonp(['message' => 'JSONP renders successfully!'], 'jsonp');
|
|
||||||
echo "\n\n\n\n\n";
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::route('/json-halt', function () {
|
|
||||||
Flight::jsonHalt(['message' => 'JSON rendered and halted successfully with no other body content!']);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 10: Halt
|
|
||||||
Flight::route('/halt', function () {
|
|
||||||
Flight::halt(400, 'Halt worked successfully');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test 11: Redirect
|
|
||||||
Flight::route('/redirect', function () {
|
|
||||||
Flight::redirect('/?redirected=1');
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::set('flight.views.path', './');
|
|
||||||
|
|
||||||
Flight::map('error', function (Throwable $error) {
|
|
||||||
echo "<h1> An error occurred, mapped error method worked, error below </h1>";
|
|
||||||
echo '<pre style="border: 2px solid red; padding: 21px; background: lightgray; font-weight: bold;">';
|
|
||||||
echo str_replace(getenv('PWD'), "***CLASSIFIED*****", $error->getTraceAsString());
|
|
||||||
echo "</pre>";
|
|
||||||
echo "<a href='/'>Go back</a>";
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::map('notFound', function () {
|
|
||||||
echo '<span id="infotext">Route text:</span> The requested URL was not found';
|
|
||||||
echo "<a href='/'>Go back</a>";
|
|
||||||
});
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<style>
|
|
||||||
ul {
|
|
||||||
list-style-type: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
#infotext {
|
|
||||||
font-weight: bold;
|
|
||||||
color: blueviolet;
|
|
||||||
}
|
|
||||||
li a {
|
|
||||||
display: block;
|
|
||||||
color: white;
|
|
||||||
text-align: center;
|
|
||||||
padding: 14px 16px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
li a:hover {
|
|
||||||
background-color: #111;
|
|
||||||
}
|
|
||||||
#container {
|
|
||||||
color: #333;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.5;
|
|
||||||
margin: 20px 0;
|
|
||||||
padding: 10px;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
}
|
|
||||||
#debugrequest {
|
|
||||||
color: #333;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.5;
|
|
||||||
margin: 20px 0;
|
|
||||||
padding: 10px;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<ul>
|
|
||||||
<li><a href="/">Root Route</a></li>
|
|
||||||
<li><a href="/test">Test Route</a></li>
|
|
||||||
<li><a href="/user/John">User Route with Parameter (John)</a></li>
|
|
||||||
<li><a href="/group/test">Grouped Test Route</a></li>
|
|
||||||
<li><a href="/group/user/Jane">Grouped User Route with Parameter (Jane)</a></li>
|
|
||||||
<li><a href="/alias">Alias Route</a></li>
|
|
||||||
<li><a href="/protected">Protected path</a></li>
|
|
||||||
<li><a href="/template/templatevariable">Template path</a></li>
|
|
||||||
<li><a href="/querytestpath?test=1&variable2=uuid&variable3=tester">Query path</a></li>
|
|
||||||
<li><a href="/postpage">Post method test page - should be 404</a></li>
|
|
||||||
<li><a href="' . Flight::getUrl('final_group') . '">Mega group</a></li>
|
|
||||||
<li><a href="/error">Error</a></li>
|
|
||||||
<li><a href="/json">JSON</a></li>
|
|
||||||
<li><a href="/jsonp?jsonp=myjson">JSONP</a></li>
|
|
||||||
<li><a href="/json-halt">JSON Halt</a></li>
|
|
||||||
<li><a href="/halt">Halt</a></li>
|
|
||||||
<li><a href="/redirect">Redirect</a></li>
|
|
||||||
</ul>';
|
|
||||||
|
|
||||||
Flight::before('start', function () {
|
|
||||||
echo '<div id="container">';
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::after('start', function () {
|
|
||||||
echo '</div>';
|
|
||||||
echo '<div id="debugrequest">';
|
|
||||||
echo "Request information<pre>";
|
|
||||||
print_r(Flight::request());
|
|
||||||
echo "</pre>";
|
|
||||||
echo "</div>";
|
|
||||||
});
|
|
||||||
|
|
||||||
Flight::start();
|
|
||||||
}
|
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace tests\server_v2;
|
||||||
|
|
||||||
|
class AuthCheck
|
||||||
|
{
|
||||||
|
public function before(): void
|
||||||
|
{
|
||||||
|
if (!isset($_COOKIE['user'])) {
|
||||||
|
echo '<span id="infotext">Middleware text:</span> You are not authorized to access this route!';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,228 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use tests\server_v2\AuthCheck;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the test file where we can open up a quick test server and make
|
||||||
|
* sure that the UI is really working the way we would expect it to.
|
||||||
|
*
|
||||||
|
* @author Kristaps Muižnieks https://github.com/krmu
|
||||||
|
*/
|
||||||
|
|
||||||
|
Flight::set('flight.content_length', false);
|
||||||
|
Flight::set('flight.views.path', './');
|
||||||
|
Flight::set('flight.views.extension', '.phtml');
|
||||||
|
// This enables the old functionality of Flight output buffering
|
||||||
|
Flight::set('flight.v2.output_buffering', true);
|
||||||
|
|
||||||
|
// Test 1: Root route
|
||||||
|
Flight::route('/', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> Root route works!';
|
||||||
|
|
||||||
|
if (Flight::request()->query['redirected']) {
|
||||||
|
echo '<br>Redirected from /redirect route successfully!';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::route('/querytestpath', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> This ir query route<br>';
|
||||||
|
echo 'I got such query parameters:<pre>';
|
||||||
|
print_r(Flight::request()->query);
|
||||||
|
echo '</pre>';
|
||||||
|
}, false, 'querytestpath');
|
||||||
|
|
||||||
|
// Test 2: Simple route
|
||||||
|
Flight::route('/test', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> Test route works!';
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 3: Route with parameter
|
||||||
|
Flight::route('/user/@name', function ($name) {
|
||||||
|
echo "<span id='infotext'>Route text:</span> Hello, $name!";
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::route('POST /postpage', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> THIS IS POST METHOD PAGE';
|
||||||
|
}, false, 'postpage');
|
||||||
|
|
||||||
|
// Test 4: Grouped routes
|
||||||
|
Flight::group('/group', function () {
|
||||||
|
Flight::route('/test', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> Group test route works!';
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::route('/user/@name', function ($name) {
|
||||||
|
echo "<span id='infotext'>Route text:</span> There is variable called name and it is $name";
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::group('/group1', function () {
|
||||||
|
Flight::group('/group2', function () {
|
||||||
|
Flight::group('/group3', function () {
|
||||||
|
Flight::group('/group4', function () {
|
||||||
|
Flight::group('/group5', function () {
|
||||||
|
Flight::group('/group6', function () {
|
||||||
|
Flight::group('/group7', function () {
|
||||||
|
Flight::group('/group8', function () {
|
||||||
|
Flight::route('/final_group', function () {
|
||||||
|
echo 'Mega Group test route works!';
|
||||||
|
}, false, 'final_group');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 5: Route alias
|
||||||
|
Flight::route('/alias', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> Alias route works!';
|
||||||
|
}, false, 'aliasroute');
|
||||||
|
|
||||||
|
$middle = new AuthCheck();
|
||||||
|
|
||||||
|
// Test 6: Route with middleware
|
||||||
|
Flight::route('/protected', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> Protected route works!';
|
||||||
|
})->addMiddleware([$middle]);
|
||||||
|
|
||||||
|
// Test 7: Route with template
|
||||||
|
Flight::route('/template/@name', function ($name) {
|
||||||
|
Flight::render('template.phtml', ['name' => $name]);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 8: Throw an error
|
||||||
|
Flight::route('/error', function () {
|
||||||
|
trigger_error('This is a successful error');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 9: JSON output (should not output any other html)
|
||||||
|
Flight::route('/json', function () {
|
||||||
|
echo "\n\n\n\n\n";
|
||||||
|
Flight::json(['message' => 'JSON renders successfully!']);
|
||||||
|
echo "\n\n\n\n\n";
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 13: JSONP output (should not output any other html)
|
||||||
|
Flight::route('/jsonp', function () {
|
||||||
|
echo "\n\n\n\n\n";
|
||||||
|
Flight::jsonp(['message' => 'JSONP renders successfully!'], 'jsonp');
|
||||||
|
echo "\n\n\n\n\n";
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::route('/json-halt', function () {
|
||||||
|
Flight::jsonHalt(['message' => 'JSON rendered and halted successfully with no other body content!']);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 10: Halt
|
||||||
|
Flight::route('/halt', function () {
|
||||||
|
Flight::halt(400, 'Halt worked successfully');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Test 11: Redirect
|
||||||
|
Flight::route('/redirect', function () {
|
||||||
|
Flight::redirect('/?redirected=1');
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::set('flight.views.path', './');
|
||||||
|
|
||||||
|
Flight::map('error', function (Throwable $error) {
|
||||||
|
echo "<h1> An error occurred, mapped error method worked, error below </h1>";
|
||||||
|
echo '<pre style="border: 2px solid red; padding: 21px; background: lightgray; font-weight: bold;">';
|
||||||
|
echo str_replace(getenv('PWD'), "***CLASSIFIED*****", $error->getTraceAsString());
|
||||||
|
echo "</pre>";
|
||||||
|
echo "<a href='/'>Go back</a>";
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::map('notFound', function () {
|
||||||
|
echo '<span id="infotext">Route text:</span> The requested URL was not found';
|
||||||
|
echo "<a href='/'>Go back</a>";
|
||||||
|
});
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<style>
|
||||||
|
ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
#infotext {
|
||||||
|
font-weight: bold;
|
||||||
|
color: blueviolet;
|
||||||
|
}
|
||||||
|
li a {
|
||||||
|
display: block;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
padding: 14px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
li a:hover {
|
||||||
|
background-color: #111;
|
||||||
|
}
|
||||||
|
#container {
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 20px 0;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
#debugrequest {
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 20px 0;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/">Root Route</a></li>
|
||||||
|
<li><a href="/test">Test Route</a></li>
|
||||||
|
<li><a href="/user/John">User Route with Parameter (John)</a></li>
|
||||||
|
<li><a href="/group/test">Grouped Test Route</a></li>
|
||||||
|
<li><a href="/group/user/Jane">Grouped User Route with Parameter (Jane)</a></li>
|
||||||
|
<li><a href="/alias">Alias Route</a></li>
|
||||||
|
<li><a href="/protected">Protected path</a></li>
|
||||||
|
<li><a href="/template/templatevariable">Template path</a></li>
|
||||||
|
<li><a href="/querytestpath?test=1&variable2=uuid&variable3=tester">Query path</a></li>
|
||||||
|
<li><a href="/postpage">Post method test page - should be 404</a></li>
|
||||||
|
<li><a href="' . Flight::getUrl('final_group') . '">Mega group</a></li>
|
||||||
|
<li><a href="/error">Error</a></li>
|
||||||
|
<li><a href="/json">JSON</a></li>
|
||||||
|
<li><a href="/jsonp?jsonp=myjson">JSONP</a></li>
|
||||||
|
<li><a href="/json-halt">JSON Halt</a></li>
|
||||||
|
<li><a href="/halt">Halt</a></li>
|
||||||
|
<li><a href="/redirect">Redirect</a></li>
|
||||||
|
</ul>';
|
||||||
|
|
||||||
|
Flight::before('start', function () {
|
||||||
|
echo '<div id="container">';
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::after('start', function () {
|
||||||
|
echo '</div>';
|
||||||
|
echo '<div id="debugrequest">';
|
||||||
|
echo "Request information<pre>";
|
||||||
|
print_r(Flight::request());
|
||||||
|
echo "</pre>";
|
||||||
|
echo "</div>";
|
||||||
|
});
|
||||||
|
|
||||||
|
Flight::start();
|
||||||
Loading…
Reference in new issue