public function testMatchingGetPermissionsForView()
 {
     $permissionsNames = ModulePermissionsEditViewUtil::getPermissionNamesForView();
     $permissions = ModulePermissionsEditViewUtil::getPermissionsForView();
     $this->assertEquals(count($permissionsNames), count($permissions));
     $this->assertEquals(3, count($permissionsNames));
 }
 /**
  * Override to produce a form layout that does not follow the
  * standard form layout for EditView.
  */
 protected function renderFormLayout($form = null)
 {
     $content = '';
     $metadata = $this->getFormLayoutMetadata();
     $permissions = ModulePermissionsEditViewUtil::getPermissionsForView();
     assert('count($permissions) > 0');
     foreach ($metadata['global']['panels'] as $panel) {
         if (!empty($panel['title'])) {
             $content .= '<div class="panelTitle">' . $panel['title'] . '</div>';
         }
         $content .= '<table>';
         $content .= '<colgroup>';
         $content .= '<col style="width:20%" />';
         $width = 80 / count($permissions);
         foreach ($permissions as $permission) {
             $content .= '<col style="width:' . $width . '%" />';
         }
         $content .= '</colgroup>';
         $content .= '<tbody>';
         $content .= '<tr>';
         $content .= '<th>&#160;</th>';
         $permissionNames = ModulePermissionsEditViewUtil::getPermissionNamesForView();
         $permissionLabels = ModulePermissionsEditViewUtil::getPermissionLabelsForView();
         foreach ($permissionNames as $permission) {
             $content .= '<th>' . $permissionLabels[$permission] . '</th>';
         }
         $content .= '</tr>';
         foreach ($panel['rows'] as $row) {
             assert('!empty($row["title"])');
             $title = Zurmo::t('ZurmoModule', $row['title']);
             $rowTitlesAndContent[$title] = '<th>' . $title . '</th>';
             foreach ($row['cells'] as $cell) {
                 if (is_array($cell['elements']) && $this->shouldDisplayCell(ArrayUtil::getArrayValue($cell, 'detailViewOnly'))) {
                     foreach ($cell['elements'] as $elementInformation) {
                         $editableTemplate = '<td colspan="{colspan}">{content}{error}</td>';
                         $this->resolveElementInformationDuringFormLayoutRender($elementInformation);
                         $elementclassname = $elementInformation['type'] . 'Element';
                         $element = new $elementclassname($this->model, $elementInformation['attributeName'], $form, array_slice($elementInformation, 2));
                         $element->editableTemplate = $editableTemplate;
                         $rowTitlesAndContent[$title] .= $element->render();
                     }
                 }
             }
         }
         ksort($rowTitlesAndContent);
         foreach ($rowTitlesAndContent as $rowcontent) {
             if (!empty($rowcontent)) {
                 $content .= '<tr>';
                 $content .= $rowcontent;
                 $content .= '</tr>';
             }
         }
         $content .= '</tbody>';
         $content .= '</table>';
     }
     return $content;
 }