Skip to content

Commit 9b0efa5

Browse files
committed
Merge branch '5.2' into 5.x
* 5.2: Use concrete user related classes in the tests [Filesystem] Fix dumpFile() method call
2 parents d42fee9 + 973cff0 commit 9b0efa5

11 files changed

+94
-173
lines changed

Tests/Authenticator/Fixtures/PasswordUpgraderProvider.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@
1111

1212
namespace Symfony\Component\Security\Http\Tests\Authenticator\Fixtures;
1313

14+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
1415
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
16+
use Symfony\Component\Security\Core\User\UserInterface;
1517
use Symfony\Component\Security\Core\User\UserProviderInterface;
1618

17-
abstract class PasswordUpgraderProvider implements UserProviderInterface, PasswordUpgraderInterface
19+
class PasswordUpgraderProvider extends InMemoryUserProvider implements PasswordUpgraderInterface
1820
{
21+
public function upgradePassword(UserInterface $user, string $newEncodedPassword): void
22+
{
23+
}
1924
}

Tests/Authenticator/FormLoginAuthenticatorTest.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
1818
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
1919
use Symfony\Component\Security\Core\Security;
20-
use Symfony\Component\Security\Core\User\InMemoryUser;
21-
use Symfony\Component\Security\Core\User\UserProviderInterface;
20+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
2221
use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
2322
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
2423
use Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator;
@@ -37,8 +36,7 @@ class FormLoginAuthenticatorTest extends TestCase
3736

3837
protected function setUp(): void
3938
{
40-
$this->userProvider = $this->createMock(UserProviderInterface::class);
41-
$this->userProvider->expects($this->any())->method('loadUserByUsername')->willReturn(new InMemoryUser('test', 's$cr$t'));
39+
$this->userProvider = new InMemoryUserProvider(['test' => ['password' => 's$cr$t']]);
4240
$this->successHandler = $this->createMock(AuthenticationSuccessHandlerInterface::class);
4341
$this->failureHandler = $this->createMock(AuthenticationFailureHandlerInterface::class);
4442
}
@@ -149,8 +147,7 @@ public function testUpgradePassword()
149147
$request = Request::create('/login_check', 'POST', ['_username' => 'wouter', '_password' => 's$cr$t']);
150148
$request->setSession($this->createSession());
151149

152-
$this->userProvider = $this->createMock(PasswordUpgraderProvider::class);
153-
$this->userProvider->expects($this->any())->method('loadUserByUsername')->willReturn(new InMemoryUser('test', 's$cr$t'));
150+
$this->userProvider = new PasswordUpgraderProvider(['test' => ['password' => 's$cr$t']]);
154151

155152
$this->setUpAuthenticator();
156153
$passport = $this->authenticator->authenticate($request);

Tests/Authenticator/HttpBasicAuthenticatorTest.php

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use PHPUnit\Framework\TestCase;
66
use Symfony\Component\HttpFoundation\Request;
77
use Symfony\Component\Security\Core\User\InMemoryUser;
8-
use Symfony\Component\Security\Core\User\UserProviderInterface;
8+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
99
use Symfony\Component\Security\Http\Authenticator\HttpBasicAuthenticator;
1010
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\PasswordUpgradeBadge;
1111
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
@@ -22,7 +22,7 @@ class HttpBasicAuthenticatorTest extends TestCase
2222

2323
protected function setUp(): void
2424
{
25-
$this->userProvider = $this->createMock(UserProviderInterface::class);
25+
$this->userProvider = new InMemoryUserProvider();
2626
$this->hasherFactory = $this->createMock(PasswordHasherFactoryInterface::class);
2727
$this->hasher = $this->createMock(PasswordHasherInterface::class);
2828
$this->hasherFactory
@@ -40,16 +40,12 @@ public function testExtractCredentialsAndUserFromRequest()
4040
'PHP_AUTH_PW' => 'ThePassword',
4141
]);
4242

43-
$this->userProvider
44-
->expects($this->any())
45-
->method('loadUserByUsername')
46-
->with('TheUsername')
47-
->willReturn($user = new InMemoryUser('TheUsername', 'ThePassword'));
43+
$this->userProvider->createUser($user = new InMemoryUser('TheUsername', 'ThePassword'));
4844

4945
$passport = $this->authenticator->authenticate($request);
5046
$this->assertEquals('ThePassword', $passport->getBadge(PasswordCredentials::class)->getPassword());
5147

52-
$this->assertSame($user, $passport->getUser());
48+
$this->assertTrue($user->isEqualTo($passport->getUser()));
5349
}
5450

5551
/**
@@ -77,8 +73,8 @@ public function testUpgradePassword()
7773
'PHP_AUTH_PW' => 'ThePassword',
7874
]);
7975

80-
$this->userProvider = $this->createMock(PasswordUpgraderProvider::class);
81-
$this->userProvider->expects($this->any())->method('loadUserByUsername')->willReturn(new InMemoryUser('test', 's$cr$t'));
76+
$this->userProvider = new PasswordUpgraderProvider(['test' => ['password' => 's$cr$t']]);
77+
8278
$authenticator = new HttpBasicAuthenticator('test', $this->userProvider);
8379

8480
$passport = $authenticator->authenticate($request);

Tests/Authenticator/RemoteUserAuthenticatorTest.php

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
1717
use Symfony\Component\Security\Core\User\InMemoryUser;
18-
use Symfony\Component\Security\Core\User\UserProviderInterface;
18+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
1919
use Symfony\Component\Security\Http\Authenticator\RemoteUserAuthenticator;
2020

2121
class RemoteUserAuthenticatorTest extends TestCase
2222
{
2323
/**
2424
* @dataProvider provideAuthenticators
2525
*/
26-
public function testSupport(UserProviderInterface $userProvider, RemoteUserAuthenticator $authenticator, $parameterName)
26+
public function testSupport(InMemoryUserProvider $userProvider, RemoteUserAuthenticator $authenticator, $parameterName)
2727
{
2828
$request = $this->createRequest([$parameterName => 'TheUsername']);
2929

@@ -32,35 +32,32 @@ public function testSupport(UserProviderInterface $userProvider, RemoteUserAuthe
3232

3333
public function testSupportNoUser()
3434
{
35-
$authenticator = new RemoteUserAuthenticator($this->createMock(UserProviderInterface::class), new TokenStorage(), 'main');
35+
$authenticator = new RemoteUserAuthenticator(new InMemoryUserProvider(), new TokenStorage(), 'main');
3636

3737
$this->assertFalse($authenticator->supports($this->createRequest([])));
3838
}
3939

4040
/**
4141
* @dataProvider provideAuthenticators
4242
*/
43-
public function testAuthenticate(UserProviderInterface $userProvider, RemoteUserAuthenticator $authenticator, $parameterName)
43+
public function testAuthenticate(InMemoryUserProvider $userProvider, RemoteUserAuthenticator $authenticator, $parameterName)
4444
{
4545
$request = $this->createRequest([$parameterName => 'TheUsername']);
4646

4747
$authenticator->supports($request);
4848

49-
$userProvider->expects($this->once())
50-
->method('loadUserByUsername')
51-
->with('TheUsername')
52-
->willReturn($user = new InMemoryUser('TheUsername', null));
49+
$userProvider->createUser($user = new InMemoryUser('TheUsername', null));
5350

5451
$passport = $authenticator->authenticate($request);
55-
$this->assertEquals($user, $passport->getUser());
52+
$this->assertTrue($user->isEqualTo($passport->getUser()));
5653
}
5754

5855
public function provideAuthenticators()
5956
{
60-
$userProvider = $this->createMock(UserProviderInterface::class);
57+
$userProvider = new InMemoryUserProvider();
6158
yield [$userProvider, new RemoteUserAuthenticator($userProvider, new TokenStorage(), 'main'), 'REMOTE_USER'];
6259

63-
$userProvider = $this->createMock(UserProviderInterface::class);
60+
$userProvider = new InMemoryUserProvider();
6461
yield [$userProvider, new RemoteUserAuthenticator($userProvider, new TokenStorage(), 'main', 'CUSTOM_USER_PARAMETER'), 'CUSTOM_USER_PARAMETER'];
6562
}
6663

Tests/Authenticator/X509AuthenticatorTest.php

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
1717
use Symfony\Component\Security\Core\User\InMemoryUser;
18-
use Symfony\Component\Security\Core\User\UserProviderInterface;
18+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
1919
use Symfony\Component\Security\Http\Authenticator\X509Authenticator;
2020

2121
class X509AuthenticatorTest extends TestCase
@@ -25,7 +25,7 @@ class X509AuthenticatorTest extends TestCase
2525

2626
protected function setUp(): void
2727
{
28-
$this->userProvider = $this->createMock(UserProviderInterface::class);
28+
$this->userProvider = new InMemoryUserProvider();
2929
$this->authenticator = new X509Authenticator($this->userProvider, new TokenStorage(), 'main');
3030
}
3131

@@ -45,10 +45,7 @@ public function testAuthentication($username, $credentials)
4545
$request = $this->createRequest($serverVars);
4646
$this->assertTrue($this->authenticator->supports($request));
4747

48-
$this->userProvider->expects($this->any())
49-
->method('loadUserByUsername')
50-
->with($username)
51-
->willReturn(new InMemoryUser($username, null));
48+
$this->userProvider->createUser(new InMemoryUser($username, null));
5249

5350
$passport = $this->authenticator->authenticate($request);
5451
$this->assertEquals($username, $passport->getUser()->getUsername());
@@ -69,10 +66,7 @@ public function testAuthenticationNoUser($emailAddress, $credentials)
6966

7067
$this->assertTrue($this->authenticator->supports($request));
7168

72-
$this->userProvider->expects($this->once())
73-
->method('loadUserByUsername')
74-
->with($emailAddress)
75-
->willReturn(new InMemoryUser($emailAddress, null));
69+
$this->userProvider->createUser(new InMemoryUser($emailAddress, null));
7670

7771
$passport = $this->authenticator->authenticate($request);
7872
$this->assertEquals($emailAddress, $passport->getUser()->getUsername());
@@ -105,10 +99,7 @@ public function testAuthenticationCustomUserKey()
10599
]);
106100
$this->assertTrue($authenticator->supports($request));
107101

