fix: Add etag tests to NavigationControllerTest

Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
This commit is contained in:
Marcel Müller 2025-04-30 21:48:34 +02:00
parent 1addd35b78
commit ddd91793bc

View file

@ -102,4 +102,36 @@ class NavigationControllerTest extends TestCase {
$this->assertEquals('/core/img/settings.svg', $actual->getData()[0]['icon']);
}
}
public function testEtagIgnoresLogout(): void {
$navigation1 = [
['id' => 'files', 'href' => '/index.php/apps/files', 'icon' => 'icon' ],
['id' => 'logout', 'href' => '/index.php/logout?requesttoken=abcd', 'icon' => 'icon' ],
];
$navigation2 = [
['id' => 'files', 'href' => '/index.php/apps/files', 'icon' => 'icon' ],
['id' => 'logout', 'href' => '/index.php/logout?requesttoken=1234', 'icon' => 'icon' ],
];
$navigation3 = [
['id' => 'files', 'href' => '/index.php/apps/files/test', 'icon' => 'icon' ],
['id' => 'logout', 'href' => '/index.php/logout?requesttoken=1234', 'icon' => 'icon' ],
];
$this->navigationManager->expects($this->exactly(3))
->method('getAll')
->with('link')
->willReturnOnConsecutiveCalls(
$navigation1,
$navigation2,
$navigation3,
);
// Changes in the logout url should not change the ETag
$request1 = $this->controller->getAppsNavigation();
$request2 = $this->controller->getAppsNavigation();
$this->assertEquals($request1->getETag(), $request2->getETag());
// Changes in non-logout urls should result in a different ETag
$request3 = $this->controller->getAppsNavigation();
$this->assertNotEquals($request2->getETag(), $request3->getETag());
}
}