File: UserGroupMembershipTest.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (87 lines) | stat: -rw-r--r-- 2,121 bytes parent folder | download
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()
		);
	}

}