testing brought in
This commit is contained in:
118
tests/TestCase/View/Helper/ActiveLinkHelperTest.php
Normal file
118
tests/TestCase/View/Helper/ActiveLinkHelperTest.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace CheeseCake\Test\TestCase\View\Helper;
|
||||
|
||||
use Cake\Http\ServerRequest;
|
||||
use Cake\Routing\Route\DashedRoute;
|
||||
use Cake\Routing\RouteBuilder;
|
||||
use Cake\Routing\Router;
|
||||
use Cake\TestSuite\IntegrationTestTrait;
|
||||
use Cake\TestSuite\TestCase;
|
||||
use Cake\View\View;
|
||||
use CheeseCake\View\Helper\ActiveLinkHelper;
|
||||
|
||||
class ActiveLinkHelperTest extends TestCase {
|
||||
|
||||
use IntegrationTestTrait;
|
||||
public function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
// $this->loadRoutes();
|
||||
$routeBuilder = Router::createRouteBuilder('/');
|
||||
$routeBuilder->scope('/', function (RouteBuilder $routes) {
|
||||
$routes->setRouteClass(DashedRoute::class);
|
||||
$routes->get(
|
||||
'/',
|
||||
['controller' => 'Tests', 'action' => 'index'],
|
||||
);
|
||||
$routes->get(
|
||||
'/admin/users',
|
||||
['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
);
|
||||
$routes->get(
|
||||
'/admin/users/view',
|
||||
['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'view'],
|
||||
);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testLinkMatchesString(): void {
|
||||
$request = new ServerRequest(['url' => '/']);
|
||||
$view = new View($request);
|
||||
$helper = new ActiveLinkHelper($view);
|
||||
|
||||
$result = $helper->link('goto', '/', [
|
||||
'target' => '/',
|
||||
'activeClass' => 'awesome-active-class',
|
||||
]);
|
||||
$this->assertStringContainsString('awesome-active-class', $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testLinkMatchesArrayFromCurrent(): void {
|
||||
$request = new ServerRequest();
|
||||
$view = new View($request);
|
||||
$helper = new ActiveLinkHelper($view);
|
||||
|
||||
// matches specific controller action
|
||||
$specificActionResult = $helper->link('goto', ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'], [
|
||||
'target' => ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
'current' => ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
'activeClass' => 'awesome-active-class',
|
||||
]);
|
||||
$this->assertStringContainsString('awesome-active-class', $specificActionResult);
|
||||
|
||||
// match whole controller
|
||||
$wholeControllerResult = $helper->link('goto', [
|
||||
'plugin' => null,
|
||||
'prefix' => 'Admin',
|
||||
'controller' => 'Users',
|
||||
'action' => 'index',
|
||||
], [
|
||||
'current' => ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
'target' => ['prefix' => 'Admin', 'controller' => 'Users'],
|
||||
'activeClass' => 'awesome-active-class',
|
||||
]);
|
||||
$this->assertStringContainsString('awesome-active-class', $wholeControllerResult);
|
||||
|
||||
// match whole prefix
|
||||
$wholePrefixResult = $helper->link('goto', [
|
||||
'prefix' => 'Admin',
|
||||
'controller' => 'Users',
|
||||
'action' => 'index',
|
||||
], [
|
||||
'current' => ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
'target' => ['prefix' => 'Admin'],
|
||||
'activeClass' => 'awesome-active-class',
|
||||
]);
|
||||
$this->assertStringContainsString('awesome-active-class', $wholePrefixResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testLinkDoesNotMatchArray(): void {
|
||||
$request = new ServerRequest();
|
||||
$request = $request->withParam('prefix', 'Admin');
|
||||
$request = $request->withParam('controller', 'Users');
|
||||
$request = $request->withParam('action', 'index');
|
||||
$view = new View($request);
|
||||
$helper = new ActiveLinkHelper($view);
|
||||
|
||||
// matches specific controller action
|
||||
$specificActionResult = $helper->link('goto', ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'], [
|
||||
'target' => ['controller' => 'Events', 'action' => 'index'],
|
||||
'current' => ['prefix' => 'Admin', 'controller' => 'Users', 'action' => 'index'],
|
||||
'activeClass' => 'awesome-active-class',
|
||||
'class' => 'link-class',
|
||||
]);
|
||||
$this->assertStringNotContainsString('awesome-active-class', $specificActionResult);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user