summaryrefslogtreecommitdiff
path: root/tests/units/Core/Http/RouteTest.php
diff options
context:
space:
mode:
authorBusfreak <Busfreak@users.noreply.github.com>2015-12-23 00:18:32 +0100
committerBusfreak <Busfreak@users.noreply.github.com>2015-12-23 00:18:32 +0100
commit050d69091822641dabd0ded1b6023b7ef9f90311 (patch)
tree7a6698152aafc9f1eece503f5fa4d4a772782fcd /tests/units/Core/Http/RouteTest.php
parentbe2fde7cc01228ad4526e05d77a3d4865e550357 (diff)
parent8ff2032ea3fa49972fe076166c831719131e829d (diff)
Merge pull request #1 from fguillot/master
please merge
Diffstat (limited to 'tests/units/Core/Http/RouteTest.php')
-rw-r--r--tests/units/Core/Http/RouteTest.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/units/Core/Http/RouteTest.php b/tests/units/Core/Http/RouteTest.php
new file mode 100644
index 00000000..5e44ad00
--- /dev/null
+++ b/tests/units/Core/Http/RouteTest.php
@@ -0,0 +1,79 @@
+<?php
+
+require_once __DIR__.'/../../Base.php';
+
+use Kanboard\Core\Http\Route;
+
+class RouteTest extends Base
+{
+ public function testFindParams()
+ {
+ $route = new Route($this->container);
+ $route->enable();
+
+ $this->assertEquals(array('p1' => true, 'p2' => true), $route->findParams(array('something', ':p1', ':p2')));
+ $this->assertEquals(array('p1' => true), $route->findParams(array('something', ':p1', '')));
+ $this->assertEquals(array('p1' => true), $route->findParams(array('something', ':p1', 'something else')));
+ }
+
+ public function testFindRoute()
+ {
+ $route = new Route($this->container);
+ $route->enable();
+
+ $route->addRoute('/mycontroller/myaction', 'mycontroller', 'myaction');
+ $this->assertEquals(
+ array('controller' => 'mycontroller', 'action' => 'myaction', 'plugin' => ''),
+ $route->findRoute('/mycontroller/myaction')
+ );
+
+ $route->addRoute('/a/b/c', 'mycontroller', 'myaction', 'myplugin');
+ $this->assertEquals(
+ array('controller' => 'mycontroller', 'action' => 'myaction', 'plugin' => 'myplugin'),
+ $route->findRoute('/a/b/c')
+ );
+
+ $this->assertEquals(
+ array('controller' => 'app', 'action' => 'index', 'plugin' => ''),
+ $route->findRoute('/notfound')
+ );
+
+ $route->addRoute('/a/b/:c', 'mycontroller', 'myaction', 'myplugin');
+ $this->assertEquals(
+ array('controller' => 'mycontroller', 'action' => 'myaction', 'plugin' => 'myplugin'),
+ $route->findRoute('/a/b/myvalue')
+ );
+
+ $this->assertEquals('myvalue', $this->container['request']->getStringParam('c'));
+
+ $route->addRoute('/a/:p1/b/:p2', 'mycontroller', 'myaction');
+ $this->assertEquals(
+ array('controller' => 'mycontroller', 'action' => 'myaction', 'plugin' => ''),
+ $route->findRoute('/a/v1/b/v2')
+ );
+
+ $this->assertEquals('v1', $this->container['request']->getStringParam('p1'));
+ $this->assertEquals('v2', $this->container['request']->getStringParam('p2'));
+ }
+
+ public function testFindUrl()
+ {
+ $route = new Route($this->container);
+ $route->enable();
+ $route->addRoute('a/b', 'controller1', 'action1');
+ $route->addRoute('a/:myvar1/b/:myvar2', 'controller2', 'action2');
+ $route->addRoute('/something', 'controller1', 'action1', 'myplugin');
+ $route->addRoute('/myplugin/myroute', 'controller1', 'action2', 'myplugin');
+ $route->addRoute('/foo/:myvar', 'controller1', 'action3', 'myplugin');
+
+ $this->assertEquals('a/1/b/2', $route->findUrl('controller2', 'action2', array('myvar1' => 1, 'myvar2' => 2)));
+ $this->assertEquals('', $route->findUrl('controller2', 'action2', array('myvar1' => 1)));
+ $this->assertEquals('a/b', $route->findUrl('controller1', 'action1'));
+ $this->assertEquals('', $route->findUrl('controller1', 'action2'));
+
+ $this->assertEquals('myplugin/myroute', $route->findUrl('controller1', 'action2', array(), 'myplugin'));
+ $this->assertEquals('something', $route->findUrl('controller1', 'action1', array(), 'myplugin'));
+ $this->assertEquals('foo/123', $route->findUrl('controller1', 'action3', array('myvar' => 123), 'myplugin'));
+ $this->assertEquals('foo/123', $route->findUrl('controller1', 'action3', array('myvar' => 123, 'plugin' => 'myplugin')));
+ }
+}