diff options
author | Marcel Müller <marcel-mueller@gmx.de> | 2025-04-30 21:48:34 +0200 |
---|---|---|
committer | Marcel Müller <marcel-mueller@gmx.de> | 2025-04-30 21:48:34 +0200 |
commit | ddd91793bcea23b2bdd0b5ccd8e4113de6e8ee95 (patch) | |
tree | 296370c8dff48e2bdf74f982a874368d5bcbf3fe | |
parent | 1addd35b7831d42c9cd0a8c6e50b08a065fd5784 (diff) | |
download | nextcloud-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.php | 32 |
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()); + } } |