Skip to content

Commit 7b6b962

Browse files
committed
add tests for eppnToUid, eppnToOrg
1 parent 9285cde commit 7b6b962

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

test/unit/UnitySSOTest.php

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace UnityWebPortal\lib;
44

55
use UnityWebPortal\lib\exceptions\SSOException;
6+
use PHPUnit\Framework\Attributes\DataProvider;
67
use PHPUnit\Framework\TestCase;
78

89
class UnitySSOTest extends TestCase
@@ -47,4 +48,82 @@ public function testEmptyAttribute()
4748
$_PREVIOUS_SERVER = $_SERVER;
4849
}
4950
}
51+
52+
public function testFallbackAttribute()
53+
{
54+
$PREVIOUS_SERVER = $_SERVER;
55+
try {
56+
$_SERVER["REMOTE_USER"] = "foobar@baz";
57+
$_SERVER["givenName"] = "bar";
58+
$_SERVER["sn"] = "bar";
59+
$_SERVER["eppn"] = "foobar@baz";
60+
unset($_SERVER["mail"]);
61+
$sso = UnitySSO::getSSO();
62+
} finally {
63+
$_PREVIOUS_SERVER = $_SERVER;
64+
}
65+
$this->assertEquals("foobar@baz", $sso["mail"]);
66+
}
67+
68+
public static function validEppnProvider() {
69+
return [
70+
["[email protected]", "foo_bar_edu", "bar_edu"],
71+
];
72+
}
73+
74+
#[DataProvider("validEppnProvider")]
75+
public function testEppnToUid(string $eppn, string $expectedUID, string $_)
76+
{
77+
$PREVIOUS_SERVER = $_SERVER;
78+
try {
79+
$_SERVER["REMOTE_USER"] = $eppn;
80+
$_SERVER["givenName"] = "foo";
81+
$_SERVER["sn"] = "foo";
82+
$_SERVER["mail"] = "foo";
83+
$sso = UnitySSO::getSSO();
84+
$this->assertEquals($expectedUID, $sso["user"]);
85+
} finally {
86+
$_PREVIOUS_SERVER = $_SERVER;
87+
}
88+
}
89+
90+
#[DataProvider("validEppnProvider")]
91+
public function testEppnToOrg(string $eppn, string $_, string $expectedOrg)
92+
{
93+
$PREVIOUS_SERVER = $_SERVER;
94+
try {
95+
$_SERVER["REMOTE_USER"] = $eppn;
96+
$_SERVER["givenName"] = "foo";
97+
$_SERVER["sn"] = "foo";
98+
$_SERVER["mail"] = "foo";
99+
$sso = UnitySSO::getSSO();
100+
$this->assertEquals($expectedOrg, $sso["org"]);
101+
} finally {
102+
$_PREVIOUS_SERVER = $_SERVER;
103+
}
104+
}
105+
106+
public static function invalidEppnProvider() {
107+
return [
108+
["foo"], // missing @
109+
["foo@bar@baz"], // too many @
110+
[""]
111+
];
112+
}
113+
114+
#[DataProvider("invalidEppnProvider")]
115+
public function testInvalidEPPN(string $eppn)
116+
{
117+
$this->expectException(SSOException::class);
118+
$PREVIOUS_SERVER = $_SERVER;
119+
try {
120+
$_SERVER["REMOTE_USER"] = $eppn;
121+
$_SERVER["givenName"] = "foo";
122+
$_SERVER["sn"] = "foo";
123+
$_SERVER["mail"] = "foo";
124+
$sso = UnitySSO::getSSO();
125+
} finally {
126+
$_PREVIOUS_SERVER = $_SERVER;
127+
}
128+
}
50129
}

0 commit comments

Comments
 (0)