Skip to content

Commit

Permalink
Reset array with array_values
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
  • Loading branch information
kesselb committed Jul 9, 2019
1 parent eb092bb commit 1ce7d7a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 27 deletions.
9 changes: 6 additions & 3 deletions core/Controller/LostController.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@

namespace OC\Core\Controller;

use function array_filter;
use function array_shift;
use function count;
use OC\Authentication\TwoFactorAuth\Manager;
use OC\HintException;
use \OCP\AppFramework\Controller;
Expand Down Expand Up @@ -389,12 +392,12 @@ protected function findUserByIdOrMail($input) {
return $user;
}

$users = \array_filter($this->userManager->getByEmail($input), function (IUser $user) {
$users = array_filter($this->userManager->getByEmail($input), function (IUser $user) {
return $user->isEnabled();
});

if (\count($users) === 1) {
return $users[0];
if (count($users) === 1) {
return array_shift($users);
}

throw $userNotFound;
Expand Down
51 changes: 27 additions & 24 deletions tests/Core/Controller/LostControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -821,28 +821,38 @@ public function testTwoUsersWithSameEmail() {
$this->assertEquals($expectedResponse, $response);
}

public function testTwoUsersWithSameEmailOneDisabled() {

/**
* @return array
*/
public function dataTwoUserswithSameEmailOneDisabled(): array {
return [
['user1' => true, 'user2' => false],
['user1' => false, 'user2' => true]
];
}

/**
* @dataProvider dataTwoUserswithSameEmailOneDisabled
* @param bool $userEnabled1
* @param bool $userEnabled2
*/
public function testTwoUsersWithSameEmailOneDisabled(bool $userEnabled1, bool $userEnabled2): void {
$user1 = $this->createMock(IUser::class);
$user1->expects($this->any())
->method('getEMailAddress')
$user1->method('getEMailAddress')
->willReturn('test@example.com');
$user1->expects($this->any())
->method('getUID')
$user1->method('getUID')
->willReturn('User1');
$user1->expects($this->any())
->method('isEnabled')
->willReturn(true);
$user1->method('isEnabled')
->willReturn($userEnabled1);

$user2 = $this->createMock(IUser::class);
$user2->expects($this->any())
->method('getEMailAddress')
$user2->method('getEMailAddress')
->willReturn('test@example.com');
$user2->expects($this->any())
->method('getUID')
$user2->method('getUID')
->willReturn('User2');
$user2->expects($this->any())
->method('isEnabled')
->willReturn(false);
$user2->method('isEnabled')
->willReturn($userEnabled2);

$this->userManager
->method('get')
Expand All @@ -852,14 +862,7 @@ public function testTwoUsersWithSameEmailOneDisabled() {
->method('getByEmail')
->willReturn([$user1, $user2]);

// request password reset for test@example.com
$response = $this->lostController->email('test@example.com');

$expectedResponse = new JSONResponse([
'status' => 'success'
]);
$expectedResponse->throttle();

$this->assertEquals($expectedResponse, $response);
$result = self::invokePrivate($this->lostController, 'findUserByIdOrMail', ['test@example.com']);
$this->assertInstanceOf(IUser::class, $result);
}
}

0 comments on commit 1ce7d7a

Please sign in to comment.