Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
fix(settings): define a 'heartbeat' route, so SecurityHeaders can han…
…dle redirected root

Signed-off-by: Steve Mokris <[email protected]>
  • Loading branch information
smokris authored and kesselb committed Jul 10, 2024
commit 1226e79cf1ecea286911851a7c3729b4ae54c8cd
2 changes: 2 additions & 0 deletions core/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,5 @@
// Routing
$this->create('core_ajax_update', '/core/ajax/update.php')
->actionInclude('core/ajax/update.php');

$this->create('heartbeat', '/heartbeat')->get();
20 changes: 15 additions & 5 deletions tests/lib/Route/RouterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,10 @@
* @package Test\Route
*/
class RouterTest extends TestCase {
public function testGenerateConsecutively(): void {
/** @var Router */
private $router;
protected function setUp(): void {
parent::setUp();
/** @var LoggerInterface $logger */
$logger = $this->createMock(LoggerInterface::class);
$logger->method('info')
Expand All @@ -48,20 +51,27 @@ function (string $message, array $data) {
$this->fail('Unexpected info log: '.(string)($data['exception'] ?? $message));
}
);
$router = new Router(
$this->router = new Router(
$logger,
$this->createMock(IRequest::class),
$this->createMock(IConfig::class),
$this->createMock(IEventLogger::class),
$this->createMock(ContainerInterface::class),
);
}

public function testHeartbeat(): void {
$this->assertEquals('/index.php/heartbeat', $this->router->generate('heartbeat'));
}

public function testGenerateConsecutively(): void {

$this->assertEquals('/index.php/apps/files/', $router->generate('files.view.index'));
$this->assertEquals('/index.php/apps/files/', $this->router->generate('files.view.index'));

// the OCS route is the prefixed one for the AppFramework - see /ocs/v1.php for routing details
$this->assertEquals('/index.php/ocsapp/apps/dav/api/v1/direct', $router->generate('ocs.dav.direct.getUrl'));
$this->assertEquals('/index.php/ocsapp/apps/dav/api/v1/direct', $this->router->generate('ocs.dav.direct.getUrl'));

// test caching
$this->assertEquals('/index.php/apps/files/', $router->generate('files.view.index'));
$this->assertEquals('/index.php/apps/files/', $this->router->generate('files.view.index'));
}
}