aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Müller <marcel-mueller@gmx.de>2025-04-30 21:48:34 +0200
committerMarcel Müller <marcel-mueller@gmx.de>2025-04-30 21:48:34 +0200
commitddd91793bcea23b2bdd0b5ccd8e4113de6e8ee95 (patch)
tree296370c8dff48e2bdf74f982a874368d5bcbf3fe
parent1addd35b7831d42c9cd0a8c6e50b08a065fd5784 (diff)
downloadnextcloud-server-fix/52278/remove-unused-etag-check.tar.gz
nextcloud-server-fix/52278/remove-unused-etag-check.zip
fix: Add etag tests to NavigationControllerTestfix/52278/remove-unused-etag-check
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
-rw-r--r--tests/Core/Controller/NavigationControllerTest.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/Core/Controller/NavigationControllerTest.php b/tests/Core/Controller/NavigationControllerTest.php
index acbee5a72f0..2df705c2296 100644
--- a/tests/Core/Controller/NavigationControllerTest.php
+++ b/tests/Core/Controller/NavigationControllerTest.php
@@ -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());
+ }
}