Ejemplo n.º 1
0
 /**
  * Builds a list of fields
  */
 public function fieldList()
 {
     $custom_fields = $this->storage->listAll('ds.field.');
     if (!empty($custom_fields)) {
         $rows = array();
         foreach ($custom_fields as $config) {
             $field_value = $this->config($config)->get();
             $row = array();
             $row[] = array('data' => array('#plain_text' => $field_value['label']));
             $row[] = isset($field_value['type_label']) ? $field_value['type_label'] : $this->t('Unknown');
             $row[] = $field_value['id'];
             $row[] = ucwords(str_replace('_', ' ', implode(', ', $field_value['entities'])));
             $operations = array();
             $operations['edit'] = array('title' => $this->t('Edit'), 'url' => new Url('ds.manage_field', array('field_key' => $field_value['id'])));
             $operations['delete'] = array('title' => $this->t('Delete'), 'url' => new Url('ds.delete_field', array('field_key' => $field_value['id'])));
             $this->moduleHandler->alter('ds_field_operations', $operations, $field_value);
             $row[] = array('data' => array('#type' => 'operations', '#subtype' => 'ds', '#links' => $operations));
             $rows[] = $row;
         }
         $build = array('#theme' => 'table', '#header' => array('Label', 'Type', 'Machine name', 'Entities', 'Operations'), '#rows' => $rows);
     } else {
         $build = array('#markup' => $this->t('No custom fields have been defined.'));
     }
     return $build;
 }
 /**
  * Tests an invalid storage.
  */
 public function testInvalidStorage()
 {
     $name = 'config_test.storage';
     // Write something to the valid storage to prove that the storages do not
     // pollute one another.
     $data = array('foo' => 'bar');
     $result = $this->storage->write($name, $data);
     $this->assertIdentical($result, TRUE);
     $raw_data = $this->read($name);
     $this->assertIdentical($raw_data, $data);
     // Reading from a non-existing storage bin returns FALSE.
     $result = $this->invalidStorage->read($name);
     $this->assertIdentical($result, FALSE);
     // Deleting from a non-existing storage bin throws an exception.
     try {
         $this->invalidStorage->delete($name);
         $this->fail('Exception not thrown upon deleting from a non-existing storage bin.');
     } catch (\Exception $e) {
         $class = get_class($e);
         $this->pass($class . ' thrown upon deleting from a non-existing storage bin.');
     }
     // Listing on a non-existing storage bin returns an empty array.
     $result = $this->invalidStorage->listAll();
     $this->assertIdentical($result, array());
     // Writing to a non-existing storage bin creates the bin.
     $this->invalidStorage->write($name, array('foo' => 'bar'));
     $result = $this->invalidStorage->read($name);
     $this->assertIdentical($result, array('foo' => 'bar'));
 }
Ejemplo n.º 3
0
 /**
  * Tests storage CRUD operations.
  *
  * @todo Coverage: Trigger PDOExceptions / Database exceptions.
  */
 function testCRUD()
 {
     $name = 'config_test.storage';
     // Checking whether a non-existing name exists returns FALSE.
     $this->assertIdentical($this->storage->exists($name), FALSE);
     // Reading a non-existing name returns FALSE.
     $data = $this->storage->read($name);
     $this->assertIdentical($data, FALSE);
     // Writing data returns TRUE and the data has been written.
     $data = array('foo' => 'bar');
     $result = $this->storage->write($name, $data);
     $this->assertIdentical($result, TRUE);
     $raw_data = $this->read($name);
     $this->assertIdentical($raw_data, $data);
     // Checking whether an existing name exists returns TRUE.
     $this->assertIdentical($this->storage->exists($name), TRUE);
     // Writing the identical data again still returns TRUE.
     $result = $this->storage->write($name, $data);
     $this->assertIdentical($result, TRUE);
     // Listing all names returns all.
     $names = $this->storage->listAll();
     $this->assertTrue(in_array('system.performance', $names));
     $this->assertTrue(in_array($name, $names));
     // Listing all names with prefix returns names with that prefix only.
     $names = $this->storage->listAll('config_test.');
     $this->assertFalse(in_array('system.performance', $names));
     $this->assertTrue(in_array($name, $names));
     // Rename the configuration storage object.
     $new_name = 'config_test.storage_rename';
     $this->storage->rename($name, $new_name);
     $raw_data = $this->read($new_name);
     $this->assertIdentical($raw_data, $data);
     // Rename it back so further tests work.
     $this->storage->rename($new_name, $name);
     // Deleting an existing name returns TRUE.
     $result = $this->storage->delete($name);
     $this->assertIdentical($result, TRUE);
     // Deleting a non-existing name returns FALSE.
     $result = $this->storage->delete($name);
     $this->assertIdentical($result, FALSE);
     // Deleting all names with prefix deletes the appropriate data and returns
     // TRUE.
     $files = array('config_test.test.biff', 'config_test.test.bang', 'config_test.test.pow');
     foreach ($files as $name) {
         $this->storage->write($name, $data);
     }
     $result = $this->storage->deleteAll('config_test.');
     $names = $this->storage->listAll('config_test.');
     $this->assertIdentical($result, TRUE);
     $this->assertIdentical($names, array());
     // Test renaming an object that does not exist throws an exception.
     try {
         $this->storage->rename('config_test.storage_does_not_exist', 'config_test.storage_does_not_exist_rename');
     } catch (\Exception $e) {
         $class = get_class($e);
         $this->pass($class . ' thrown upon renaming a nonexistent storage bin.');
     }
     // Test renaming to an object that already exists throws an exception.
     try {
         $this->storage->rename('system.cron', 'system.performance');
     } catch (\Exception $e) {
         $class = get_class($e);
         $this->pass($class . ' thrown upon renaming a nonexistent storage bin.');
     }
 }