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']));
 }
예제 #3
0
 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'));
 }
예제 #4
0
 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);
 }