/** * Renders the given element. * * @param array $element * - tag: string * - content: string * - options: array * - prepend: array * - append: array * - allowEmpty: bool * * @return string the rendered element. */ public function renderElement(array $element) { $content = $this->prepend($element['prepend']) . $element['content'] . $this->append($element['append']); if (empty($content) && isset($element['allowEmpty']) && $element['allowEmpty'] === false) { return ''; } if (isset($element['formatter']) && is_callable($element['formatter'])) { $content = call_user_func($element['formatter'], $element, $content); } if ($element['tag'] === false) { return $content; } return Html::tag($element['tag'], $content, $element['options']); }
public function testProgress() { $I = $this->codeGuy; // default $html = Html::progress(60); $progress = $I->createNode($html, 'div.progress'); $bar = $progress->filter('div.progress-bar'); $I->seeNodeAttributes($bar, ['role' => 'progressbar', 'aria-valuenow' => '60', 'aria-valuemin' => '0', 'aria-valuemax' => '100']); $I->seeNodeCssStyle($bar, 'width: 60%'); $span = $bar->filter('span.sr-only'); $I->seeNodeText($span, '60%'); // show percentage $html = Html::progress(60, ['showLabel' => true]); $progress = $I->createNode($html, 'div.progress'); $bar = $progress->filter('div.progress-bar'); $I->seeNodeText($bar, '60%'); // contexts foreach (array(Progress::CONTEXT_SUCCESS, Progress::CONTEXT_INFO, Progress::CONTEXT_WARNING, Progress::CONTEXT_DANGER) as $context) { $html = Html::progress(60, ['context' => $context]); $progress = $I->createNode($html, 'div.progress'); $bar = $progress->filter('div.progress-bar'); $I->seeNodeCssClass($bar, 'progress-bar-' . $context); } // striped $html = Html::progress(60, ['striped' => true]); $progress = $I->createNode($html, 'div.progress'); $I->seeNodeCssClass($progress, 'progress-striped'); // animated $html = Html::progress(60, ['animated' => true]); $progress = $I->createNode($html, 'div.progress'); $I->seeNodeCssClass($progress, 'progress-striped active'); // stacked $bars = [['percentage' => 35, 'context' => Progress::CONTEXT_SUCCESS], ['percentage' => 20, 'context' => Progress::CONTEXT_WARNING], ['percentage' => 10, 'context' => Progress::CONTEXT_DANGER]]; $html = Html::progress($bars); $progress = $I->createNode($html, 'div.progress'); foreach ($progress->children() as $n => $barElement) { $bar = $I->createNode($barElement, 'div.progress-bar'); $I->seeNodeCssClass($bar, 'progress-bar-' . $bars[$n]['context']); $span = $bar->filter('span.sr-only'); $I->seeNodeText($span, $bars[$n]['percentage'] . '%'); } }