Skip to content

Commit c457064

Browse files
committed
rewrite tests
1 parent f112d6d commit c457064

File tree

6 files changed

+86
-53
lines changed

6 files changed

+86
-53
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ Notable users:
6363
- `[email protected]` - admin, PI
6464
- `[email protected]` - not admin, not PI
6565
- `[email protected]` - does not yet have an account
66+
- `[email protected]` - regsitered but not qualified (not a PI or in a PI group)
6667

6768
### Changes to Dev Environment
6869

test/functional/QualifyUserTest.php

Lines changed: 10 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
<?php
22

33
use PHPUnit\Framework\TestCase;
4-
use PHPUnit\Framework\Attributes\DataProvider;
5-
use UnityWebPortal\lib\UnityGroup;
64
use UnityWebPortal\lib\UnityOrg;
75
use UnityWebPortal\lib\UnitySQL;
86

97
class QualifyUserTest extends TestCase
108
{
11-
public static function provider()
12-
{
13-
return [
14-
getNonExistentUserAndExpectedUIDGIDNoCustomMapping(),
15-
getNonExistentUserAndExpectedUIDGIDWithCustomMapping(),
16-
];
17-
}
18-
199
private function assertRequestedPIGroup(bool $expected)
2010
{
2111
global $USER, $SQL;
@@ -85,12 +75,10 @@ private function approveGroup($uid)
8575
]);
8676
}
8777

88-
89-
90-
#[DataProvider("provider")]
91-
public function testQualifyUserByJoinGoupByPI($user_to_qualify_args, $expected_uid_gid)
78+
public function testQualifyUserByJoinGoupByPI()
9279
{
9380
global $USER, $SSO, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK;
81+
$user_to_qualify_args = getUnqualifiedUser();
9482
$pi_user_args = getUserIsPIHasNoMembersNoMemberRequests();
9583
switchUser(...$pi_user_args);
9684
$pi_group = $USER->getPIGroup();
@@ -135,14 +123,6 @@ public function testQualifyUserByJoinGoupByPI($user_to_qualify_args, $expected_u
135123
$this->assertTrue($USER->exists());
136124
$this->assertTrue($newOrg->exists());
137125

138-
$user_entry = $LDAP->getUserEntry($approve_uid);
139-
$qualified_user_group_entry = $LDAP->getGroupEntry($approve_uid);
140-
$this->assertEquals($expected_uid_gid, $user_entry->getAttribute("uidnumber")[0]);
141-
$this->assertEquals(
142-
$expected_uid_gid,
143-
$qualified_user_group_entry->getAttribute("gidnumber")[0],
144-
);
145-
146126
// $third_request_failed = false;
147127
// try {
148128
$this->requestGroupMembership($pi_group->gid);
@@ -154,9 +134,7 @@ public function testQualifyUserByJoinGoupByPI($user_to_qualify_args, $expected_u
154134
$this->assertTrue(!$pi_group->requestExists($USER));
155135
} finally {
156136
switchUser(...$user_to_qualify_args);
157-
$this->ensureOrgGroupDoesNotExist();
158-
$this->ensureUserNotInPIGroup($pi_group);
159-
$this->ensureUserDoesNotExist();
137+
ensureUserNotInPIGroup($pi_group);
160138
}
161139
}
162140

@@ -190,16 +168,15 @@ public function testQualifyMultipleUsersByJoinGoupByPI()
190168
} finally {
191169
foreach ($users_to_qualify_args as $user_to_qualify_args) {
192170
switchUser(...$user_to_qualify_args);
193-
$this->ensureUserNotInPIGroup($pi_group);
194-
$this->ensureUserDoesNotExist();
171+
ensureUserNotInPIGroup($pi_group);
195172
}
196173
}
197174
}
198175

