|
| | testCapabilityPriority (bool $wopi_view, bool $wopi_edit, bool $infopage_first, array $permissions, Capabilities $expected_best) |
| | environmentProvider More...
|
| |
Definition at line 31 of file CapabilityTest.php.
◆ arrayToMarkdownTable()
| static CapabilityTest::arrayToMarkdownTable |
( |
array |
$data | ) |
|
|
staticprivate |
Definition at line 307 of file CapabilityTest.php.
315 $col_widths = array_map(
316 static fn($col_index):
int => max(
318 static fn($row):
int => isset($row[$col_index]) ? mb_strlen((
string) $row[$col_index]) : 0,
326 $pad_row =
static fn($row): array => array_map(static
function ($value, $index) use ($col_widths): string {
328 return str_pad($value, $col_widths[$index],
" ", STR_PAD_RIGHT);
329 }, $row, array_keys($col_widths));
332 $header = $pad_row(
$data[0]);
333 $rows = array_map($pad_row, array_slice(
$data, 1));
337 . implode(
" | ", $header)
340 . implode(
" | ", array_map(
static fn($width):
string => str_repeat(
"-", $width), $col_widths))
342 $data_rows = array_map(
static fn($row):
string =>
"| " . implode(
" | ", $row) .
" |", $rows);
345 return implode(
"\n", array_merge([$header_row, $sep_row], $data_rows));
◆ environmentProvider()
| static CapabilityTest::environmentProvider |
( |
| ) |
|
|
static |
Definition at line 90 of file CapabilityTest.php.
96 'infopage_first' =>
true,
97 'user_permissions' => [
100 Permissions::VISIBLE,
101 Permissions::EDIT_CONTENT,
102 Permissions::VIEW_CONTENT
104 'expected_best' => Capabilities::FORCED_INFO_PAGE
109 'infopage_first' =>
false,
110 'user_permissions' => [
113 Permissions::VISIBLE,
114 Permissions::EDIT_CONTENT,
115 Permissions::VIEW_CONTENT
117 'expected_best' => Capabilities::EDIT_EXTERNAL
122 'infopage_first' =>
false,
123 'user_permissions' => [
124 Permissions::EDIT_CONTENT,
125 Permissions::VIEW_CONTENT
127 'expected_best' => Capabilities::EDIT_EXTERNAL
130 'wopi_view' =>
false,
131 'wopi_edit' =>
false,
132 'infopage_first' =>
true,
133 'user_permissions' => [
137 'expected_best' => Capabilities::FORCED_INFO_PAGE
142 'infopage_first' =>
false,
143 'user_permissions' => [
144 Permissions::EDIT_CONTENT,
146 'expected_best' => Capabilities::EDIT_EXTERNAL
151 'infopage_first' =>
false,
152 'user_permissions' => [
155 'expected_best' => Capabilities::DOWNLOAD
160 'infopage_first' =>
false,
161 'user_permissions' => [
165 'expected_best' => Capabilities::DOWNLOAD
170 'infopage_first' =>
false,
171 'user_permissions' => [
174 'expected_best' => Capabilities::MANAGE_VERSIONS
179 'infopage_first' =>
false,
180 'user_permissions' => [
181 Permissions::VISIBLE,
183 'expected_best' => Capabilities::INFO_PAGE
188 'infopage_first' =>
true,
189 'user_permissions' => [
193 'expected_best' => Capabilities::FORCED_INFO_PAGE
198 'infopage_first' =>
false,
199 'user_permissions' => [
202 'expected_best' => Capabilities::NONE
◆ setUp()
| CapabilityTest::setUp |
( |
| ) |
|
|
protected |
Definition at line 49 of file CapabilityTest.php.
References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), and ILIAS\FileDelivery\http().
51 if (!defined(
'ILIAS_HTTP_PATH')) {
52 define(
'ILIAS_HTTP_PATH',
'https://ilias.unit.test');
55 $this->file_info_repository = $this->createMock(\ilObjFileInfoRepository::class);
56 $this->
access = $this->createMock(\ilAccessHandler::class);
57 $this->
ctrl = $this->createMock(\ilCtrlInterface::class);
58 $this->action_repository = $this->createMock(ActionRepository::class);
59 $this->
http = $this->createMock(Services::class);
60 $this->type_resolver = $this->createMock(TypeResolver::class);
61 $this->workspace_access_handler = $this->createMock(ilWorkspaceAccessHandler::class);
63 $this->type_resolver->method(
'resolveTypeByObjectId')
68 $this->file_info_repository,
71 $this->action_repository,
74 $this->workspace_access_handler
static http()
Fetches the global http state from ILIAS.
◆ tearDown()
| CapabilityTest::tearDown |
( |
| ) |
|
|
protected |
◆ tearDownAfterClass()
| static CapabilityTest::tearDownAfterClass |
( |
| ) |
|
|
static |
◆ testCapabilityPriority()
| CapabilityTest::testCapabilityPriority |
( |
bool |
$wopi_view, |
|
|
bool |
$wopi_edit, |
|
|
bool |
$infopage_first, |
|
|
array |
$permissions, |
|
|
Capabilities |
$expected_best |
|
) |
| |
environmentProvider
Definition at line 210 of file CapabilityTest.php.
References $context, $id, and ILIAS\Repository\access().
224 Context::CONTEXT_REPO
227 $this->
access->method(
'checkAccess')
228 ->willReturnCallback(
229 function (
string $permission) use ($permissions):
bool {
230 $checked_permissions = explode(
',', $permission);
231 $common_permissions = array_intersect(
232 array_map(
static fn(
Permissions $p):
string => $p->value, $permissions),
235 return $common_permissions !== [];
239 $file_info = $this->createMock(\ilObjFileInfo::class);
240 $file_info->method(
'shouldDownloadDirectly')
241 ->willReturn(!$infopage_first);
243 $this->file_info_repository->method(
'getByObjectId')
245 ->willReturn($file_info);
247 $this->action_repository->method(
'hasEditActionForSuffix')
248 ->willReturn($wopi_edit);
250 $this->action_repository->method(
'hasViewActionForSuffix')
251 ->willReturn($wopi_view);
253 $capabilities = $this->capability_builder->get(
$context);
254 $best = $capabilities->getBest();
256 $this->assertEquals($expected_best, $best->getCapability());
258 self::$readme_infos[] = [
259 implode(
', ', array_map(fn(
Permissions $p):
string => $p->value, $permissions)),
260 ($wopi_view ?
'Yes' :
'No'),
261 ($wopi_edit ?
'Yes' :
'No'),
262 ($infopage_first ?
'Info-Page' :
'Open'),
263 $best->getCapability()->name
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
◆ updateREADME()
| static CapabilityTest::updateREADME |
( |
| ) |
|
|
staticprivate |
Definition at line 267 of file CapabilityTest.php.
References Vendor\Package\$a, and Vendor\Package\$b.
270 $readme_file = __DIR__ .
'/../../docs/README.md';
271 $readme_content = file_get_contents($readme_file);
275 'User\'s Permissions',
276 'WOPI View Action av.',
277 'WOPI Edit Action av.',
279 'Expected Capability' 285 $a_string = implode(
'', array_reverse(
$a));
286 $b_string = implode(
'', array_reverse(
$b));
288 return strcmp((
string) $a_string, (
string) $b_string);
294 $start_marker =
"<!-- START CAPABILITY_TABLE -->";
295 $end_marker =
"<!-- END CAPABILITY_TABLE -->";
298 $new_block = $start_marker .
"\n\n" . self::arrayToMarkdownTable($table) .
"\n\n" . $end_marker;
301 $pattern =
'/' . preg_quote($start_marker,
'/') .
'.*?' . preg_quote($end_marker,
'/') .
'/s';
302 $readme_content = preg_replace($pattern, $new_block, $readme_content);
304 file_put_contents($readme_file, $readme_content);
static array $readme_infos
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
◆ $access
◆ $action_repository
◆ $capability_builder
◆ $ctrl
◆ $file_info_repository
◆ $http
| Services MockObject CapabilityTest::$http |
|
private |
◆ $readme_infos
| array CapabilityTest::$readme_infos = [] |
|
staticprivate |
◆ $type_resolver
| PHPUnit Framework MockObject MockObject TypeResolver CapabilityTest::$type_resolver |
◆ $update_readme
| bool CapabilityTest::$update_readme = false |
|
staticprivate |
◆ $workspace_access_handler
| PHPUnit Framework MockObject MockObject CapabilityTest::$workspace_access_handler |
The documentation for this class was generated from the following file: