ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
UploadLimitResolverTest.php
Go to the documentation of this file.
1 <?php
2 
18 declare(strict_types=1);
19 
21 
25 
29 class UploadLimitResolverTest extends TestCase
30 {
33 
34  protected function setUp(): void
35  {
36  $pseudo_upload_handler = $this->createMock(UploadHandler::class);
37  $pseudo_upload_handler->method('getFileIdentifierParameterName')->willReturn('');
38 
39  $this->upload_handler_with_chunks = clone $pseudo_upload_handler;
40  $this->upload_handler_with_chunks->method('supportsChunkedUploads')->willReturn(true);
41 
42  $this->upload_handler_without_chunks = clone $pseudo_upload_handler;
43  $this->upload_handler_without_chunks->method('supportsChunkedUploads')->willReturn(false);
44  }
45 
46  public static function provideUploadLimitResolutionDataSet(): array
47  {
48  return [
49  [
50  'ini_value' => 10,
51  'custom_global_value' => null,
52  'local_value' => null,
53  'upload_handler_supports_chunks' => true,
54  'result' => 10
55  ],
56  [
57  'ini_value' => 10,
58  'custom_global_value' => null,
59  'local_value' => 20,
60  'upload_handler_supports_chunks' => true,
61  'result' => 20
62  ],
63  [
64  'ini_value' => 10,
65  'custom_global_value' => null,
66  'local_value' => 20,
67  'upload_handler_supports_chunks' => true,
68  'result' => 20
69  ],
70  [
71  'ini_value' => 10,
72  'custom_global_value' => 15,
73  'local_value' => 20,
74  'upload_handler_supports_chunks' => true,
75  'result' => 20
76  ],
77  [
78  'ini_value' => 10,
79  'custom_global_value' => 20,
80  'local_value' => 15,
81  'upload_handler_supports_chunks' => true,
82  'result' => 15
83  ],
84  [
85  'ini_value' => 10,
86  'custom_global_value' => null,
87  'local_value' => 20,
88  'upload_handler_supports_chunks' => false,
89  'result' => 10
90  ],
91  [
92  'ini_value' => 10,
93  'custom_global_value' => 20,
94  'local_value' => null,
95  'upload_handler_supports_chunks' => false,
96  'result' => 10
97  ],
98  [
99  'ini_value' => 10,
100  'custom_global_value' => 20,
101  'local_value' => 5,
102  'upload_handler_supports_chunks' => false,
103  'result' => 5
104  ],
105  ];
106  }
107 
111  public function testUploadLimitResolution(
112  int $php_ini_value,
113  ?int $custom_global_value,
114  ?int $local_value,
115  bool $upload_handler_supports_chunks,
116  int $expected_result,
117  ): void {
118  $resolver = new UploadLimitResolver($php_ini_value, $custom_global_value);
119 
120  if ($upload_handler_supports_chunks) {
121  $upload_handler = $this->upload_handler_with_chunks;
122  } else {
123  $upload_handler = $this->upload_handler_without_chunks;
124  }
125 
126  $actual_value = $resolver->getBestPossibleUploadLimitInBytes($upload_handler, $local_value);
127 
128  $this->assertEquals($expected_result, $actual_value);
129  }
130 }
testUploadLimitResolution(int $php_ini_value, ?int $custom_global_value, ?int $local_value, bool $upload_handler_supports_chunks, int $expected_result,)
provideUploadLimitResolutionDataSet