public function testNestedMiddlewareLoad() { $this->setExpectedException('MiddlewareLoadedException'); SimpleRouter::router()->reset(); SimpleRouter::request()->setMethod('get'); SimpleRouter::request()->setUri('/my/test/url'); SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler', 'middleware' => 'DummyMiddleware'], function () { SimpleRouter::get('/my/test/url', 'DummyController@start'); }); SimpleRouter::start(); }
public function testUrls() { SimpleRouter::router()->reset(); SimpleRouter::request()->setMethod('get'); SimpleRouter::request()->setUri('/'); // Match normal route on alias SimpleRouter::get('/', 'DummyController@silent', ['as' => 'home']); SimpleRouter::get('/about', 'DummyController@about'); SimpleRouter::group(['prefix' => '/admin', 'as' => 'admin'], function () { // Match route with prefix on alias SimpleRouter::get('/{id?}', 'DummyController@start', ['as' => 'home']); // Match controller with prefix and alias SimpleRouter::controller('/users', 'DummyController', ['as' => 'users']); // Match controller with prefix and NO alias SimpleRouter::controller('/pages', 'DummyController'); }); SimpleRouter::group(['prefix' => 'api', 'as' => 'api'], function () { // Match resource controller SimpleRouter::resource('phones', 'DummyController'); }); SimpleRouter::controller('gadgets', 'DummyController', ['names' => ['getIphoneInfo' => 'iphone']]); // Match controller with no prefix and no alias SimpleRouter::controller('/cats', 'CatsController'); // Pretend to load page SimpleRouter::start(); $this->assertEquals('/gadgets/iphoneinfo/', $this->getUrl('gadgets.iphone')); $this->assertEquals('/api/phones/create/', $this->getUrl('api.phones.create')); // Should match / $this->assertEquals('/', $this->getUrl('home')); // Should match /about/ $this->assertEquals('/about/', $this->getUrl('DummyController@about')); // Should match /admin/ $this->assertEquals('/admin/', $this->getUrl('DummyController@start')); // Should match /admin/ $this->assertEquals('/admin/', $this->getUrl('admin.home')); // Should match /admin/2/ $this->assertEquals('/admin/2/', $this->getUrl('admin.home', ['id' => 2])); // Should match /admin/users/ $this->assertEquals('/admin/users/', $this->getUrl('admin.users')); // Should match /admin/users/home/ $this->assertEquals('/admin/users/home/', $this->getUrl('admin.users@home')); // Should match /cats/ $this->assertEquals('/cats/', $this->getUrl('CatsController')); // Should match /cats/view/ $this->assertEquals('/cats/view/', $this->getUrl('CatsController', 'view')); // Should match /cats/view/ //$this->assertEquals('/cats/view/', $this->getUrl('CatsController', ['view'])); // Should match /cats/view/666 $this->assertEquals('/cats/view/666/', $this->getUrl('CatsController@getView', ['666'])); // Should match /funny/man/ $this->assertEquals('/funny/man/', $this->getUrl('/funny/man')); // Should match /?jackdaniels=true&cola=yeah $this->assertEquals('/?jackdaniels=true&cola=yeah', $this->getUrl('home', null, ['jackdaniels' => 'true', 'cola' => 'yeah'])); }
public function testUrls() { SimpleRouter::router()->reset(); SimpleRouter::request()->setUri('/my/fancy/url/1'); SimpleRouter::request()->setMethod('get'); // Test array name SimpleRouter::get('/my/fancy/url/1', 'DummyController@start', ['as' => 'fancy1']); // Test method name SimpleRouter::get('/my/fancy/url/2', 'DummyController@start')->setName('fancy2'); SimpleRouter::start(); $this->assertEquals('/my/fancy/url/1/', SimpleRouter::getUrl('fancy1')); $this->assertEquals('/my/fancy/url/2/', SimpleRouter::getUrl('fancy2')); }
public static function start() { debug('Router initialised.'); Session::start(); if (app()->getDisableFrameworkRoutes() === false) { // Load framework specific controllers static::get(app()->getCssWrapRouteUrl(), 'ControllerWrap@css', ['namespace' => '\\Pecee\\Controller'])->setName(app()->getCssWrapRouteName()); static::get(app()->getJsWrapRouteUrl(), 'ControllerWrap@js', ['namespace' => '\\Pecee\\Controller'])->setName(app()->getJsWrapRouteName()); } // Load routes.php require_once $_ENV['base_path'] . 'app' . DIRECTORY_SEPARATOR . 'routes.php'; parent::setDefaultNamespace('\\' . env('APP_NAME') . '\\Controller'); parent::start(); // Output debug info if (env('DEBUG', false) && app()->hasAdminIp() && isset($_GET['__debug']) && strtolower($_GET['__debug']) === 'true') { echo app()->debug; } }
public function testDomainRoute() { SimpleRouter::router()->reset(); SimpleRouter::request()->setMethod('get'); SimpleRouter::request()->setUri('/test'); SimpleRouter::request()->setHost('hello.world.com'); $this->result = false; SimpleRouter::group(['domain' => '{subdomain}.world.com'], function () { SimpleRouter::get('/test', function ($subdomain = null) { $this->result = $subdomain === 'hello'; }); }); SimpleRouter::start(); $this->assertTrue($this->result); }