19 declare(strict_types=1);
31 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
32 $this->assertInstanceOf(AccessQuestionImage::class,
new AccessQuestionImage($readable));
35 #[\PHPUnit\Framework\Attributes\DataProvider('invalidPaths')] 38 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
40 $instance =
new AccessQuestionImage($readable);
42 $this->assertFalse($instance->isPermitted($path)->isOk());
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'],
57 #[\PHPUnit\Framework\Attributes\DataProvider('isPermittedProvider')] 60 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
62 $readable->method(
'objectId')->with(6709)->willReturn($is_readable);
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());
73 'With readable object path.' => [
true],
74 'Without readable object path.' => [
false],
static isPermittedProvider()
testIsPermittedWithInvalidPath(string $path)
testIsPermittedWithValidPath(bool $is_readable)