|
| testCapabilityPriority (bool $wopi_view, bool $wopi_edit, bool $infopage_first, array $user_permissions, Capabilities $expected_best) |
|
Definition at line 32 of file CapabilityTest.php.
◆ arrayToMarkdownTable()
static CapabilityTest::arrayToMarkdownTable |
( |
array |
$data | ) |
|
|
staticprivate |
Definition at line 310 of file CapabilityTest.php.
319 static fn($col_index):
int => max(
321 static fn($row):
int => isset($row[$col_index]) ? mb_strlen((
string) $row[$col_index]) : 0,
329 $pad_row =
static fn($row): array =>
array_map(static
function ($value, $index) use ($col_widths): string {
331 return str_pad($value, $col_widths[$index],
" ", STR_PAD_RIGHT);
332 }, $row, array_keys($col_widths));
335 $header = $pad_row(
$data[0]);
340 . implode(
" | ", $header)
343 . implode(
" | ",
array_map(
static fn($width):
string => str_repeat(
"-", $width), $col_widths))
345 $data_rows =
array_map(
static fn($row):
string =>
"| " . implode(
" | ", $row) .
" |", $rows);
348 return implode(
"\n", array_merge([$header_row, $sep_row], $data_rows));
◆ environmentProvider()
static CapabilityTest::environmentProvider |
( |
| ) |
|
|
static |
Definition at line 94 of file CapabilityTest.php.
100 'infopage_first' =>
true,
101 'user_permissions' => [
104 Permissions::VISIBLE,
105 Permissions::EDIT_CONTENT,
106 Permissions::VIEW_CONTENT
108 'expected_best' => Capabilities::FORCED_INFO_PAGE
113 'infopage_first' =>
false,
114 'user_permissions' => [
117 Permissions::VISIBLE,
118 Permissions::EDIT_CONTENT,
119 Permissions::VIEW_CONTENT
121 'expected_best' => Capabilities::VIEW_EXTERNAL
126 'infopage_first' =>
false,
127 'user_permissions' => [
128 Permissions::EDIT_CONTENT,
129 Permissions::VIEW_CONTENT
131 'expected_best' => Capabilities::VIEW_EXTERNAL
134 'wopi_view' =>
false,
135 'wopi_edit' =>
false,
136 'infopage_first' =>
true,
137 'user_permissions' => [
141 'expected_best' => Capabilities::FORCED_INFO_PAGE
146 'infopage_first' =>
false,
147 'user_permissions' => [
148 Permissions::EDIT_CONTENT,
150 'expected_best' => Capabilities::EDIT_EXTERNAL
155 'infopage_first' =>
false,
156 'user_permissions' => [
159 'expected_best' => Capabilities::DOWNLOAD
164 'infopage_first' =>
false,
165 'user_permissions' => [
169 'expected_best' => Capabilities::DOWNLOAD
174 'infopage_first' =>
false,
175 'user_permissions' => [
178 'expected_best' => Capabilities::MANAGE_VERSIONS
183 'infopage_first' =>
false,
184 'user_permissions' => [
185 Permissions::VISIBLE,
187 'expected_best' => Capabilities::INFO_PAGE
192 'infopage_first' =>
true,
193 'user_permissions' => [
197 'expected_best' => Capabilities::FORCED_INFO_PAGE
202 'infopage_first' =>
false,
203 'user_permissions' => [
206 'expected_best' => Capabilities::NONE
◆ setUp()
CapabilityTest::setUp |
( |
| ) |
|
|
protected |
Definition at line 51 of file CapabilityTest.php.
References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), and ILIAS\FileDelivery\http().
53 if (!defined(
'ILIAS_HTTP_PATH')) {
54 define(
'ILIAS_HTTP_PATH',
'https://ilias.unit.test');
57 $this->file_info_repository = $this->createMock(\ilObjFileInfoRepository::class);
58 $this->
access = $this->createMock(\ilAccessHandler::class);
59 $this->
ctrl = $this->createMock(\ilCtrlInterface::class);
60 $this->action_repository = $this->createMock(ActionRepository::class);
61 $this->
http = $this->createMock(Services::class);
62 $this->static_url = $this->createMock(URIBuilder::class);
63 $this->type_resolver = $this->createMock(TypeResolver::class);
64 $this->workspace_access_handler = $this->createMock(ilWorkspaceAccessHandler::class);
66 $this->type_resolver->method(
'resolveTypeByObjectId')
71 $this->file_info_repository,
74 $this->action_repository,
78 $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 |
$user_permissions, |
|
|
Capabilities |
$expected_best |
|
) |
| |
Definition at line 212 of file CapabilityTest.php.
References $context, $id, and ILIAS\Repository\access().
220 $permissions = $user_permissions;
227 Context::CONTEXT_REPO
230 $this->
access->method(
'checkAccess')
231 ->willReturnCallback(
232 function (
string $permission) use ($permissions):
bool {
233 $checked_permissions = explode(
',', $permission);
234 $common_permissions = array_intersect(
238 return $common_permissions !== [];
242 $file_info = $this->createMock(\ilObjFileInfo::class);
243 $file_info->method(
'shouldDownloadDirectly')
244 ->willReturn(!$infopage_first);
246 $this->file_info_repository->method(
'getByObjectId')
248 ->willReturn($file_info);
250 $this->action_repository->method(
'hasEditActionForSuffix')
251 ->willReturn($wopi_edit);
253 $this->action_repository->method(
'hasViewActionForSuffix')
254 ->willReturn($wopi_view);
256 $capabilities = $this->capability_builder->get(
$context);
257 $best = $capabilities->getBest();
259 $this->assertEquals($expected_best, $best->getCapability());
261 self::$readme_infos[] = [
263 ($wopi_view ?
'Yes' :
'No'),
264 ($wopi_edit ?
'Yes' :
'No'),
265 ($infopage_first ?
'Info-Page' :
'Open'),
266 $best->getCapability()->name
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
◆ updateREADME()
static CapabilityTest::updateREADME |
( |
| ) |
|
|
staticprivate |
Definition at line 270 of file CapabilityTest.php.
References Vendor\Package\$a, and Vendor\Package\$b.
273 $readme_file = __DIR__ .
'/../../docs/README.md';
274 $readme_content = file_get_contents($readme_file);
278 'User\'s Permissions',
279 'WOPI View Action av.',
280 'WOPI Edit Action av.',
282 'Expected Capability' 288 $a_string = implode(
'', array_reverse(
$a));
289 $b_string = implode(
'', array_reverse(
$b));
291 return strcmp((
string) $a_string, (
string) $b_string);
297 $start_marker =
"<!-- START CAPABILITY_TABLE -->";
298 $end_marker =
"<!-- END CAPABILITY_TABLE -->";
301 $new_block = $start_marker .
"\n\n" . self::arrayToMarkdownTable($table) .
"\n\n" . $end_marker;
304 $pattern =
'/' . preg_quote($start_marker,
'/') .
'.*?' . preg_quote($end_marker,
'/') .
'/s';
305 $readme_content = preg_replace($pattern, $new_block, $readme_content);
307 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 |
◆ $static_url
◆ $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: