示例#1
0
 public function testRender()
 {
     $render = new CM_Frontend_Render();
     $name = 'foo';
     $data = array(32 => 'apples', 64 => 'oranges', 128 => 'bananas');
     $field = new CM_FormField_Set(['name' => $name, 'values' => $data, 'labelsInValues' => true]);
     $values = array(64, 128);
     $field->setValue($values);
     $doc = $this->_renderFormField($field);
     $this->assertSame(count($data), $doc->find('label')->count());
     $this->assertSame(count($data), $doc->find('input')->count());
     foreach ($data as $value => $label) {
         $this->assertTrue($doc->has('li.' . $name . '-value-' . $value));
         $this->assertTrue($doc->has('label[for]'));
         $this->assertTrue($doc->has('input[value="' . $value . '"]'));
         if (in_array($value, $values)) {
             $this->assertSame('checked', $doc->find('input[value="' . $value . '"]')->getAttribute('checked'));
         }
     }
 }
示例#2
0
文件: Select.php 项目: aladin1394/CM
 public function prepare(CM_Params $renderParams, CM_Frontend_Environment $environment, CM_Frontend_ViewResponse $viewResponse)
 {
     parent::prepare($renderParams, $environment, $viewResponse);
     $display = $renderParams->getString('display', self::DISPLAY_SELECT);
     if (!in_array($display, array(self::DISPLAY_SELECT, self::DISPLAY_RADIOS))) {
         throw new CM_Exception_InvalidParam('Display needs to be either `select` or `radios`');
     }
     $viewResponse->addCssClass($display);
     $viewResponse->set('display', $display);
     $viewResponse->set('labelPrefix', $renderParams->has('labelPrefix') ? $renderParams->getString('labelPrefix') : null);
     $viewResponse->set('placeholder', $renderParams->getBoolean('placeholder', false));
 }