ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
AccessQuestionImageTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use PHPUnit\Framework\TestCase;
26
27class AccessQuestionImageTest extends TestCase
28{
29 public function testConstruct(): void
30 {
31 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
32 $this->assertInstanceOf(AccessQuestionImage::class, new AccessQuestionImage($readable));
33 }
34
35 #[\PHPUnit\Framework\Attributes\DataProvider('invalidPaths')]
36 public function testIsPermittedWithInvalidPath(string $path): void
37 {
38 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
39
40 $instance = new AccessQuestionImage($readable);
41
42 $this->assertFalse($instance->isPermitted($path)->isOk());
43 }
44
45 public static function invalidPaths(): array
46 {
47 return [
48 ['foo'],
49 ['/assessment/12/images/foo.png'],
50 ['/assessment/12/34/images/foo/bar.png'],
51 ['/assessment/12/ab/images/foo.png'],
52 ['/assessment/ab/12/images/foo.png'],
53 ['assessment/12/34/images/foo.png'],
54 ];
55 }
56
57 #[\PHPUnit\Framework\Attributes\DataProvider('isPermittedProvider')]
58 public function testIsPermittedWithValidPath(bool $is_readable): void
59 {
60 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
61
62 $readable->method('objectId')->with(6709)->willReturn($is_readable);
63
64 $instance = new AccessQuestionImage($readable);
65 $result = $instance->isPermitted('/assessment/6709/389/images/foo.png');
66 $this->assertTrue($result->isOk());
67 $this->assertSame($is_readable, $result->value());
68 }
69
70 public static function isPermittedProvider(): array
71 {
72 return [
73 'With readable object path.' => [true],
74 'Without readable object path.' => [false],
75 ];
76 }
77}
$path
Definition: ltiservices.php:30