19declare(strict_types=1);
21require_once(
"vendor/composer/vendor/autoload.php");
22require_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";
74 $this->dic[
"tpl"] = $this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false);
76 $this->dic[
"refinery"] = new \ILIAS\Refinery\Factory(
77 new ILIAS\Data\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);
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"]
Class ExamplesTest Checks if all examples are implemented and properly returning strings.
static getFullFunctionNamesAndPathExample()
static getListOfFullscreenExamples()
const MAY_NOT_HAVE_EXAMPLES
testAllNonAbstractComponentsShowcaseExamples()
testAllExamplesRenderAString(string $example_function_name, string $example_path)
static string $path_to_base_factory
Crawler ExamplesYamlParser $example_parser
testAllExamplesHaveExpectedOutcomeInDocs(string $example_function_name, string $example_path)
testFullscreenModeExamples(string $example_function_name, string $example_path)
setUpMockDependencies()
Some wiring up of dependencies to get all the examples running.
static getEntriesFromCrawler()
Customizing of pimple-DIC for ILIAS.
This HelpTextRetriever simply echo the purpose and the topics for debugging and development purpose.
This exception indicates that an UI component was accepted by the JF but is not backed by a real impl...
Provides common functionality for UI tests.
Responsible for loading the HTTP Service into the dependency injection container of ILIAS.
This is more or less a copy of the removed InitUIFramework file inside the Init component.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.