clam2021/vendor/slim/twig-view/tests/TwigExtensionTest.php
2021-05-13 13:04:00 -03:00

92 lines
2.9 KiB
PHP

<?php
/**
* Slim Framework (http://slimframework.com)
*
* @link https://github.com/codeguy/Slim
* @copyright Copyright (c) 2011-2015 Josh Lockhart
* @license https://github.com/codeguy/Slim/blob/master/LICENSE (MIT License)
*/
namespace Slim\Tests\Views;
use Slim\Http\Uri;
use Slim\Router;
use Slim\Views\TwigExtension;
require dirname(__DIR__) . '/vendor/autoload.php';
class TwigExtensionTest extends \PHPUnit_Framework_TestCase
{
public function isCurrentPathProvider()
{
$router = new Router();
$router->map(['GET'], '/hello/{name}', null)->setName('foo');
$uri = Uri::createFromString('http://example.com/hello/world');
$uri2 = $uri->withBasePath('bar');
$router->map(['GET'], '/bar/hello/{name}', null)->setName('bar');
return [
[$router, $uri, 'foo', ['name' => 'world'], true],
[$router, $uri2, 'bar', ['name' => 'world'], true],
[$router, $uri, 'bar', ['name' => 'world'], false],
];
}
/**
* @dataProvider isCurrentPathProvider
*/
public function testIsCurrentPath($router, $uri, $name, $data, $expected)
{
$extension = new TwigExtension($router, $uri);
$result = $extension->isCurrentPath($name, $data);
$this->assertEquals($expected, $result);
}
public function currentPathProvider()
{
$router = new Router();
$router->map(['GET'], '/hello/{name}', null)->setName('foo');
$uri = Uri::createFromString('http://example.com/hello/world?a=b');
$uri2 = $uri->withBasePath('bar');
$router->map(['GET'], '/bar/hello/{name}', null)->setName('bar');
return [
[$router, '/foo', false, '/foo'],
[$router, '/foo', true, '/foo'], // string based URI doesn't care about $withQueryString
[$router, $uri, false, '/hello/world'],
[$router, $uri, true, '/hello/world?a=b'],
[$router, $uri2, false, '/bar/hello/world'],
[$router, $uri2, true, '/bar/hello/world?a=b'],
];
}
/**
* @dataProvider currentPathProvider
*/
public function testCurrentPath($router, $uri, $withQueryString, $expected)
{
$extension = new TwigExtension($router, $uri);
$result = $extension->currentPath($withQueryString);
$this->assertEquals($expected, $result);
}
public function testFullUrlFor()
{
$router = new Router();
$router->setBasePath('/app');
$router->map(['GET'], '/activate/{token}', null)->setName('activate');
$uri = Uri::createFromString('http://example.com/app/hello/world?a=b');
$extension = new TwigExtension($router, $uri);
$result = $extension->fullUrlFor('activate', ['token' => 'foo']);
$expected = 'http://example.com/app/activate/foo';
$this->assertEquals($expected, $result);
}
}