mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-15 18:23:26 +03:00
- Updated `helpers.php` and helpers example in documentation. - MalformedUrlException is now handled properly by Router to avoid phpStorm syntax highlights in routes. - Added `getUrlCopy` to `Request` class, used to clone the current route (to keep domain etc.) - `setUrl` in `Request` are now strict and requires `Url` object and no longer accepts strings. - Renamed `hasRewrite` property to `hasPendingRewrite` in `Request` class. - Renamed `hasRewrite` and `setHasRewrite` methods to `hasPendingRewrite` and `setHasPendingRewrite` in `Request` class. - Added better usage of `Url` class. When calling `url` you can now use the methods on the `Url` class to filter params, get relative/absolute url etc. See documentation for more info. - Renamed `get` method to `getValue` in `InputHandler` class. - Renamed `getObject` to `get` and removed `$defaultValue` argument in `InputHandler` class. - Optimized `InputHandler` class. - Fixed issue with `$token` not being proper string in `BaseCsrfVerifier` when token is not found. - Added php.ini configuration settings to `setcookie` in `CookieTokenProvider` for improved security. - Added `$router` parameter to `boot` method in `IRouterBootManager` which allows for further manipulation of the router within the bootmanager. - Renamed `$processingRoute` property to `$isProcessingRoute` in `Router` class. - Fixed `reset` method not resetting CSRF-verifier in `Router` class. - Moved `arrayToParams` helper-method from `Router` to `Url` class. - Began to add Event-functionality to router. - Added `addEventHandler` method to `SimpleRouter` class. - Moved `Pecee\SimpleRouter\Handler\CallbackExceptionHandler` to `Pecee\SimpleRouter\Handlers\CallbackExceptionHandler`. - Moved `Pecee\SimpleRouter\Handler\IExceptionHandler` to `Pecee\SimpleRouter\Handlers\IExceptionHandler`. - Added Events section to documentation. - Added more information on url-handling in documentation. - Optimisations.
75 lines
2.1 KiB
PHP
75 lines
2.1 KiB
PHP
<?php
|
|
|
|
require_once 'Dummy/DummyMiddleware.php';
|
|
require_once 'Dummy/DummyController.php';
|
|
require_once 'Dummy/Handler/ExceptionHandler.php';
|
|
require_once 'Dummy/Security/SilentTokenProvider.php';
|
|
|
|
use \Pecee\SimpleRouter\Handlers\EventHandler;
|
|
use \Pecee\SimpleRouter\Event\EventArgument;
|
|
|
|
class EventHandlerTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
|
|
public function testMissingEvents() {
|
|
|
|
$events = EventHandler::$events;
|
|
|
|
// Remove the all event
|
|
unset($events[\array_search(EventHandler::EVENT_ALL, $events, true)], $events[\array_search(EventHandler::EVENT_REWRITE, $events, true)]);
|
|
|
|
$eventHandler = new EventHandler();
|
|
$eventHandler->register(EventHandler::EVENT_ALL, function(EventArgument $arg) use(&$events) {
|
|
$key = \array_search($arg->getEventName(), $events, true);
|
|
unset($events[$key]);
|
|
});
|
|
|
|
TestRouter::addEventHandler($eventHandler);
|
|
|
|
TestRouter::error(function (\Pecee\Http\Request $request, \Exception $error) {
|
|
|
|
// Trigger rewrite
|
|
$request->setRewriteUrl('/');
|
|
|
|
});
|
|
|
|
TestRouter::get('/', 'DummyController@method1')->name('home');
|
|
|
|
TestRouter::router()->findRoute('home');
|
|
TestRouter::router()->getUrl('home');
|
|
|
|
$csrfVerifier = new \Pecee\Http\Middleware\BaseCsrfVerifier();
|
|
$csrfVerifier->setTokenProvider(new SilentTokenProvider());
|
|
TestRouter::csrfVerifier($csrfVerifier);
|
|
|
|
TestRouter::debug('/not-existing');
|
|
|
|
$this->assertEquals($events, []);
|
|
|
|
TestRouter::router()->reset();
|
|
|
|
}
|
|
|
|
public function testAllEvent() {
|
|
|
|
$status = 0;
|
|
|
|
$eventHandler = new EventHandler();
|
|
$eventHandler->register(EventHandler::EVENT_ALL, function(EventArgument $arg) use(&$status) {
|
|
$status++;
|
|
});
|
|
|
|
TestRouter::addEventHandler($eventHandler);
|
|
|
|
TestRouter::get('/', 'DummyController@method1');
|
|
TestRouter::debug('/');
|
|
|
|
// All event should fire for each other event
|
|
$this->assertEquals(\count(EventHandler::$events), $status);
|
|
}
|
|
|
|
public function testEvents() {
|
|
$this->assertEquals(true, true);
|
|
}
|
|
|
|
} |