public function testGetAdministrableModuleClassNames()
 {
     $names = GroupModulePermissionsDataToEditViewAdapater::getAdministrableModuleClassNames();
     $this->assertTrue(in_array('AccountsModule', $names));
     $this->assertTrue(in_array('ContactsModule', $names));
     $this->assertTrue(in_array('MeetingsModule', $names));
     $this->assertTrue(in_array('NotesModule', $names));
     $this->assertTrue(in_array('OpportunitiesModule', $names));
     $this->assertTrue(in_array('TasksModule', $names));
 }
 public static function resolveData($data)
 {
     assert('is_array($data)');
     $resolvedData = array();
     foreach ($data as $moduleClassName => $modulePermissions) {
         if (in_array($moduleClassName, GroupModulePermissionsDataToEditViewAdapater::getAdministrableModuleClassNames())) {
             $resolvedData[$moduleClassName] = $modulePermissions;
         }
     }
     return $resolvedData;
 }
 public function testResolveMetadataFromPermissionsData()
 {
     $data = array('AccountsModule' => array(Permission::CHANGE_OWNER => array('explicit' => null, 'inherited' => null), Permission::CHANGE_PERMISSIONS => array('explicit' => null, 'inherited' => null), Permission::DELETE => array('explicit' => null, 'inherited' => null), Permission::READ => array('explicit' => null, 'inherited' => Permission::ALLOW), Permission::WRITE => array('explicit' => null, 'inherited' => Permission::DENY)), 'ContactsModule' => array(Permission::CHANGE_OWNER => array('explicit' => null, 'inherited' => null), Permission::CHANGE_PERMISSIONS => array('explicit' => null, 'inherited' => null), Permission::DELETE => array('explicit' => null, 'inherited' => null), Permission::READ => array('explicit' => null, 'inherited' => Permission::ALLOW), Permission::WRITE => array('explicit' => null, 'inherited' => Permission::DENY)));
     $this->assertTrue(in_array('AccountsModule', GroupModulePermissionsDataToEditViewAdapater::getAdministrableModuleClassNames()));
     $newData = GroupModulePermissionsDataToEditViewAdapater::resolveData($data);
     $this->assertNotEmpty($newData);
     $this->assertEquals($data, $newData);
     $metadata = ModulePermissionsEditViewUtil::resolveMetadataFromData($newData, ModulePermissionsEditAndDetailsView::getMetadata());
     $compareData = array('global' => array('toolbar' => array('elements' => array(array('type' => 'CancelLink', 'renderType' => 'Edit'), array('type' => 'SaveButton', 'renderType' => 'Edit'))), 'panels' => array(array('rows' => array(array('title' => 'Accounts', 'cells' => array(array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::READ, 'type' => 'PermissionInheritedAllowStaticDropDown'))), array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::WRITE, 'type' => 'PermissionInheritedDenyText'))), array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::DELETE, 'type' => 'PermissionStaticDropDown'))))), array('title' => 'Contacts & Leads', 'cells' => array(array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::READ, 'type' => 'PermissionInheritedAllowStaticDropDown'))), array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::WRITE, 'type' => 'PermissionInheritedDenyText'))), array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::DELETE, 'type' => 'PermissionStaticDropDown'))))))))));
     $this->assertSame($compareData, $metadata);
     $metadata = ModulePermissionsActualDetailsViewUtil::resolveMetadataFromData($newData, ModulePermissionsEditAndDetailsView::getMetadata());
     $compareData = array('global' => array('toolbar' => array('elements' => array(array('type' => 'CancelLink', 'renderType' => 'Edit'), array('type' => 'SaveButton', 'renderType' => 'Edit'))), 'panels' => array(array('rows' => array(array('title' => 'Accounts', 'cells' => array(array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::READ . '__actual', 'type' => 'PermissionActual'))), array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::WRITE . '__actual', 'type' => 'PermissionActual'))), array('elements' => array(array('attributeName' => 'AccountsModule__' . Permission::DELETE . '__actual', 'type' => 'PermissionActual'))))), array('title' => 'Contacts & Leads', 'cells' => array(array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::READ . '__actual', 'type' => 'PermissionActual'))), array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::WRITE . '__actual', 'type' => 'PermissionActual'))), array('elements' => array(array('attributeName' => 'ContactsModule__' . Permission::DELETE . '__actual', 'type' => 'PermissionActual'))))))))));
     $this->assertSame($compareData, $metadata);
 }