aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Command/Integrity
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Command/Integrity')
-rw-r--r--tests/lib/Command/Integrity/SignAppTest.php295
-rw-r--r--tests/lib/Command/Integrity/SignCoreTest.php218
2 files changed, 223 insertions, 290 deletions
diff --git a/tests/lib/Command/Integrity/SignAppTest.php b/tests/lib/Command/Integrity/SignAppTest.php
index fefed296a0c..237afe3a5b5 100644
--- a/tests/lib/Command/Integrity/SignAppTest.php
+++ b/tests/lib/Command/Integrity/SignAppTest.php
@@ -1,22 +1,9 @@
<?php
+
/**
- * @author Lukas Reschke <lukas@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace Test\Command\Integrity;
@@ -51,193 +38,187 @@ class SignAppTest extends TestCase {
);
}
- public function testExecuteWithMissingPath() {
+ public function testExecuteWithMissingPath(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn(null);
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('PrivateKey');
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('Certificate');
-
+ ->willReturnMap([
+ ['path', null],
+ ['privateKey', 'PrivateKey'],
+ ['certificate', 'Certificate'],
+ ]);
+
+ $calls = [
+ 'This command requires the --path, --privateKey and --certificate.',
+ '*',
+ '*',
+ ];
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('This command requires the --path, --privateKey and --certificate.');
+ ->willReturnCallback(function (string $message) use (&$calls): void {
+ $expected = array_shift($calls);
+ if ($expected === '*') {
+ $this->assertNotEmpty($message);
+ } else {
+ $this->assertEquals($expected, $message);
+ }
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithMissingPrivateKey() {
+ public function testExecuteWithMissingPrivateKey(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn(null);
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('Certificate');
-
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', null],
+ ['certificate', 'Certificate'],
+ ]);
+
+ $calls = [
+ 'This command requires the --path, --privateKey and --certificate.',
+ '*',
+ '*',
+ ];
$outputInterface
- ->expects($this->at(0))
- ->method('writeln')
- ->with('This command requires the --path, --privateKey and --certificate.');
+ ->expects($this->any())
+ ->method('writeln')
+ ->willReturnCallback(function (string $message) use (&$calls): void {
+ $expected = array_shift($calls);
+ if ($expected === '*') {
+ $this->assertNotEmpty($message);
+ } else {
+ $this->assertEquals($expected, $message);
+ }
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithMissingCertificate() {
+ public function testExecuteWithMissingCertificate(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn(null);
-
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', 'PrivateKey'],
+ ['certificate', null],
+ ]);
+
+ $calls = [
+ 'This command requires the --path, --privateKey and --certificate.',
+ '*',
+ '*',
+ ];
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('This command requires the --path, --privateKey and --certificate.');
+ ->willReturnCallback(function (string $message) use (&$calls): void {
+ $expected = array_shift($calls);
+ if ($expected === '*') {
+ $this->assertNotEmpty($message);
+ } else {
+ $this->assertEquals($expected, $message);
+ }
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithNotExistingPrivateKey() {
+ public function testExecuteWithNotExistingPrivateKey(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(false);
+ ->willReturnMap([
+ ['privateKey', false],
+ ]);
+
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Private key "privateKey" does not exists.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Private key "privateKey" does not exists.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithNotExistingCertificate() {
+ public function testExecuteWithNotExistingCertificate(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
- ->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key');
- $this->fileAccessHelper
- ->expects($this->at(1))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('certificate')
- ->willReturn(false);
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', false],
+ ]);
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Certificate "certificate" does not exists.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Certificate "certificate" does not exists.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithException() {
+ public function testExecuteWithException(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(2))
- ->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key'));
- $this->fileAccessHelper
- ->expects($this->at(1))
- ->method('file_get_contents')
- ->with('certificate')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'));
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', \OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'],
+ ]);
$this->checker
->expects($this->once())
@@ -245,52 +226,46 @@ class SignAppTest extends TestCase {
->willThrowException(new \Exception('My error message'));
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Error: My error message');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Error: My error message', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecute() {
+ public function testExecute(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('path')
- ->willReturn('AppId');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(2))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['path', 'AppId'],
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
- ->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key'));
- $this->fileAccessHelper
- ->expects($this->at(1))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('certificate')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'));
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', \OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'],
+ ]);
$this->checker
->expects($this->once())
->method('writeAppSignature');
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Successfully signed "AppId"');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Successfully signed "AppId"', $message);
+ });
$this->assertSame(0, self::invokePrivate($this->signApp, 'execute', [$inputInterface, $outputInterface]));
}
diff --git a/tests/lib/Command/Integrity/SignCoreTest.php b/tests/lib/Command/Integrity/SignCoreTest.php
index 3b7fe7f3a8b..843084eebd9 100644
--- a/tests/lib/Command/Integrity/SignCoreTest.php
+++ b/tests/lib/Command/Integrity/SignCoreTest.php
@@ -1,22 +1,9 @@
<?php
+
/**
- * @author Lukas Reschke <lukas@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
namespace Test\Command\Integrity;
@@ -46,155 +33,132 @@ class SignCoreTest extends TestCase {
);
}
- public function testExecuteWithMissingPrivateKey() {
+ public function testExecuteWithMissingPrivateKey(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn(null);
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('Certificate');
+ ->willReturnMap([
+ ['privateKey', null],
+ ['certificate', 'certificate'],
+ ['path', 'certificate'],
+ ]);
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('--privateKey, --certificate and --path are required.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('--privateKey, --certificate and --path are required.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithMissingCertificate() {
+ public function testExecuteWithMissingCertificate(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(1))
- ->method('getOption')
- ->with('certificate')
- ->willReturn(null);
+ ->willReturnMap([
+ ['privateKey', 'privateKey'],
+ ['certificate', null],
+ ['path', 'certificate'],
+ ]);
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('--privateKey, --certificate and --path are required.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('--privateKey, --certificate and --path are required.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithNotExistingPrivateKey() {
+ public function testExecuteWithNotExistingPrivateKey(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
- $inputInterface
- ->expects($this->at(2))
- ->method('getOption')
- ->with('path')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ['path', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(false);
+ ->willReturnMap([
+ ['privateKey', false],
+ ]);
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Private key "privateKey" does not exists.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Private key "privateKey" does not exists.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithNotExistingCertificate() {
+ public function testExecuteWithNotExistingCertificate(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
- $inputInterface
- ->expects($this->at(2))
- ->method('getOption')
- ->with('path')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ['path', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
- ->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key'));
- $this->fileAccessHelper
- ->expects($this->at(1))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('certificate')
- ->willReturn(false);
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', false],
+ ]);
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Certificate "certificate" does not exists.');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Certificate "certificate" does not exists.', $message);
+ });
$this->assertSame(1, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecuteWithException() {
+ public function testExecuteWithException(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
- $inputInterface
- ->expects($this->at(2))
- ->method('getOption')
- ->with('path')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ['path', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
- ->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key'));
- $this->fileAccessHelper
- ->expects($this->at(1))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('certificate')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'));
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt')],
+ ]);
$this->checker
->expects($this->once())
@@ -202,52 +166,46 @@ class SignCoreTest extends TestCase {
->willThrowException(new \Exception('My exception message'));
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Error: My exception message');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Error: My exception message', $message);
+ });
$this->assertEquals(1, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}
- public function testExecute() {
+ public function testExecute(): void {
$inputInterface = $this->createMock(InputInterface::class);
$outputInterface = $this->createMock(OutputInterface::class);
$inputInterface
- ->expects($this->at(0))
- ->method('getOption')
- ->with('privateKey')
- ->willReturn('privateKey');
- $inputInterface
- ->expects($this->at(1))
+ ->expects($this->exactly(3))
->method('getOption')
- ->with('certificate')
- ->willReturn('certificate');
- $inputInterface
- ->expects($this->at(2))
- ->method('getOption')
- ->with('path')
- ->willReturn('certificate');
+ ->willReturnMap([
+ ['privateKey', 'privateKey'],
+ ['certificate', 'certificate'],
+ ['path', 'certificate'],
+ ]);
$this->fileAccessHelper
- ->expects($this->at(0))
- ->method('file_get_contents')
- ->with('privateKey')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key'));
- $this->fileAccessHelper
- ->expects($this->at(1))
+ ->expects($this->any())
->method('file_get_contents')
- ->with('certificate')
- ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt'));
+ ->willReturnMap([
+ ['privateKey', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.key')],
+ ['certificate', file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/core.crt')],
+ ]);
$this->checker
->expects($this->once())
->method('writeCoreSignature');
$outputInterface
- ->expects($this->at(0))
+ ->expects($this->any())
->method('writeln')
- ->with('Successfully signed "core"');
+ ->willReturnCallback(function (string $message): void {
+ $this->assertEquals('Successfully signed "core"', $message);
+ });
$this->assertEquals(0, self::invokePrivate($this->signCore, 'execute', [$inputInterface, $outputInterface]));
}