Basic tests of the Routers AutoRoute method.

This commit is contained in:
Lonnie Ezell 2015-11-29 23:00:03 -06:00
parent 2117c025bb
commit 38cd598690
2 changed files with 53 additions and 1 deletions

View File

@ -241,7 +241,7 @@ class Router implements RouterInterface
$segments = $this->validateRequest($segments); $segments = $this->validateRequest($segments);
// If we don't have aany segments left - try the default controller; // If we don't have any segments left - try the default controller;
// WARNING: Directories get shifted out of tge segments array. // WARNING: Directories get shifted out of tge segments array.
if (empty($segments)) if (empty($segments))
{ {

View File

@ -1,6 +1,10 @@
<?php <?php
require_once '../../vendor/autoload.php';
use CodeIgniter\Router\Router; use CodeIgniter\Router\Router;
use org\bovigo\vfs\vfsStream;
class RouterTest extends PHPUnit_Framework_TestCase class RouterTest extends PHPUnit_Framework_TestCase
{ {
@ -10,6 +14,12 @@ class RouterTest extends PHPUnit_Framework_TestCase
*/ */
protected $collection; protected $collection;
/**
* vfsStream root directory
* @var
*/
protected $root;
public function setUp() public function setUp()
{ {
$this->collection = new \CodeIgniter\Router\RouteCollection(); $this->collection = new \CodeIgniter\Router\RouteCollection();
@ -25,6 +35,8 @@ class RouterTest extends PHPUnit_Framework_TestCase
]; ];
$this->collection->map($routes); $this->collection->map($routes);
$this->root = vfsStream::setup(APPPATH.'controllers');
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
@ -134,4 +146,44 @@ class RouterTest extends PHPUnit_Framework_TestCase
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
public function testAutoRouteFindsControllerWithFileAndMethod()
{
$router = new Router($this->collection);
$router->autoRoute('myController/someMethod');
$this->assertEquals('MyController', $router->controllerName());
$this->assertEquals('someMethod', $router->methodName());
}
//--------------------------------------------------------------------
public function testAutoRouteFindsControllerWithFile()
{
$router = new Router($this->collection);
$router->autoRoute('myController');
$this->assertEquals('MyController', $router->controllerName());
$this->assertEquals('index', $router->methodName());
}
//--------------------------------------------------------------------
public function testAutoRouteFindsControllerWithSubfolder()
{
$router = new Router($this->collection);
mkdir(APPPATH.'controllers/subfolder');
$router->autoRoute('subfolder/myController/someMethod');
rmdir(APPPATH.'controllers/subfolder');
$this->assertEquals('MyController', $router->controllerName());
$this->assertEquals('someMethod', $router->methodName());
}
//--------------------------------------------------------------------
} }