mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-16 02:30:09 +03:00
Development
- Added event-arguments data. - Added event-arguments to the event list in documentation. - Fixed missing exceptions thrown in phpDocs. - Added unit-tests for new event functionality.
This commit is contained in:
@@ -4,6 +4,7 @@ require_once 'Dummy/DummyMiddleware.php';
|
||||
require_once 'Dummy/DummyController.php';
|
||||
require_once 'Dummy/Handler/ExceptionHandler.php';
|
||||
require_once 'Dummy/Security/SilentTokenProvider.php';
|
||||
require_once 'Dummy/Managers/TestBootManager.php';
|
||||
|
||||
use \Pecee\SimpleRouter\Handlers\EventHandler;
|
||||
use \Pecee\SimpleRouter\Event\EventArgument;
|
||||
@@ -11,21 +12,22 @@ use \Pecee\SimpleRouter\Event\EventArgument;
|
||||
class EventHandlerTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
|
||||
public function testMissingEvents() {
|
||||
|
||||
public function testAllEventTriggered()
|
||||
{
|
||||
$events = EventHandler::$events;
|
||||
|
||||
// Remove the all event
|
||||
unset($events[\array_search(EventHandler::EVENT_ALL, $events, true)], $events[\array_search(EventHandler::EVENT_REWRITE, $events, true)]);
|
||||
unset($events[\array_search(EventHandler::EVENT_ALL, $events, true)]);
|
||||
|
||||
$eventHandler = new EventHandler();
|
||||
$eventHandler->register(EventHandler::EVENT_ALL, function(EventArgument $arg) use(&$events) {
|
||||
$eventHandler->register(EventHandler::EVENT_ALL, function (EventArgument $arg) use (&$events) {
|
||||
$key = \array_search($arg->getEventName(), $events, true);
|
||||
unset($events[$key]);
|
||||
});
|
||||
|
||||
TestRouter::addEventHandler($eventHandler);
|
||||
|
||||
// Add rewrite
|
||||
TestRouter::error(function (\Pecee\Http\Request $request, \Exception $error) {
|
||||
|
||||
// Trigger rewrite
|
||||
@@ -35,28 +37,36 @@ class EventHandlerTest extends \PHPUnit\Framework\TestCase
|
||||
|
||||
TestRouter::get('/', 'DummyController@method1')->name('home');
|
||||
|
||||
// Trigger findRoute
|
||||
TestRouter::router()->findRoute('home');
|
||||
|
||||
// Trigger getUrl
|
||||
TestRouter::router()->getUrl('home');
|
||||
|
||||
// Add csrf-verifier
|
||||
$csrfVerifier = new \Pecee\Http\Middleware\BaseCsrfVerifier();
|
||||
$csrfVerifier->setTokenProvider(new SilentTokenProvider());
|
||||
TestRouter::csrfVerifier($csrfVerifier);
|
||||
|
||||
TestRouter::debug('/not-existing');
|
||||
// Add boot-manager
|
||||
TestRouter::addBootManager(new TestBootManager([
|
||||
'/test',
|
||||
], '/'));
|
||||
|
||||
// Start router
|
||||
TestRouter::debug('/non-existing');
|
||||
|
||||
$this->assertEquals($events, []);
|
||||
|
||||
TestRouter::router()->reset();
|
||||
|
||||
}
|
||||
|
||||
public function testAllEvent() {
|
||||
public function testAllEvent()
|
||||
{
|
||||
|
||||
$status = 0;
|
||||
$status = false;
|
||||
|
||||
$eventHandler = new EventHandler();
|
||||
$eventHandler->register(EventHandler::EVENT_ALL, function(EventArgument $arg) use(&$status) {
|
||||
$status++;
|
||||
$eventHandler->register(EventHandler::EVENT_ALL, function (EventArgument $arg) use (&$status) {
|
||||
$status = true;
|
||||
});
|
||||
|
||||
TestRouter::addEventHandler($eventHandler);
|
||||
@@ -65,11 +75,7 @@ class EventHandlerTest extends \PHPUnit\Framework\TestCase
|
||||
TestRouter::debug('/');
|
||||
|
||||
// All event should fire for each other event
|
||||
$this->assertEquals(\count(EventHandler::$events), $status);
|
||||
}
|
||||
|
||||
public function testEvents() {
|
||||
$this->assertEquals(true, true);
|
||||
$this->assertEquals(true, $status);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user