aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Security/CSRF/CsrfTokenTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Security/CSRF/CsrfTokenTest.php')
-rw-r--r--tests/lib/Security/CSRF/CsrfTokenTest.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/lib/Security/CSRF/CsrfTokenTest.php b/tests/lib/Security/CSRF/CsrfTokenTest.php
new file mode 100644
index 00000000000..5b5ba5ae54f
--- /dev/null
+++ b/tests/lib/Security/CSRF/CsrfTokenTest.php
@@ -0,0 +1,37 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+namespace Test\Security\CSRF;
+
+use OC\Security\CSRF\CsrfToken;
+
+class CsrfTokenTest extends \Test\TestCase {
+ public function testGetEncryptedValue(): void {
+ $csrfToken = new CsrfToken('MyCsrfToken');
+ $this->assertSame(33, strlen($csrfToken->getEncryptedValue()));
+ $this->assertSame(':', $csrfToken->getEncryptedValue()[16]);
+ }
+
+ public function testGetEncryptedValueStaysSameOnSecondRequest(): void {
+ $csrfToken = new CsrfToken('MyCsrfToken');
+ $tokenValue = $csrfToken->getEncryptedValue();
+ $this->assertSame($tokenValue, $csrfToken->getEncryptedValue());
+ $this->assertSame($tokenValue, $csrfToken->getEncryptedValue());
+ }
+
+ public function testGetDecryptedValue(): void {
+ $a = 'abc';
+ $b = 'def';
+ $xorB64 = 'BQcF';
+ $tokenVal = sprintf('%s:%s', $xorB64, base64_encode($a));
+ $csrfToken = new CsrfToken($tokenVal);
+ $this->assertSame($b, $csrfToken->getDecryptedValue());
+ }
+}