Explorar el Código

Merge pull request #38701 from nextcloud/fix/noid/oauth2-tests

Fix oauth2 tests
Daniel hace 1 año
padre
commit
faf0e634db

+ 44 - 24
apps/oauth2/tests/Controller/OauthApiControllerTest.php

@@ -203,16 +203,21 @@ class OauthApiControllerTest extends TestCase {
 
 		$client = new Client();
 		$client->setClientIdentifier('clientId');
-		$client->setSecret('clientSecret');
+		$client->setSecret('encryptedClientSecret');
 		$this->clientMapper->method('getByUid')
 			->with(42)
 			->willReturn($client);
 
-		$this->crypto->method('decrypt')
-			->with(
-				'encryptedToken',
-				'validrefresh'
-			)->willReturn('decryptedToken');
+		$this->crypto
+			->method('decrypt')
+			->with($this->callback(function (string $text) {
+				return $text === 'encryptedClientSecret' || $text === 'encryptedToken';
+			}))
+			->willReturnCallback(function (string $text) {
+				return $text === 'encryptedClientSecret'
+					? 'clientSecret'
+					: ($text === 'encryptedToken' ? 'decryptedToken' : '');
+			});
 
 		$this->tokenProvider->method('getTokenById')
 			->with(1337)
@@ -237,16 +242,21 @@ class OauthApiControllerTest extends TestCase {
 
 		$client = new Client();
 		$client->setClientIdentifier('clientId');
-		$client->setSecret('clientSecret');
+		$client->setSecret('encryptedClientSecret');
 		$this->clientMapper->method('getByUid')
 			->with(42)
 			->willReturn($client);
 
-		$this->crypto->method('decrypt')
-			->with(
-				'encryptedToken',
-				'validrefresh'
-			)->willReturn('decryptedToken');
+		$this->crypto
+			->method('decrypt')
+			->with($this->callback(function (string $text) {
+				return $text === 'encryptedClientSecret' || $text === 'encryptedToken';
+			}))
+			->willReturnCallback(function (string $text) {
+				return $text === 'encryptedClientSecret'
+					? 'clientSecret'
+					: ($text === 'encryptedToken' ? 'decryptedToken' : '');
+			});
 
 		$appToken = new PublicKeyToken();
 		$appToken->setUid('userId');
@@ -329,16 +339,21 @@ class OauthApiControllerTest extends TestCase {
 
 		$client = new Client();
 		$client->setClientIdentifier('clientId');
-		$client->setSecret('clientSecret');
+		$client->setSecret('encryptedClientSecret');
 		$this->clientMapper->method('getByUid')
 			->with(42)
 			->willReturn($client);
 
-		$this->crypto->method('decrypt')
-			->with(
-				'encryptedToken',
-				'validrefresh'
-			)->willReturn('decryptedToken');
+		$this->crypto
+			->method('decrypt')
+			->with($this->callback(function (string $text) {
+				return $text === 'encryptedClientSecret' || $text === 'encryptedToken';
+			}))
+			->willReturnCallback(function (string $text) {
+				return $text === 'encryptedClientSecret'
+					? 'clientSecret'
+					: ($text === 'encryptedToken' ? 'decryptedToken' : '');
+			});
 
 		$appToken = new PublicKeyToken();
 		$appToken->setUid('userId');
@@ -424,16 +439,21 @@ class OauthApiControllerTest extends TestCase {
 
 		$client = new Client();
 		$client->setClientIdentifier('clientId');
-		$client->setSecret('clientSecret');
+		$client->setSecret('encryptedClientSecret');
 		$this->clientMapper->method('getByUid')
 			->with(42)
 			->willReturn($client);
 
-		$this->crypto->method('decrypt')
-			->with(
-				'encryptedToken',
-				'validrefresh'
-			)->willReturn('decryptedToken');
+		$this->crypto
+			->method('decrypt')
+			->with($this->callback(function (string $text) {
+				return $text === 'encryptedClientSecret' || $text === 'encryptedToken';
+			}))
+			->willReturnCallback(function (string $text) {
+				return $text === 'encryptedClientSecret'
+					? 'clientSecret'
+					: ($text === 'encryptedToken' ? 'decryptedToken' : '');
+			});
 
 		$appToken = new PublicKeyToken();
 		$appToken->setUid('userId');

+ 9 - 1
apps/oauth2/tests/Settings/AdminTest.php

@@ -28,7 +28,9 @@ use OCA\OAuth2\Settings\Admin;
 use OCP\AppFramework\Http\TemplateResponse;
 use OCP\AppFramework\Services\IInitialState;
 use OCP\IURLGenerator;
+use OCP\Security\ICrypto;
 use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
 use Test\TestCase;
 
 class AdminTest extends TestCase {
@@ -48,7 +50,13 @@ class AdminTest extends TestCase {
 		$this->initialState = $this->createMock(IInitialState::class);
 		$this->clientMapper = $this->createMock(ClientMapper::class);
 
-		$this->admin = new Admin($this->initialState, $this->clientMapper, $this->createMock(IURLGenerator::class));
+		$this->admin = new Admin(
+			$this->initialState,
+			$this->clientMapper,
+			$this->createMock(IURLGenerator::class),
+			$this->createMock(ICrypto::class),
+			$this->createMock(LoggerInterface::class)
+		);
 	}
 
 	public function testGetForm() {