1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
<?php
use MediaWiki\User\UserGroupMembership;
class UserGroupMembershipTest extends MediaWikiIntegrationTestCase {
protected function setUp(): void {
parent::setUp();
$this->setGroupPermissions(
[
'unittesters' => [
'runtest' => true,
],
'testwriters' => [
'writetest' => true,
]
]
);
}
public static function provideInstantiationValidation() {
return [
[ 1, null, null, 1, null, null ],
[ 1, 'test', null, 1, 'test', null ],
[ 1, 'test', '12345', 1, 'test', '12345' ]
];
}
/**
* @dataProvider provideInstantiationValidation
* @covers \MediaWiki\User\UserGroupMembership
*/
public function testInstantiation( $userId, $group, $expiry, $userId_, $group_, $expiry_ ) {
$ugm = new UserGroupMembership( $userId, $group, $expiry );
$this->assertSame(
$userId_,
$ugm->getUserId()
);
$this->assertSame(
$group_,
$ugm->getGroup()
);
$this->assertSame(
$expiry_,
$ugm->getExpiry()
);
}
/**
* @covers \MediaWiki\User\UserGroupMembership::equals
*/
public function testComparison() {
$ugm1 = new UserGroupMembership( 1, 'test', '67890' );
$ugm2 = new UserGroupMembership( 1, 'test', '67890' );
$ugm3 = new UserGroupMembership( 1, 'fail', '67890' );
$ugm4 = new UserGroupMembership( 1, 'fail', '12345' );
$this->assertTrue( $ugm1->equals( $ugm2 ) );
$this->assertTrue( $ugm2->equals( $ugm1 ) );
$this->assertFalse( $ugm1->equals( $ugm3 ) );
$this->assertFalse( $ugm2->equals( $ugm3 ) );
$this->assertFalse( $ugm3->equals( $ugm1 ) );
// Ensure expiry is ignored
$this->assertTrue( $ugm3->equals( $ugm4 ) );
}
/**
* @covers \MediaWiki\User\UserGroupMembership::isExpired
*/
public function testIsExpired() {
$ts = wfTimestamp( TS_MW, time() - 100 );
$ugm = new UserGroupMembership( 1, null, $ts );
$this->assertTrue(
$ugm->isExpired()
);
$ts = wfTimestamp( TS_MW, time() + 100 );
$ugm = new UserGroupMembership( 1, null, $ts );
$this->assertFalse(
$ugm->isExpired()
);
$ugm = new UserGroupMembership( 1, null, null );
$this->assertFalse(
$ugm->isExpired()
);
}
}
|