Esempio n. 1
0
 /**
  * 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']);
 }
Esempio n. 2
0
 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'] . '%');
     }
 }