Select Git revision
StudipControllerTest.php
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
-
Elmar Ludwig authored
Closes #1105 Merge request studip/studip!661
Elmar Ludwig authoredCloses #1105 Merge request studip/studip!661
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
StudipControllerTest.php 7.88 KiB
<?php
/**
* StudipControllerTest.php - unit tests for the StudipController class
*
* @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
* @license GPL2 or any later version
*
* @covers StudipController
*/
final class StudipControllerTest extends Codeception\Test\Unit
{
private $old_uri;
public function setUp(): void
{
parent::setUp();
$this->old_uri = $GLOBALS['ABSOLUTE_URI_STUDIP'] ?? null;
$GLOBALS['ABSOLUTE_URI_STUDIP'] = 'https://studip.example.org/';
}
public function tearDown(): void
{
$GLOBALS['ABSOLUTE_URI_STUDIP'] = $this->old_uri;
parent::tearDown();
}
private function getDispatcher(): Trails_Dispatcher
{
$trails_root = $GLOBALS['STUDIP_BASE_PATH'] . DIRECTORY_SEPARATOR . 'app';
$trails_uri = rtrim($GLOBALS['ABSOLUTE_URI_STUDIP'], '/') . '/dispatch.php';
$default_controller = 'default';
return new Trails_Dispatcher($trails_root, $trails_uri, $default_controller);
}
private function getController(): StudipController
{
$dispatcher = $this->getDispatcher();
return new StudipControllerTestController($dispatcher);
}
/**
* @dataProvider UrlForProvider
* @covers StudipController::url_for
*/
public function testUrlFor(string $expected, ...$args): void
{
$url = $this->getController()->url_for(...$args);
$this->assertEquals(
$expected,
$this->getRelativeURL($url)
);
}
/**
* @dataProvider absoluteUrlForProvider
* @covers StudipController::url_for
*/
public function testUrlForWithAbsoluteURL(...$args): void
{
$this->expectException(InvalidArgumentException::class);
$this->getController()->url_for(...$args);
}
/**
* @dataProvider actionUrlProvider
* @covers StudipController::action_url