19 declare(strict_types=1);
21 require_once(
"vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../Base.php");
39 \ILIAS\UI\Help\Topic::class,
40 \ILIAS\UI\Component\Progress\State\Bar\State::class,
41 \ILIAS\UI\Component\Input\Field\Node\Node::class,
42 \ILIAS\UI\Component\Input\Field\Node\Async::class,
43 \ILIAS\UI\Component\Input\Field\Node\Leaf::class,
54 $_SERVER[
"SERVER_NAME"] =
"localhost";
58 $_SERVER[
'QUERY_STRING'] =
"param=1";
61 $_POST[
"ilfilehash"] =
"";
63 $this->example_parser =
new Crawler\ExamplesYamlParser();
74 $this->dic[
"tpl"] = $this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false);
76 $this->dic[
"refinery"] = new \ILIAS\Refinery\Factory(
83 $this->dic[
"ui.template_factory"] = $this->getTemplateFactory();
85 $this->dic[
"ilCtrl"] = $this->getMockBuilder(\ilCtrl::class)->disableOriginalConstructor()->onlyMethods([
86 "getFormActionByClass",
"setParameterByClass",
"saveParameterByClass",
"getLinkTargetByClass",
"isAsynch" 88 $this->dic[
"ilCtrl"]->method(
"getFormActionByClass")->willReturn(
"Testing");
89 $this->dic[
"ilCtrl"]->method(
"getLinkTargetByClass")->willReturn(
"2");
90 $this->dic[
"ilCtrl"]->method(
"isAsynch")->willReturn(
false);
92 $this->dic[
"upload"] = $this->getMockBuilder(FileUpload::class)->getMock();
94 $this->dic[
"tree"] = $this->getMockBuilder(ilTree::class)
95 ->disableOriginalConstructor()
96 ->onlyMethods([
"getNodeData"])->getMock();
98 $this->dic[
"tree"]->method(
"getNodeData")->willReturn([
100 "title" =>
"mock root node",
104 $component_factory = $this->createMock(ilComponentFactory::class);
105 $component_factory->method(
"getActivePluginsInSlot")->willReturn(
new ArrayIterator());
106 $this->dic[
"component.factory"] = $component_factory;
122 if (in_array(trim($entry->getNamespace(),
'\\'), self::MAY_NOT_HAVE_EXAMPLES,
true)) {
125 if (!$entry->isAbstract()) {
126 $this->assertGreaterThan(
128 count($entry->getExamples()),
129 "Non abstract Component " . $entry->getNamespace()
130 .
" does not provide any example. Please provide at least one in " . $entry->getExamplesNamespace() .
" at " . $entry->getExamplesPath()
136 #[\PHPUnit\Framework\Attributes\DataProvider('getFullFunctionNamesAndPathExample')] 142 include_once $example_path;
144 $this->assertIsString($example_function_name(),
" Example $example_function_name does not render a string");
146 $this->assertTrue(
true);
150 #[\PHPUnit\Framework\Attributes\DataProvider('getFullFunctionNamesAndPathExample')] 153 $docs = $this->example_parser->parseYamlStringArrayFromFile($example_path);
154 $this->assertArrayHasKey(
'expected output', $docs);
162 $crawler =
new Crawler\FactoriesCrawler();
163 return $crawler->crawlFactory(self::$path_to_base_factory);
168 $function_names = [];
169 foreach (static::getEntriesFromCrawler() as $entry) {
170 foreach ($entry->getExamples() as $name => $example_path) {
171 $function_names[$entry->getExamplesNamespace() .
"\\" . $name] = [
172 $entry->getExamplesNamespace() .
"\\" . $name,
177 return $function_names;
180 #[\PHPUnit\Framework\Attributes\DataProvider('getListOfFullscreenExamples')] 186 include_once $example_path;
188 $this->assertIsString($example_function_name($DIC),
" Example $example_function_name does not render a string");
190 $this->assertTrue(
true);
197 [
'ILIAS\UI\examples\MainControls\Footer\base',
"components/ILIAS/UI/src/examples/MainControls/Footer/base.php"],
198 [
'ILIAS\UI\examples\MainControls\MetaBar\renderMetaBarInFullscreenMode',
"components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php"],
199 [
'ILIAS\UI\examples\Layout\Page\Standard\getUIMainbarExampleCondensed',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php"],
200 [
'ILIAS\UI\examples\Layout\Page\Standard\getUIMainbarExampleFull',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php"],
201 [
'ILIAS\UI\examples\Layout\Page\Standard\ui',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php"],
202 [
'ILIAS\UI\examples\MainControls\ModeInfo\renderModeInfoFullscreenMode',
"components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php"]
static getListOfFullscreenExamples()
Class ExamplesTest Checks if all examples are implemented and properly returning strings.
Interface Observer Contains several chained tasks and infos about them.
setUpMockDependencies()
Some wiring up of dependencies to get all the examples running.
Crawler ExamplesYamlParser $example_parser
This exception indicates that an UI component was accepted by the JF but is not backed by a real impl...
static string $path_to_base_factory
Customizing of pimple-DIC for ILIAS.
This is more or less a copy of the removed InitUIFramework file inside the Init component.
static getEntriesFromCrawler()
static getFullFunctionNamesAndPathExample()
testAllExamplesRenderAString(string $example_function_name, string $example_path)
testAllExamplesHaveExpectedOutcomeInDocs(string $example_function_name, string $example_path)
testFullscreenModeExamples(string $example_function_name, string $example_path)
const MAY_NOT_HAVE_EXAMPLES
testAllNonAbstractComponentsShowcaseExamples()
Responsible for loading the HTTP Service into the dependency injection container of ILIAS...