108-
$this->userProvider->expects($this->once())
109-
->method('loadUserByUsername')
110-
->with('TheUser')
111-
->willReturn(new InMemoryUser('TheUser', null));
102+
$this->userProvider->createUser(new InMemoryUser('TheUser', null));
112103

113104
$passport = $this->authenticator->authenticate($request);
114105
$this->assertEquals('TheUser', $passport->getUser()->getUsername());
@@ -123,10 +114,7 @@ public function testAuthenticationCustomCredentialsKey()
123114
]);
124115
$this->assertTrue($authenticator->supports($request));
125116

126-
$this->userProvider->expects($this->once())
127-
->method('loadUserByUsername')
128-
129-
->willReturn(new InMemoryUser('[email protected]', null));
117+
$this->userProvider->createUser(new InMemoryUser('[email protected]', null));
130118

131119
$passport = $authenticator->authenticate($request);
132120
$this->assertEquals('[email protected]', $passport->getUser()->getUsername());

Tests/EventListener/PasswordMigratingListenerTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
1919
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
2020
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
21+
use Symfony\Component\Security\Core\User\User;
2122
use Symfony\Component\Security\Core\User\UserInterface;
2223
use Symfony\Component\Security\Core\User\UserProviderInterface;
2324
use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;

Tests/EventListener/UserProviderListenerTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Component\Security\Core\User\InMemoryUser;
16-
use Symfony\Component\Security\Core\User\UserProviderInterface;
16+
use Symfony\Component\Security\Core\User\InMemoryUserProvider;
1717
use Symfony\Component\Security\Http\Authenticator\AuthenticatorInterface;
1818
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
1919
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
@@ -27,7 +27,7 @@ class UserProviderListenerTest extends TestCase
2727

2828
protected function setUp(): void
2929
{
30-
$this->userProvider = $this->createMock(UserProviderInterface::class);
30+
$this->userProvider = new InMemoryUserProvider();
3131
$this->listener = new UserProviderListener($this->userProvider);
3232
}
3333

@@ -41,8 +41,8 @@ public function testSetUserProvider()
4141
$this->assertEquals([$this->userProvider, 'loadUserByUsername'], $badge->getUserLoader());
4242

4343
$user = new InMemoryUser('wouter', null);
44-
$this->userProvider->expects($this->once())->method('loadUserByUsername')->with('wouter')->willReturn($user);
45-
$this->assertSame($user, $passport->getUser());
44+
$this->userProvider->createUser($user);
45+
$this->assertTrue($user->isEqualTo($passport->getUser()));
4646
}
4747

4848
/**

Tests/Firewall/SwitchUserListenerTest.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
2626
use Symfony\Component\Security\Core\User\InMemoryUser;
2727
use Symfony\Component\Security\Core\User\UserCheckerInterface;
28-
use Symfony\Component\Security\Core\User\UserInterface;
2928
use Symfony\Component\Security\Core\User\UserProviderInterface;
3029
use Symfony\Component\Security\Http\Event\SwitchUserEvent;
3130
use Symfony\Component\Security\Http\Firewall\SwitchUserListener;
@@ -112,13 +111,13 @@ public function testExitUserUpdatesToken()
112111

113112
public function testExitUserDispatchesEventWithRefreshedUser()
114113
{
115-
$originalUser = $this->createMock(UserInterface::class);
116-
$refreshedUser = $this->createMock(UserInterface::class);
114+
$originalUser = new InMemoryUser('username', null);
115+
$refreshedUser = new InMemoryUser('username', null);
117116
$this
118117
->userProvider
119118
->expects($this->any())
120119
->method('refreshUser')
121-
->with($originalUser)
120+
->with($this->identicalTo($originalUser))
122121
->willReturn($refreshedUser);
123122
$originalToken = new UsernamePasswordToken($originalUser, '', 'key');
124123
$this->tokenStorage->setToken(new SwitchUserToken('username', '', 'key', ['ROLE_USER'], $originalToken));
@@ -399,13 +398,13 @@ public function testSwitchUserStateless()
399398

400399
public function testSwitchUserRefreshesOriginalToken()
401400
{
402-
$originalUser = $this->createMock(UserInterface::class);
403-
$refreshedOriginalUser = $this->createMock(UserInterface::class);
401+
$originalUser = new InMemoryUser('username', null);
402+
$refreshedOriginalUser = new InMemoryUser('username', null);
404403
$this
405404
->userProvider
406405
->expects($this->any())
407406
->method('refreshUser')
408-
->with($originalUser)
407+
->with($this->identicalTo($originalUser))
409408
->willReturn($refreshedOriginalUser);
410409
$originalToken = new UsernamePasswordToken($originalUser, '', 'key');
411410
$this->tokenStorage->setToken(new SwitchUserToken('username', '', 'key', ['ROLE_USER'], $originalToken));

0 commit comments

Comments
 (0)