ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
DefaultClientIdProviderTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
24use PHPUnit\Framework\TestCase;
25use Psr\Http\Message\ServerRequestInterface;
26
27final class DefaultClientIdProviderTest extends TestCase
28{
33 private function provider(array $query, array $cookies, string $ini_default = 'default'): DefaultClientIdProvider
34 {
35 $request = $this->createStub(ServerRequestInterface::class);
36 $request->method('getQueryParams')->willReturn($query);
37 $request->method('getCookieParams')->willReturn($cookies);
38
39 $http = $this->createStub(GlobalHttpState::class);
40 $http->method('request')->willReturn($request);
41
42 $ini = $this->createStub(IliasIni::class);
43 $ini->method('getDefaultClientId')->willReturn($ini_default);
44
45 return new DefaultClientIdProvider($ini, $http);
46 }
47
48 public function testQueryParameterTakesPrecedence(): void
49 {
50 $id = $this->provider(['client_id' => 'from_query'], ['ilClientId' => 'from_cookie'], 'from_ini')->getClientId();
51 self::assertSame('from_query', $id->toString());
52 }
53
58 public function testCookieIsIgnored(): void
59 {
60 $id = $this->provider([], ['ilClientId' => 'from_cookie'], 'from_ini')->getClientId();
61 self::assertSame('from_ini', $id->toString());
62 }
63
65 {
66 $id = $this->provider(['client_id' => ''], [], 'from_ini')->getClientId();
67 self::assertSame('from_ini', $id->toString());
68 }
69
70 public function testFallsBackToIniDefault(): void
71 {
72 $id = $this->provider([], [], 'from_ini')->getClientId();
73 self::assertSame('from_ini', $id->toString());
74 }
75
77 {
78 // strip_tags() was removed: ClientId is now the sole validation point
79 // and rejects anything outside [A-Za-z0-9#_.-] instead of silently
80 // stripping it.
81 $this->expectException(InvalidArgumentException::class);
82 $this->provider(['client_id' => '<script>alert</script>'], [], 'from_ini')->getClientId();
83 }
84}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
testCookieIsIgnored()
ilInitialisation::determineClient() ignores the cookie as well, CLIENT_ID and the client ini must not...
provider(array $query, array $cookies, string $ini_default='default')
Determines the current client ID from the HTTP request context.
Typed read access to ilias.ini.php.
Definition: IliasIni.php:35
Interface GlobalHttpState.
$request
@ilCtrl_Calls ilObjLearningSequenceContentGUI: ilObjLearningSequenceConditionsGUI
Definition: ltiauth.php:39