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,
51 $_SERVER[
"SERVER_NAME"] =
"localhost";
55 $_SERVER[
'QUERY_STRING'] =
"param=1";
60 $this->example_parser =
new Crawler\ExamplesYamlParser();
71 $this->dic[
"tpl"] = $this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false);
73 $this->dic[
"refinery"] = new \ILIAS\Refinery\Factory(
79 $this->dic[
"ui.template_factory"] = $this->getTemplateFactory();
81 $this->dic[
"ilCtrl"] = $this->getMockBuilder(\ilCtrl::class)->disableOriginalConstructor()->onlyMethods([
82 "getFormActionByClass",
"setParameterByClass",
"saveParameterByClass",
"getLinkTargetByClass",
"isAsynch" 84 $this->dic[
"ilCtrl"]->method(
"getFormActionByClass")->willReturn(
"Testing");
85 $this->dic[
"ilCtrl"]->method(
"getLinkTargetByClass")->willReturn(
"2");
86 $this->dic[
"ilCtrl"]->method(
"isAsynch")->willReturn(
false);
88 $this->dic[
"upload"] = $this->getMockBuilder(FileUpload::class)->getMock();
90 $this->dic[
"tree"] = $this->getMockBuilder(ilTree::class)
91 ->disableOriginalConstructor()
92 ->onlyMethods([
"getNodeData"])->getMock();
94 $this->dic[
"tree"]->method(
"getNodeData")->willReturn([
96 "title" =>
"mock root node",
100 $component_factory = $this->createMock(ilComponentFactory::class);
101 $component_factory->method(
"getActivePluginsInSlot")->willReturn(
new ArrayIterator());
102 $this->dic[
"component.factory"] = $component_factory;
118 if (in_array(trim($entry->getNamespace(),
'\\'), self::MAY_NOT_HAVE_EXAMPLES,
true)) {
121 if (!$entry->isAbstract()) {
122 $this->assertGreaterThan(
124 count($entry->getExamples()),
125 "Non abstract Component " . $entry->getNamespace()
126 .
" does not provide any example. Please provide at least one in " . $entry->getExamplesNamespace() .
" at " . $entry->getExamplesPath()
140 include_once $example_path;
142 $this->assertIsString($example_function_name(),
" Example $example_function_name does not render a string");
144 $this->assertTrue(
true);
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;
188 include_once $example_path;
190 $this->assertIsString($example_function_name($DIC),
" Example $example_function_name does not render a string");
192 $this->assertTrue(
true);
199 [
'ILIAS\UI\examples\MainControls\Footer\base',
"components/ILIAS/UI/src/examples/MainControls/Footer/base.php"],
200 [
'ILIAS\UI\examples\MainControls\MetaBar\renderMetaBarInFullscreenMode',
"components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php"],
201 [
'ILIAS\UI\examples\Layout\Page\Standard\getUIMainbarExampleCondensed',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php"],
202 [
'ILIAS\UI\examples\Layout\Page\Standard\getUIMainbarExampleFull',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php"],
203 [
'ILIAS\UI\examples\Layout\Page\Standard\ui',
"components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php"],
204 [
'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.
Responsible for loading the UI Framework into the dependency injection container of ILIAS...
static getEntriesFromCrawler()
static getFullFunctionNamesAndPathExample()
testAllExamplesRenderAString(string $example_function_name, string $example_path)
getFullFunctionNamesAndPathExample
testAllExamplesHaveExpectedOutcomeInDocs(string $example_function_name, string $example_path)
getFullFunctionNamesAndPathExample
testFullscreenModeExamples(string $example_function_name, string $example_path)
getListOfFullscreenExamples
const MAY_NOT_HAVE_EXAMPLES
testAllNonAbstractComponentsShowcaseExamples()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Responsible for loading the HTTP Service into the dependency injection container of ILIAS...