199-
#[DataProvider("provider")]
200-
public function testQualifyUserByJoinGoupByAdmin($user_to_qualify_args, $expected_uid_gid)
176+
public function testQualifyUserByJoinGoupByAdmin()
201177
{
202178
global $USER, $SSO, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK;
179+
$user_to_qualify_args = getUnqualifiedUser();
203180
switchUser(...getUserIsPIHasNoMembersNoMemberRequests());
204181
$pi_group = $USER->getPIGroup();
205182
$gid = $pi_group->gid;
@@ -243,14 +220,6 @@ public function testQualifyUserByJoinGoupByAdmin($user_to_qualify_args, $expecte
243220
$this->assertTrue($USER->exists());
244221
$this->assertTrue($newOrg->exists());
245222

246-
$user_entry = $LDAP->getUserEntry($approve_uid);
247-
$qualified_user_group_entry = $LDAP->getGroupEntry($approve_uid);
248-
$this->assertEquals($expected_uid_gid, $user_entry->getAttribute("uidnumber")[0]);
249-
$this->assertEquals(
250-
$expected_uid_gid,
251-
$qualified_user_group_entry->getAttribute("gidnumber")[0],
252-
);
253-
254223
// $third_request_failed = false;
255224
// try {
256225
$this->requestGroupMembership($pi_group->gid);
@@ -262,16 +231,14 @@ public function testQualifyUserByJoinGoupByAdmin($user_to_qualify_args, $expecte
262231
$this->assertTrue(!$pi_group->requestExists($USER));
263232
} finally {
264233
switchUser(...$user_to_qualify_args);
265-
$this->ensureOrgGroupDoesNotExist();
266-
$this->ensureUserNotInPIGroup($pi_group);
267-
$this->ensureUserDoesNotExist();
234+
ensureUserNotInPIGroup($pi_group);
268235
}
269236
}
270237

271-
#[DataProvider("provider")]
272-
public function testQualifyUserByCreateGroup($user_to_qualify_args, $expected_uid_gid)
238+
public function testQualifyUserByCreateGroup()
273239
{
274240
global $USER, $SSO, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK;
241+
$user_to_qualify_args = getUnqualifiedUser();
275242
switchuser(...$user_to_qualify_args);
276243
$pi_group = $USER->getPIGroup();
277244
$this->assertTrue(!$USER->exists());
@@ -309,14 +276,6 @@ public function testQualifyUserByCreateGroup($user_to_qualify_args, $expected_ui
309276
$this->assertTrue($USER->exists());
310277
$this->assertTrue($newOrg->exists());
311278

312-
$user_entry = $LDAP->getUserEntry($approve_uid);
313-
$qualified_user_group_entry = $LDAP->getGroupEntry($approve_uid);
314-
$this->assertEquals($expected_uid_gid, $user_entry->getAttribute("uidnumber")[0]);
315-
$this->assertEquals(
316-
$expected_uid_gid,
317-
$qualified_user_group_entry->getAttribute("gidnumber")[0],
318-
);
319-
320279
// $third_request_failed = false;
321280
// try {
322281
$this->requestGroupCreation();
@@ -327,9 +286,7 @@ public function testQualifyUserByCreateGroup($user_to_qualify_args, $expected_ui
327286
$this->assertRequestedPIGroup(false);
328287
} finally {
329288
switchUser(...$user_to_qualify_args);
330-
$this->ensureOrgGroupDoesNotExist();
331-
$this->ensurePIGroupDoesNotExist();
332-
$this->ensureUserDoesNotExist();
289+
ensurePIGroupDoesNotExist();
333290
}
334291
}
335292
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
use PHPUnit\Framework\TestCase;
4+
use PHPUnit\Framework\Attributes\DataProvider;
5+
use UnityWebPortal\lib\UnityOrg;
6+
7+
class RegisterUserTest extends TestCase
8+
{
9+
public static function provider()
10+
{
11+
return [
12+
getNonExistentUserAndExpectedUIDGIDNoCustomMapping(),
13+
getNonExistentUserAndExpectedUIDGIDWithCustomMapping(),
14+
];
15+
}
16+
17+
private function register()
18+
{
19+
http_post(__DIR__ . "/../../webroot/panel/new_account.php", ["eula" => "agree"]);
20+
}
21+
22+
#[DataProvider("provider")]
23+
public function testRegisterUserAndCreateOrg($user_to_register_args, $expected_uid_gid)
24+
{
25+
global $USER, $SSO, $LDAP, $SQL, $MAILER, $REDIS, $WEBHOOK;
26+
switchuser(...$user_to_register_args);
27+
$user_entry = $LDAP->getUserEntry($USER->uid);
28+
$user_group_entry = $LDAP->getGroupEntry($USER->uid);
29+
$org_entry = $LDAP->getOrgGroupEntry($USER->getOrg());
30+
$this->assertTrue(!$user_entry->exists());
31+
$this->assertTrue(!$user_group_entry->exists());
32+
$this->assertTrue(!$org_entry->exists());
33+
try {
34+
$this->register();
35+
$this->assertTrue($user_entry->exists());
36+
$this->assertTrue($user_group_entry->exists());
37+
$this->assertTrue($org_entry->exists());
38+
$this->assertEquals($expected_uid_gid, $user_entry->getAttribute("uidnumber")[0]);
39+
$this->assertEquals($expected_uid_gid, $user_group_entry->getAttribute("gidnumber")[0]);
40+
} finally {
41+
ensureOrgGroupDoesNotExist();
42+
ensureUserDoesNotExist();
43+
}
44+
}
45+
}

test/phpunit-bootstrap.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@ function getNonExistentUser()
288288
return ["[email protected]", "foo", "bar", "[email protected]"];
289289
}
290290

291+
function getUnqualifiedUser()
292+
{
293+
return ["[email protected]", "foo", "bar", "[email protected]"];
294+
}
295+
291296
function getNonexistentUsersWithExistentOrg()
292297
{
293298
return [

tools/docker-dev/identity/bootstrap.ldif

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9178,6 +9178,12 @@ gidnumber: 1956
91789178
objectclass: posixGroup
91799179
objectclass: top
91809180

9181+
dn: cn=user2005_org1_test,ou=groups,dc=unityhpc,dc=test
9182+
cn: user2005_org1_test
9183+
gidnumber: 33130
9184+
objectclass: posixGroup
9185+
objectclass: top
9186+
91819187
dn: ou=org_groups,dc=unityhpc,dc=test
91829188
objectclass: organizationalUnit
91839189
objectclass: top
@@ -37206,3 +37212,20 @@ sshpublickey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6DRkoDjDgI39kKmuUAgMC18+O3o
3720637212
sshpublickey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLCxBujVxoB5T95BAQfwlG0cQSGldVap3w/cNAHobgaa9rOcino2Dw5EHXQl+O0yrDGRRQ1sEIZrTLhHNcWLUZ1d6exSRfg8AvjghAczKNi7H8oLMCp4hMVz3RzqozZaxhXDYQb1n4igf8jtX/VBvixEgSkDrRxPCFFkr14CT0xXhR02fnoFSMbedtXphClTiF6ry94mzl91CkdWP9JHY1w8LCJh6wlXCyiIorydoADPAjFIw766TRe2eUNHn0gDPVrF8KUhaYDW8wKG6u8PORotNBr3zw/QRCjpgbwh1w6xNZti/N+rEjczFTnECmlcOkDrkw5j4OqiLEIBw3j9vF
3720737213
uid: user1304_org1_test
3720837214
uidnumber: 1956
37215+
37216+
dn: cn=user2005_org1_test,ou=users,dc=unityhpc,dc=test
37217+
cn: user2005_org1_test
37218+
gidnumber: 33130
37219+
givenname: Givenname
37220+
homedirectory: /home/user2005_org1_test
37221+
loginshell: /bin/bash
37222+
37223+
o: org1_test
37224+
objectclass: inetOrgPerson
37225+
objectclass: posixAccount
37226+
objectclass: top
37227+
objectclass: ldapPublicKey
37228+
sn: Surname
37229+
gecos: Givenname Surname
37230+
uid: user2005_org1_test
37231+
uidnumber: 33130

tools/docker-dev/web/htpasswd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,3 +1309,5 @@ [email protected]:$apr1$Rgrex74Z$rgJx6sCnGQN9UVMmhVG2R1
13091309
# nonexistent users with an existent org
13101310
[email protected]:$apr1$Rgrex74Z$rgJx6sCnGQN9UVMmhVG2R1
13111311
[email protected]:$apr1$Rgrex74Z$rgJx6sCnGQN9UVMmhVG2R1
1312+
# unqualified users
1313+
[email protected]:$apr1$Rgrex74Z$rgJx6sCnGQN9UVMmhVG2R1

0 commit comments

Comments
 (0)