Skip to content

Commit 4e992b5

Browse files
author
m-tanabe
committed
Add tests for username used to identify the scope
1 parent 31236d0 commit 4e992b5

6 files changed

Lines changed: 80 additions & 7 deletions

File tree

caliper/database/seeds/EventSeeder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,7 @@ public function run(): void
8080
Event::create($this->event_factory('\core\event\user_loggedout', 1, 'user', 1));
8181
Event::create($this->event_factory('\core\event\course_viewed', 1, 'user', 1, null, 'origin1'));
8282
Event::create($this->event_factory('\core\event\course_viewed', 1, 'user', 1, null, 'origin2'));
83+
Event::create($this->event_factory('\core\event\course_viewed', 11, 'user', 1));
84+
Event::create($this->event_factory('\core\event\course_viewed', 12, 'user', 1));
8385
}
8486
}

caliper/database/seeds/UserSeeder.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,17 @@ public function run(): void
2222
'lastname' => $faker->lastName,
2323
'description' => $faker->sentence(),
2424
'email' => $faker->unique()->safeEmail,
25+
'alternatename' => $faker->name() . $users[$i % 3],
2526
]);
2627
}
28+
App\Models\Moodle\User::create([
29+
'auth' => 'lti',
30+
'username' => 'username@wellknown.ac.jp',
31+
'alternatename' => 'alternatename@wellknown.ac.jp',
32+
]);
33+
App\Models\Moodle\User::create([
34+
'auth' => 'lti',
35+
'username' => 'username@wellknown.ac.jp',
36+
]);
2737
}
2838
}

caliper/tests/Feature/EppnTest.php

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@
44

55
use App\Caliper\Traits\Util;
66
use App\Models\Eppn;
7-
use App\Models\Moodle\User;
7+
use App\Models\Moodle\{
8+
Event,
9+
User
10+
};
811
use Illuminate\Support\Facades\Config;
912
use Tests\TestCase;
1013

14+
use function App\Functions\{
15+
compile,
16+
expand,
17+
};
18+
1119
final class EppnTest extends TestCase
1220
{
1321
public function setUp(): void
@@ -239,4 +247,55 @@ public function testGetWithoutEppnTableWithLti()
239247
$this->assertEquals($anonymizedUsername, hash('sha256', $username));
240248
$this->assertEquals(Eppn::all()->count(), 3);
241249
}
250+
251+
public function testGetLtiUsernameWithEppn()
252+
{
253+
putenv('DB_EPPN=true');
254+
$event = Event::where('userid', 11)->first();
255+
$user = User::where('id', 11)->first();
256+
$interProd = expand($event);
257+
$product = compile($interProd);
258+
$this->assertEquals(
259+
hash('sha256', $user->alternatename),
260+
$product->getActor()->getName()
261+
);
262+
$this->assertEquals(
263+
$user->alternatename,
264+
$product->getOriginalUsername()
265+
);
266+
}
267+
268+
public function testGetLtiUsernameWhenAlternatenameIsNullWithEppn()
269+
{
270+
putenv('DB_EPPN=true');
271+
$event = Event::where('userid', 12)->first();
272+
$user = User::where('id', 12)->first();
273+
$interProd = expand($event);
274+
$product = compile($interProd);
275+
$this->assertEquals(
276+
'',
277+
$product->getActor()->getName()
278+
);
279+
$this->assertEquals(
280+
'',
281+
$product->getOriginalUsername()
282+
);
283+
}
284+
285+
public function testGetLtiUsernameWithoutEppn()
286+
{
287+
putenv('DB_EPPN=false');
288+
$event = Event::where('userid', 11)->first();
289+
$user = User::where('id', 11)->first();
290+
$interProd = expand($event);
291+
$product = compile($interProd);
292+
$this->assertEquals(
293+
hash('sha256', $user->username),
294+
$product->getActor()->getName()
295+
);
296+
$this->assertEquals(
297+
$user->username,
298+
$product->getOriginalUsername()
299+
);
300+
}
242301
}

caliper/tests/Feature/ExcludedOriginsTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public function testExcludedOriginsWithParams()
2222
'execution_logs',
2323
[
2424
'id' => 1,
25-
'translated' => 13,
25+
'translated' => 15,
2626
'failed' => 1,
27-
'last_id' => 17,
27+
'last_id' => 19,
2828
],
2929
'log'
3030
);
@@ -38,9 +38,9 @@ public function testExcludedOriginsWithoutParams()
3838
'execution_logs',
3939
[
4040
'id' => 1,
41-
'translated' => 15,
41+
'translated' => 17,
4242
'failed' => 1,
43-
'last_id' => 17,
43+
'last_id' => 19,
4444
],
4545
'log'
4646
);

caliper/tests/Feature/GetLrsTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public function testGetEppnScope()
1414
$test = new MockEvent('user@testscope');
1515
$test2 = new MockEvent('user@test.ac.jp');
1616
$test3 = new MockEvent('noeppn');
17+
$test4 = new MockEvent('');
1718

1819
$mockConfig = [
1920
"default" => "default key",
@@ -27,6 +28,7 @@ public function testGetEppnScope()
2728
$this->assertEquals($tenants['default'], get_lrs($test->getUserName()));
2829
$this->assertEquals($tenants['test.ac.jp'], get_lrs($test2->getUserName()));
2930
$this->assertEquals($tenants['default'], get_lrs($test3->getUserName()));
31+
$this->assertEquals($tenants['default'], get_lrs($test4->getUserName()));
3032
}
3133
}
3234

caliper/tests/Feature/LoggingTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ public function testExecutionLog()
2121
'execution_logs',
2222
[
2323
'id' => 1,
24-
'translated' => 15,
24+
'translated' => 17,
2525
'failed' => 1,
26-
'last_id' => 17,
26+
'last_id' => 19,
2727
],
2828
'log'
2929
);

0 commit comments

Comments
 (0)