11 $user = \User::newFromName(
'UTSysop' );
13 $provider = $this->getMockForAbstractClass( AbstractPrimaryAuthenticationProvider::class );
16 $provider->continuePrimaryAuthentication( [] );
17 $this->fail(
'Expected exception not thrown' );
18 }
catch ( \BadMethodCallException $ex ) {
22 $provider->continuePrimaryAccountCreation( $user, $user, [] );
23 $this->fail(
'Expected exception not thrown' );
24 }
catch ( \BadMethodCallException $ex ) {
27 $req = $this->getMockForAbstractClass( AuthenticationRequest::class );
29 $this->assertTrue( $provider->providerAllowsPropertyChange(
'foo' ) );
31 \StatusValue::newGood(),
32 $provider->testForAccountCreation( $user, $user, [] )
35 \StatusValue::newGood(),
39 \StatusValue::newGood(),
40 $provider->testUserForCreation( $user,
false )
49 $provider->postAuthentication( $user,
$res );
50 $provider->postAccountCreation( $user, $user,
$res );
51 $provider->postAccountLink( $user,
$res );
53 $provider->expects( $this->once() )
54 ->method(
'testUserExists' )
55 ->with( $this->equalTo(
'foo' ) )
56 ->will( $this->returnValue(
true ) );
57 $this->assertTrue( $provider->testUserCanAuthenticate(
'foo' ) );
62 for ( $i = 0; $i < 3; $i++ ) {
63 $reqs[$i] = $this->createMock( AuthenticationRequest::class );
64 $reqs[$i]->done =
false;
67 $provider = $this->getMockForAbstractClass( AbstractPrimaryAuthenticationProvider::class );
68 $provider->expects( $this->once() )->method(
'getAuthenticationRequests' )
71 $this->identicalTo( [
'username' =>
'UTSysop' ] )
73 ->will( $this->returnValue( $reqs ) );
74 $provider->expects( $this->exactly( 3 ) )->method(
'providerChangeAuthenticationData' )
75 ->will( $this->returnCallback(
function (
$req ) {
76 $this->assertSame(
'UTSysop',
$req->username );
77 $this->assertFalse(
$req->done );
81 $provider->providerRevokeAccessForUser(
'UTSysop' );
83 foreach ( $reqs as $i =>
$req ) {
84 $this->assertTrue(
$req->done,
"#$i" );
94 $provider = $this->getMockForAbstractClass( AbstractPrimaryAuthenticationProvider::class );
95 $provider->expects( $this->
any() )->method(
'accountCreationType' )
96 ->will( $this->returnValue(
$type ) );
98 $class = AbstractPrimaryAuthenticationProvider::class;
99 $msg1 =
"{$class}::beginPrimaryAccountLink $msg";
100 $msg2 =
"{$class}::continuePrimaryAccountLink is not implemented.";
102 $user = \User::newFromName(
'Whatever' );
105 $provider->beginPrimaryAccountLink( $user, [] );
106 $this->fail(
'Expected exception not thrown' );
107 }
catch ( \BadMethodCallException $ex ) {
108 $this->assertSame( $msg1, $ex->getMessage() );
111 $provider->continuePrimaryAccountLink( $user, [] );
112 $this->fail(
'Expected exception not thrown' );
113 }
catch ( \BadMethodCallException $ex ) {
114 $this->assertSame( $msg2, $ex->getMessage() );