Exemplo n.º 1
0
 function testTableFieldSaving()
 {
     $group = $this->objFromFixture('Group', 'a');
     $tableField = new TableField("Permissions", "Permission", array("Code" => _t('SecurityAdmin.CODE', 'Code'), "Arg" => _t('SecurityAdmin.OPTIONALID', 'Optional ID')), array("Code" => "PermissionDropdownField", "Arg" => "TextField"), "GroupID", $group->ID);
     $form = new Form(new TableFieldTest_Controller(), "Form", new FieldSet($tableField), new FieldSet());
     /* The field starts emppty.  Save some new data.  We have replicated the array structure that the specific layout of the form generates. */
     $tableField->setValue(array('new' => array('Code' => array('CMS_ACCESS_CMSMain', 'CMS_ACCESS_AssetAdmin'), 'Arg' => array('1', '2'))));
     $tableField->saveInto($group);
     /* Let's check that the 2 permissions entries have been saved */
     $permissions = $group->Permissions()->toDropdownMap('Arg', 'Code');
     $this->assertEquals(array(1 => 'CMS_ACCESS_CMSMain', 2 => 'CMS_ACCESS_AssetAdmin'), $permissions);
     /* Now let's perform an update query */
     $value = array();
     foreach ($group->Permissions() as $permission) {
         $value[$permission->ID] = array("Code" => $permission->Code, "Arg" => $permission->Arg);
     }
     $value['new'] = array('Code' => array('CMS_ACCESS_NewsletterAdmin'), 'Arg' => array('3'));
     $tableField->setValue($value);
     $tableField->saveInto($group);
     /* Let's check that the 2 existing permissions entries, and the 1 new one, have been saved */
     $permissions = $group->Permissions()->toDropdownMap('Arg', 'Code');
     $this->assertEquals(array(1 => 'CMS_ACCESS_CMSMain', 2 => 'CMS_ACCESS_AssetAdmin', 3 => 'CMS_ACCESS_NewsletterAdmin'), $permissions);
 }
Exemplo n.º 2
0
 function testEdit()
 {
     $group = $this->objFromFixture('Group', 'group2_existing_perms');
     $perm1 = $this->objFromFixture('Permission', 'perm1');
     $perm2 = $this->objFromFixture('Permission', 'perm2');
     $tableField = new TableField("Permissions", "Permission", array("Code" => 'Code', "Arg" => 'Arg'), array("Code" => "TextField", "Arg" => "TextField"), "GroupID", $group->ID);
     $form = new Form(new TableFieldTest_Controller(), "Form", new FieldList($tableField), new FieldList());
     $this->assertEquals(2, $tableField->sourceItems()->Count());
     // We have replicated the array structure that the specific layout of the form generates.
     $tableField->setValue(array($perm1->ID => array('Code' => 'Perm1 Modified', 'Arg' => '101'), $perm2->ID => array('Code' => 'Perm2 Modified', 'Arg' => '102')));
     $tableField->saveInto($group);
     // Let's check that the 2 permissions entries have been saved
     $permissions = $group->Permissions()->map('Arg', 'Code');
     $this->assertEquals(array(101 => 'Perm1 Modified', 102 => 'Perm2 Modified'), $permissions);
 }