Issue #2256679 by alexpott, tim.plunkett: Fixed Use config schema to determine which config entity properties to export regardless of whether they are public or protected.
parent
7d1c02a73d
commit
0c33183a9e
|
@ -235,15 +235,9 @@ config_dependencies:
|
|||
config_entity:
|
||||
type: mapping
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
uuid:
|
||||
type: string
|
||||
label: 'UUID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
langcode:
|
||||
type: string
|
||||
label: 'Default language'
|
||||
|
|
|
@ -10,6 +10,7 @@ namespace Drupal\Core\Config\Entity;
|
|||
use Drupal\Component\Plugin\ConfigurablePluginInterface;
|
||||
use Drupal\Component\Utility\String;
|
||||
use Drupal\Core\Cache\Cache;
|
||||
use Drupal\Core\Config\Schema\SchemaIncompleteException;
|
||||
use Drupal\Core\Entity\Entity;
|
||||
use Drupal\Core\Config\ConfigDuplicateUUIDException;
|
||||
use Drupal\Core\Entity\EntityStorageInterface;
|
||||
|
@ -240,19 +241,35 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
// Configuration objects do not have a schema. Extract all key names from
|
||||
// class properties.
|
||||
$class_info = new \ReflectionClass($this);
|
||||
$properties = array();
|
||||
foreach ($class_info->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
|
||||
$name = $property->getName();
|
||||
$properties[$name] = $this->get($name);
|
||||
$config_name = $this->getEntityType()->getConfigPrefix() . '.' . $this->id();
|
||||
$definition = $this->getTypedConfig()->getDefinition($config_name);
|
||||
if (!isset($definition['mapping'])) {
|
||||
throw new SchemaIncompleteException(String::format('Incomplete or missing schema for @config_name', array('@config_name' => $config_name)));
|
||||
}
|
||||
$id_key = $this->getEntityType()->getKey('id');
|
||||
foreach (array_keys($definition['mapping']) as $name) {
|
||||
// Special handling for IDs so that computed compound IDs work.
|
||||
// @see \Drupal\entity\EntityDisplayBase::id()
|
||||
if ($name == $id_key) {
|
||||
$properties[$name] = $this->id();
|
||||
}
|
||||
else {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
}
|
||||
// Add protected dependencies property.
|
||||
$properties['dependencies'] = $this->dependencies;
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the typed config manager.
|
||||
*
|
||||
* @return \Drupal\Core\Config\TypedConfigManagerInterface
|
||||
*/
|
||||
protected function getTypedConfig() {
|
||||
return \Drupal::service('config.typed');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,9 @@ block.block.*:
|
|||
type: config_entity
|
||||
label: 'Block'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
theme:
|
||||
type: string
|
||||
label: 'Theme'
|
||||
|
|
|
@ -33,8 +33,7 @@ use Drupal\Core\Entity\EntityStorageInterface;
|
|||
* admin_permission = "administer blocks",
|
||||
* fieldable = FALSE,
|
||||
* entity_keys = {
|
||||
* "id" = "id",
|
||||
* "label" = "label"
|
||||
* "id" = "id"
|
||||
* },
|
||||
* links = {
|
||||
* "delete-form" = "block.admin_block_delete",
|
||||
|
@ -134,25 +133,6 @@ class Block extends ConfigEntityBase implements BlockInterface, EntityWithPlugin
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'theme',
|
||||
'region',
|
||||
'weight',
|
||||
'plugin',
|
||||
'settings',
|
||||
'visibility',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts active blocks by weight; sorts inactive blocks by name.
|
||||
*/
|
||||
|
|
|
@ -90,13 +90,15 @@ class BlockStorageUnitTest extends DrupalUnitTestBase {
|
|||
|
||||
// Ensure that default values are filled in.
|
||||
$expected_properties = array(
|
||||
'id' => 'test_block',
|
||||
'weight' => NULL,
|
||||
'status' => TRUE,
|
||||
'langcode' => \Drupal::languageManager()->getDefaultLanguage()->id,
|
||||
'status' => TRUE,
|
||||
'dependencies' => array('module' => array('block_test'), 'theme' => array('stark')),
|
||||
'id' => 'test_block',
|
||||
'theme' => 'stark',
|
||||
'region' => '-1',
|
||||
'weight' => NULL,
|
||||
'provider' => NULL,
|
||||
'visibility' => NULL,
|
||||
'plugin' => 'test_html',
|
||||
'settings' => array(
|
||||
'id' => 'test_html',
|
||||
|
@ -108,8 +110,8 @@ class BlockStorageUnitTest extends DrupalUnitTestBase {
|
|||
'contexts' => array(),
|
||||
),
|
||||
),
|
||||
'visibility' => NULL,
|
||||
);
|
||||
|
||||
$this->assertIdentical($actual_properties, $expected_properties);
|
||||
|
||||
$this->assertTrue($entity->getPlugin() instanceof TestHtmlBlock, 'The entity has an instance of the correct block plugin.');
|
||||
|
|
|
@ -4,6 +4,12 @@ block_content.type.*:
|
|||
type: config_entity
|
||||
label: 'Custom block type settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
revision:
|
||||
type: integer
|
||||
label: 'Create new revision'
|
||||
|
|
|
@ -3,6 +3,12 @@ breakpoint.breakpoint.*.*.*:
|
|||
type: config_entity
|
||||
label: 'Defines the Breakpoint entity'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
name:
|
||||
type: string
|
||||
label: 'Machine name'
|
||||
|
@ -29,6 +35,12 @@ breakpoint.breakpoint_group.*.*.*:
|
|||
type: config_entity
|
||||
label: 'Breakpoint group settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
name:
|
||||
type: string
|
||||
label: 'Machine name'
|
||||
|
|
|
@ -211,29 +211,6 @@ class BreakpointGroup extends ConfigEntityBase implements BreakpointGroupInterfa
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'id',
|
||||
'uuid',
|
||||
'name',
|
||||
'label',
|
||||
'breakpoint_ids',
|
||||
'source',
|
||||
'sourceType',
|
||||
'status',
|
||||
'langcode',
|
||||
'dependencies',
|
||||
);
|
||||
$properties = array();
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -120,7 +120,7 @@ function comment_uri(CommentInterface $comment) {
|
|||
function comment_entity_extra_field_info() {
|
||||
$return = array();
|
||||
foreach (CommentType::loadMultiple() as $comment_type) {
|
||||
$return['comment'][$comment_type->id] = array(
|
||||
$return['comment'][$comment_type->id()] = array(
|
||||
'form' => array(
|
||||
'author' => array(
|
||||
'label' => t('Author'),
|
||||
|
|
|
@ -47,6 +47,12 @@ comment.type.*:
|
|||
type: config_entity
|
||||
label: 'Comment type settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
target_entity_type_id:
|
||||
type: string
|
||||
label: 'Target Entity Type ID'
|
||||
|
|
|
@ -82,7 +82,7 @@ class CommentTypeForm extends EntityForm {
|
|||
|
||||
$form['description'] = array(
|
||||
'#type' => 'textarea',
|
||||
'#default_value' => $comment_type->description,
|
||||
'#default_value' => $comment_type->getDescription(),
|
||||
'#description' => t('Describe this comment type. The text will be displayed on the <em>Comment types</em> administration overview page'),
|
||||
'#title' => t('Description'),
|
||||
);
|
||||
|
|
|
@ -47,28 +47,28 @@ class CommentType extends ConfigEntityBundleBase implements CommentTypeInterface
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
public $id;
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* The comment type label.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $label;
|
||||
protected $label;
|
||||
|
||||
/**
|
||||
* The description of the comment type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $description;
|
||||
protected $description;
|
||||
|
||||
/**
|
||||
* The target entity type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $target_entity_type_id;
|
||||
protected $target_entity_type_id;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -111,11 +111,12 @@ class ConfigDiffTest extends DrupalUnitTestBase {
|
|||
|
||||
$diff = \Drupal::service('config.manager')->diff($active, $staging, 'config_test.dynamic.' . $new_test_entity_id, $config_name);
|
||||
$edits = $diff->getEdits();
|
||||
$this->assertEqual($edits[0]->type, 'change', 'The second item in the diff is a copy.');
|
||||
$this->assertEqual($edits[0]->orig, array('id: ' . $new_test_entity_id));
|
||||
$this->assertEqual($edits[0]->closing, array('id: ' . $test_entity_id));
|
||||
$this->assertEqual($edits[1]->type, 'copy', 'The second item in the diff is a copy.');
|
||||
$this->assertEqual(count($edits), 2, 'There are two items in the diff.');
|
||||
$this->assertEqual($edits[0]->type, 'copy', 'The first item in the diff is a copy.');
|
||||
$this->assertEqual($edits[1]->type, 'change', 'The second item in the diff is a change.');
|
||||
$this->assertEqual($edits[1]->orig, array('id: ' . $new_test_entity_id));
|
||||
$this->assertEqual($edits[1]->closing, array('id: ' . $test_entity_id));
|
||||
$this->assertEqual($edits[2]->type, 'copy', 'The third item in the diff is a copy.');
|
||||
$this->assertEqual(count($edits), 3, 'There are three items in the diff.');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -46,7 +46,6 @@ class ConfigEntityTest extends WebTestBase {
|
|||
$default_langcode = \Drupal::languageManager()->getDefaultLanguage()->id;
|
||||
// Verify default properties on a newly created empty entity.
|
||||
$empty = entity_create('config_test');
|
||||
$this->assertIdentical($empty->id, NULL);
|
||||
$this->assertTrue($empty->uuid);
|
||||
$this->assertIdentical($empty->label, NULL);
|
||||
$this->assertIdentical($empty->style, NULL);
|
||||
|
@ -105,7 +104,6 @@ class ConfigEntityTest extends WebTestBase {
|
|||
'label' => $this->randomString(),
|
||||
'style' => $this->randomName(),
|
||||
));
|
||||
$this->assertIdentical($config_test->id, $expected['id']);
|
||||
$this->assertTrue($config_test->uuid);
|
||||
$this->assertNotEqual($config_test->uuid, $empty->uuid);
|
||||
$this->assertIdentical($config_test->label, $expected['label']);
|
||||
|
@ -159,7 +157,7 @@ class ConfigEntityTest extends WebTestBase {
|
|||
try {
|
||||
$id_length_config_test->save();
|
||||
$this->pass(String::format("config_test entity with ID length @length was saved.", array(
|
||||
'@length' => strlen($id_length_config_test->id))
|
||||
'@length' => strlen($id_length_config_test->id()))
|
||||
));
|
||||
}
|
||||
catch (ConfigEntityIdLengthException $e) {
|
||||
|
@ -173,7 +171,7 @@ class ConfigEntityTest extends WebTestBase {
|
|||
try {
|
||||
$id_length_config_test->save();
|
||||
$this->pass(String::format("config_test entity with ID length @length was saved.", array(
|
||||
'@length' => strlen($id_length_config_test->id),
|
||||
'@length' => strlen($id_length_config_test->id()),
|
||||
)));
|
||||
}
|
||||
catch (ConfigEntityIdLengthException $e) {
|
||||
|
@ -187,13 +185,13 @@ class ConfigEntityTest extends WebTestBase {
|
|||
try {
|
||||
$status = $id_length_config_test->save();
|
||||
$this->fail(String::format("config_test entity with ID length @length exceeding the maximum allowed length of @max saved successfully", array(
|
||||
'@length' => strlen($id_length_config_test->id),
|
||||
'@length' => strlen($id_length_config_test->id()),
|
||||
'@max' => static::MAX_ID_LENGTH,
|
||||
)));
|
||||
}
|
||||
catch (ConfigEntityIdLengthException $e) {
|
||||
$this->pass(String::format("config_test entity with ID length @length exceeding the maximum allowed length of @max failed to save", array(
|
||||
'@length' => strlen($id_length_config_test->id),
|
||||
'@length' => strlen($id_length_config_test->id()),
|
||||
'@max' => static::MAX_ID_LENGTH,
|
||||
)));
|
||||
}
|
||||
|
@ -221,7 +219,7 @@ class ConfigEntityTest extends WebTestBase {
|
|||
$this->assertIdentical($config_test->getOriginalId(), $old_id);
|
||||
|
||||
// Rename.
|
||||
$config_test->id = $new_id;
|
||||
$config_test->set('id', $new_id);
|
||||
$this->assertIdentical($config_test->id(), $new_id);
|
||||
$status = $config_test->save();
|
||||
$this->assertIdentical($status, SAVED_UPDATED);
|
||||
|
|
|
@ -56,15 +56,15 @@ class ConfigImportUITest extends WebTestBase {
|
|||
|
||||
// Create new config entity.
|
||||
$original_dynamic_data = array(
|
||||
'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
|
||||
'langcode' => \Drupal::languageManager()->getDefaultLanguage()->id,
|
||||
'status' => TRUE,
|
||||
'dependencies' => array(),
|
||||
'id' => 'new',
|
||||
'label' => 'New',
|
||||
'weight' => 0,
|
||||
'style' => '',
|
||||
'test_dependencies' => array(),
|
||||
'status' => TRUE,
|
||||
'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
|
||||
'langcode' => \Drupal::languageManager()->getDefaultLanguage()->id,
|
||||
'dependencies' => array(),
|
||||
'protected_property' => '',
|
||||
);
|
||||
$staging->write($dynamic_name, $original_dynamic_data);
|
||||
|
@ -349,31 +349,31 @@ class ConfigImportUITest extends WebTestBase {
|
|||
$uuid = $this->container->get('uuid');
|
||||
|
||||
$values_primary = array(
|
||||
'uuid' => $uuid->generate(),
|
||||
'langcode' => 'en',
|
||||
'status' => TRUE,
|
||||
'dependencies' => array(),
|
||||
'id' => 'primary',
|
||||
'label' => 'Primary',
|
||||
'weight' => 0,
|
||||
'style' => NULL,
|
||||
'test_dependencies' => array(),
|
||||
'status' => TRUE,
|
||||
'uuid' => $uuid->generate(),
|
||||
'langcode' => 'en',
|
||||
'dependencies' => array(),
|
||||
'protected_property' => null,
|
||||
);
|
||||
$staging->write($name_primary, $values_primary);
|
||||
$values_secondary = array(
|
||||
'uuid' => $uuid->generate(),
|
||||
'langcode' => 'en',
|
||||
'status' => TRUE,
|
||||
// Add a dependency on primary, to ensure that is synced first.
|
||||
'dependencies' => array(
|
||||
'entity' => array($name_primary),
|
||||
),
|
||||
'id' => 'secondary',
|
||||
'label' => 'Secondary Sync',
|
||||
'weight' => 0,
|
||||
'style' => NULL,
|
||||
'test_dependencies' => array(),
|
||||
'status' => TRUE,
|
||||
'uuid' => $uuid->generate(),
|
||||
'langcode' => 'en',
|
||||
// Add a dependency on primary, to ensure that is synced first.
|
||||
'dependencies' => array(
|
||||
'entity' => array($name_primary),
|
||||
),
|
||||
'protected_property' => null,
|
||||
);
|
||||
$staging->write($name_secondary, $values_secondary);
|
||||
|
|
|
@ -170,15 +170,15 @@ class ConfigImporterTest extends DrupalUnitTestBase {
|
|||
|
||||
// Create new config entity.
|
||||
$original_dynamic_data = array(
|
||||
'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
|
||||
'langcode' => \Drupal::languageManager()->getDefaultLanguage()->id,
|
||||
'status' => TRUE,
|
||||
'dependencies' => array(),
|
||||
'id' => 'new',
|
||||
'label' => 'New',
|
||||
'weight' => 0,
|
||||
'style' => '',
|
||||
'test_dependencies' => array(),
|
||||
'status' => TRUE,
|
||||
'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
|
||||
'langcode' => \Drupal::languageManager()->getDefaultLanguage()->id,
|
||||
'dependencies' => array(),
|
||||
'protected_property' => '',
|
||||
);
|
||||
$staging->write($dynamic_name, $original_dynamic_data);
|
||||
|
|
|
@ -135,12 +135,8 @@ class ConfigSchemaTest extends DrupalUnitTestBase {
|
|||
$expected['label'] = 'Image style';
|
||||
$expected['class'] = '\Drupal\Core\Config\Schema\Mapping';
|
||||
$expected['mapping']['name']['type'] = 'string';
|
||||
$expected['mapping']['id']['label'] = 'ID';
|
||||
$expected['mapping']['id']['type'] = 'string';
|
||||
$expected['mapping']['uuid']['type'] = 'string';
|
||||
$expected['mapping']['uuid']['label'] = 'UUID';
|
||||
$expected['mapping']['label']['type'] = 'label';
|
||||
$expected['mapping']['label']['label'] = 'Label';
|
||||
$expected['mapping']['langcode']['type'] = 'string';
|
||||
$expected['mapping']['langcode']['label'] = 'Default language';
|
||||
$expected['mapping']['status']['type'] = 'boolean';
|
||||
|
@ -148,6 +144,8 @@ class ConfigSchemaTest extends DrupalUnitTestBase {
|
|||
$expected['mapping']['dependencies']['type'] = 'config_dependencies';
|
||||
$expected['mapping']['dependencies']['label'] = 'Dependencies';
|
||||
$expected['mapping']['name']['type'] = 'string';
|
||||
$expected['mapping']['label']['type'] = 'label';
|
||||
$expected['mapping']['label']['label'] = 'Label';
|
||||
$expected['mapping']['effects']['type'] = 'sequence';
|
||||
$expected['mapping']['effects']['sequence'][0]['type'] = 'mapping';
|
||||
$expected['mapping']['effects']['sequence'][0]['mapping']['id']['type'] = 'string';
|
||||
|
|
|
@ -1,34 +1,23 @@
|
|||
# Schema for the configuration files of the Configuration Test module.
|
||||
|
||||
config_test.dynamic.*:
|
||||
type: mapping
|
||||
label: 'Config test entity'
|
||||
config_test_dynamic:
|
||||
type: config_entity
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'Machine name'
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
weight:
|
||||
type: integer
|
||||
label: 'Weight'
|
||||
style:
|
||||
type: string
|
||||
label: 'Image style'
|
||||
protected_property:
|
||||
type: string
|
||||
label: 'Protected property'
|
||||
|
||||
config_test_dynamic:
|
||||
type: config_entity
|
||||
mapping:
|
||||
weight:
|
||||
type: integer
|
||||
label: 'Weight'
|
||||
style:
|
||||
type: string
|
||||
label: 'style'
|
||||
test_dependencies:
|
||||
type: config_dependencies
|
||||
label: 'Configuration dependencies'
|
||||
protected_property:
|
||||
type: string
|
||||
label: 'Protected property'
|
||||
|
@ -41,6 +30,24 @@ config_test.dynamic.*.*:
|
|||
type: config_test_dynamic
|
||||
label: 'Config test dynamic settings'
|
||||
|
||||
config_test.query.*:
|
||||
type: config_entity
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
array:
|
||||
type: sequence
|
||||
label: 'Array'
|
||||
sequence:
|
||||
- type: string
|
||||
number:
|
||||
type: integer
|
||||
label: 'number'
|
||||
|
||||
config_test.types:
|
||||
type: mapping
|
||||
label: 'Configuration type'
|
||||
|
|
|
@ -48,7 +48,7 @@ class ConfigTest extends ConfigEntityBase implements ConfigTestInterface {
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
public $id;
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* The human-readable name of the configuration entity.
|
||||
|
@ -85,20 +85,6 @@ class ConfigTest extends ConfigEntityBase implements ConfigTestInterface {
|
|||
*/
|
||||
protected $protected_property;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$protected_names = array(
|
||||
'protected_property',
|
||||
);
|
||||
foreach ($protected_names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides \Drupal\Core\Config\Entity\ConfigEntityBase::sort().
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,12 @@ contact.category.*:
|
|||
type: config_entity
|
||||
label: 'Contact category'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
recipients:
|
||||
type: sequence
|
||||
label: 'Recipients'
|
||||
|
|
|
@ -176,21 +176,4 @@ class Editor extends ConfigEntityBase implements EditorInterface {
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'format',
|
||||
'editor',
|
||||
'settings',
|
||||
'image_upload',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -33,6 +33,12 @@ entity.form_mode.*.*:
|
|||
type: config_entity
|
||||
label: 'Entity form mode settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
targetEntityType:
|
||||
type: string
|
||||
label: 'Target entity type'
|
||||
|
@ -45,6 +51,12 @@ entity.view_display.*.*.*:
|
|||
type: config_entity
|
||||
label: 'Entity display'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
targetEntityType:
|
||||
type: string
|
||||
label: 'Target entity type'
|
||||
|
@ -71,6 +83,9 @@ entity.form_display.*.*.*:
|
|||
type: config_entity
|
||||
label: 'Entity form display'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
targetEntityType:
|
||||
type: string
|
||||
label: 'Target entity type'
|
||||
|
@ -80,9 +95,12 @@ entity.form_display.*.*.*:
|
|||
mode:
|
||||
type: string
|
||||
label: 'View or form mode machine name'
|
||||
status:
|
||||
type: boolean
|
||||
label: 'Enabled'
|
||||
content:
|
||||
type: sequence
|
||||
label: 'Field form display formatters'
|
||||
label: 'Field display formatters'
|
||||
sequence:
|
||||
- type: entity_form_display.field.[type]
|
||||
hidden:
|
||||
|
@ -91,6 +109,9 @@ entity.form_display.*.*.*:
|
|||
sequence:
|
||||
- type: boolean
|
||||
label: 'Component'
|
||||
dependencies:
|
||||
type: config_dependencies
|
||||
label: 'Dependencies'
|
||||
|
||||
# Default schema for entity display field with undefined type.
|
||||
entity_view_display.field.*:
|
||||
|
|
|
@ -200,23 +200,7 @@ abstract class EntityDisplayBase extends ConfigEntityBase implements EntityDispl
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'uuid',
|
||||
'targetEntityType',
|
||||
'bundle',
|
||||
'mode',
|
||||
'content',
|
||||
'hidden',
|
||||
'status',
|
||||
'dependencies'
|
||||
);
|
||||
$properties = array(
|
||||
'id' => $this->id(),
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
|
||||
$properties = parent::toArray();
|
||||
// Do not store options for fields whose display is not set to be
|
||||
// configurable.
|
||||
foreach ($this->getFieldDefinitions() as $field_name => $definition) {
|
||||
|
|
|
@ -12,6 +12,9 @@ field.field.*.*:
|
|||
type: config_entity
|
||||
label: 'Field'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
name:
|
||||
type: string
|
||||
label: 'Name'
|
||||
|
@ -49,6 +52,12 @@ field.instance.*.*.*:
|
|||
type: config_entity
|
||||
label: 'Field instance'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
field_uuid:
|
||||
type: string
|
||||
label: 'Field UUID'
|
||||
|
|
|
@ -224,34 +224,6 @@ class FieldConfig extends ConfigEntityBase implements FieldConfigInterface {
|
|||
return $this->entity_type . '.' . $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'uuid',
|
||||
'status',
|
||||
'langcode',
|
||||
'name',
|
||||
'entity_type',
|
||||
'type',
|
||||
'settings',
|
||||
'module',
|
||||
'locked',
|
||||
'cardinality',
|
||||
'translatable',
|
||||
'indexes',
|
||||
'dependencies',
|
||||
);
|
||||
$properties = array(
|
||||
'id' => $this->id(),
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides \Drupal\Core\Entity\Entity::preSave().
|
||||
*
|
||||
|
@ -728,7 +700,10 @@ class FieldConfig extends ConfigEntityBase implements FieldConfigInterface {
|
|||
*/
|
||||
public function __sleep() {
|
||||
// Only serialize properties from self::toArray().
|
||||
return array_keys(array_intersect_key($this->toArray(), get_object_vars($this)));
|
||||
$properties = array_keys(array_intersect_key($this->toArray(), get_object_vars($this)));
|
||||
// Serialize $entityTypeId property so that toArray() works when waking up.
|
||||
$properties[] = 'entityTypeId';
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -272,29 +272,7 @@ class FieldInstanceConfig extends ConfigEntityBase implements FieldInstanceConfi
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'uuid',
|
||||
'status',
|
||||
'langcode',
|
||||
'field_uuid',
|
||||
'field_name',
|
||||
'entity_type',
|
||||
'bundle',
|
||||
'label',
|
||||
'description',
|
||||
'required',
|
||||
'default_value',
|
||||
'default_value_function',
|
||||
'settings',
|
||||
'dependencies',
|
||||
);
|
||||
$properties = array(
|
||||
'id' => $this->id(),
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
|
||||
$properties = parent::toArray();
|
||||
// Additionally, include the field type, that is needed to be able to
|
||||
// generate the field-type-dependant parts of the config schema.
|
||||
$properties['field_type'] = $this->getType();
|
||||
|
@ -672,7 +650,10 @@ class FieldInstanceConfig extends ConfigEntityBase implements FieldInstanceConfi
|
|||
*/
|
||||
public function __sleep() {
|
||||
// Only serialize properties from self::toArray().
|
||||
return array_keys(array_intersect_key($this->toArray(), get_object_vars($this)));
|
||||
$properties = array_keys(array_intersect_key($this->toArray(), get_object_vars($this)));
|
||||
// Serialize $entityTypeId property so that toArray() works when waking up.
|
||||
$properties[] = 'entityTypeId';
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -64,14 +64,18 @@ class FieldInstanceConfigEntityUnitTest extends UnitTestCase {
|
|||
*/
|
||||
public function setUp() {
|
||||
$this->entityTypeId = $this->randomName();
|
||||
$this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
|
||||
|
||||
$this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
|
||||
|
||||
$this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
|
||||
|
||||
$this->typedConfigManager = $this->getMock('Drupal\Core\Config\TypedConfigManagerInterface');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container->set('entity.manager', $this->entityManager);
|
||||
$container->set('uuid', $this->uuid);
|
||||
$container->set('config.typed', $this->typedConfigManager);
|
||||
\Drupal::setContainer($container);
|
||||
|
||||
// Create a mock FieldConfig object.
|
||||
|
@ -139,12 +143,12 @@ class FieldInstanceConfigEntityUnitTest extends UnitTestCase {
|
|||
*/
|
||||
public function testToArray() {
|
||||
$values = array('field_name' => $this->field->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle');
|
||||
$instance = new FieldInstanceConfig($values);
|
||||
$export = $instance->toArray();
|
||||
$instance = new FieldInstanceConfig($values, $this->entityTypeId);
|
||||
|
||||
$expected = array(
|
||||
'id' => 'test_entity_type.test_bundle.field_test',
|
||||
'uuid' => NULL,
|
||||
'status' => 1,
|
||||
'status' => TRUE,
|
||||
'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
|
||||
'field_uuid' => NULL,
|
||||
'field_name' => 'field_test',
|
||||
|
@ -159,6 +163,19 @@ class FieldInstanceConfigEntityUnitTest extends UnitTestCase {
|
|||
'dependencies' => array(),
|
||||
'field_type' => 'test_field',
|
||||
);
|
||||
$this->entityManager->expects($this->any())
|
||||
->method('getDefinition')
|
||||
->with($this->entityTypeId)
|
||||
->will($this->returnValue($this->entityType));
|
||||
$this->entityType->expects($this->once())
|
||||
->method('getKey')
|
||||
->with('id')
|
||||
->will($this->returnValue('id'));
|
||||
$this->typedConfigManager->expects($this->once())
|
||||
->method('getDefinition')
|
||||
->will($this->returnValue(array('mapping' => array_fill_keys(array_keys($expected), ''))));
|
||||
|
||||
$export = $instance->toArray();
|
||||
$this->assertEquals($expected, $export);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -162,13 +162,9 @@ class FilterFormat extends ConfigEntityBase implements FilterFormatInterface, En
|
|||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
// @todo Make self::$weight and self::$cache protected and add them here.
|
||||
$names = array(
|
||||
'filters',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
// The 'roles' property is only used during install and should never
|
||||
// actually be saved.
|
||||
unset($properties['roles']);
|
||||
return $properties;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,9 @@ image.style.*:
|
|||
mapping:
|
||||
name:
|
||||
type: string
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
effects:
|
||||
type: sequence
|
||||
sequence:
|
||||
|
|
|
@ -354,20 +354,6 @@ class ImageStyle extends ConfigEntityBase implements ImageStyleInterface, Entity
|
|||
return $configuration['uuid'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'effects',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -85,6 +85,12 @@ language.entity.*:
|
|||
type: config_entity
|
||||
label: 'Language'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
direction:
|
||||
type: integer
|
||||
label: 'Direction'
|
||||
|
|
|
@ -339,4 +339,18 @@ class Migration extends ConfigEntityBase implements MigrationInterface, Requirem
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
// @todo Remove once migration config entities have schema
|
||||
// https://drupal.org/node/2183957.
|
||||
$class_info = new \ReflectionClass($this);
|
||||
foreach ($class_info->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
|
||||
$name = $property->getName();
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,6 +4,9 @@ rdf.mapping.*.*:
|
|||
type: config_entity
|
||||
label: 'RDF mapping'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
targetEntityType:
|
||||
type: string
|
||||
label: 'Target entity type'
|
||||
|
|
|
@ -133,30 +133,6 @@ class RdfMapping extends ConfigEntityBase implements RdfMappingInterface {
|
|||
return $this->targetEntityType . '.' . $this->bundle;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'uuid',
|
||||
'targetEntityType',
|
||||
'bundle',
|
||||
'types',
|
||||
'fieldMappings',
|
||||
);
|
||||
$properties = array(
|
||||
'id' => $this->id(),
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
if (!empty($this->dependencies)) {
|
||||
// Add protected dependencies property if set.
|
||||
$properties['dependencies'] = $this->dependencies;
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -187,24 +187,6 @@ class ResponsiveImageMapping extends ConfigEntityBase implements ResponsiveImage
|
|||
return $mapping_found;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'id',
|
||||
'uuid',
|
||||
'label',
|
||||
'mappings',
|
||||
'breakpointGroup',
|
||||
);
|
||||
$properties = array();
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -68,6 +68,12 @@ search.page.*:
|
|||
type: config_entity
|
||||
label: 'Search page'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
path:
|
||||
type: string
|
||||
label: 'Search page path'
|
||||
|
|
|
@ -166,23 +166,6 @@ class SearchPage extends ConfigEntityBase implements SearchPageInterface, Entity
|
|||
return $this->weight;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'path',
|
||||
'weight',
|
||||
'plugin',
|
||||
'configuration',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,12 @@ shortcut.set.*:
|
|||
type: config_entity
|
||||
label: 'Shortcut settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
links:
|
||||
type: sequence
|
||||
label: 'Shortcuts'
|
||||
|
|
|
@ -118,6 +118,12 @@ system.date_format.*:
|
|||
type: config_entity
|
||||
label: 'Date format'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
locked:
|
||||
type: boolean
|
||||
label: 'Locked'
|
||||
|
@ -278,6 +284,12 @@ system.menu.*:
|
|||
type: config_entity
|
||||
label: 'Menu'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
description:
|
||||
type: label
|
||||
label: 'Menu description'
|
||||
|
@ -289,6 +301,12 @@ system.action.*:
|
|||
type: config_entity
|
||||
label: 'System action'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
type:
|
||||
type: string
|
||||
label: 'Type'
|
||||
|
|
|
@ -148,20 +148,4 @@ class Action extends ConfigEntityBase implements ActionConfigEntityInterface, En
|
|||
return parent::sort($a, $b);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'type',
|
||||
'plugin',
|
||||
'configuration',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -68,21 +68,6 @@ class DateFormat extends ConfigEntityBase implements DateFormatInterface {
|
|||
*/
|
||||
protected $locked = FALSE;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'locked',
|
||||
'pattern',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -57,22 +57,6 @@ class Menu extends ConfigEntityBase implements MenuInterface {
|
|||
*/
|
||||
protected $locked = FALSE;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
// @todo Make $description protected and include it here, see
|
||||
// https://drupal.org/node/2030645.
|
||||
$names = array(
|
||||
'locked',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,12 @@ tour.tour.*:
|
|||
type: config_entity
|
||||
label: 'Tour settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
module:
|
||||
type: string
|
||||
label: 'Providing module'
|
||||
|
|
|
@ -120,21 +120,6 @@ class Tour extends ConfigEntityBase implements TourInterface {
|
|||
return array_values($tips);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$properties = parent::toArray();
|
||||
$names = array(
|
||||
'routes',
|
||||
'tips',
|
||||
);
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -119,6 +119,12 @@ user.role.*:
|
|||
type: config_entity
|
||||
label: 'User role settings'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
weight:
|
||||
type: integer
|
||||
label: 'User role weight'
|
||||
|
|
|
@ -72,6 +72,12 @@ views.view.*:
|
|||
type: config_entity
|
||||
label: 'View'
|
||||
mapping:
|
||||
id:
|
||||
type: string
|
||||
label: 'ID'
|
||||
label:
|
||||
type: label
|
||||
label: 'Label'
|
||||
module:
|
||||
type: string
|
||||
label: 'Module'
|
||||
|
|
|
@ -240,32 +240,6 @@ class View extends ConfigEntityBase implements ViewStorageInterface {
|
|||
return $this->display[$display_id];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() {
|
||||
$names = array(
|
||||
'base_field',
|
||||
'base_table',
|
||||
'core',
|
||||
'description',
|
||||
'status',
|
||||
'display',
|
||||
'label',
|
||||
'module',
|
||||
'id',
|
||||
'tag',
|
||||
'uuid',
|
||||
'langcode',
|
||||
'dependencies',
|
||||
);
|
||||
$properties = array();
|
||||
foreach ($names as $name) {
|
||||
$properties[$name] = $this->get($name);
|
||||
}
|
||||
return $properties;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -85,6 +85,13 @@ class ConfigEntityBaseUnitTest extends UnitTestCase {
|
|||
*/
|
||||
protected $cacheBackend;
|
||||
|
||||
/**
|
||||
* The mocked typed config manager.
|
||||
*
|
||||
* @var \Drupal\Core\Config\TypedConfigManagerInterface|\PHPUnit_Framework_MockObject_MockObject
|
||||
*/
|
||||
protected $typedConfigManager;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -129,11 +136,14 @@ class ConfigEntityBaseUnitTest extends UnitTestCase {
|
|||
|
||||
$this->cacheBackend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
|
||||
|
||||
$this->typedConfigManager = $this->getMock('Drupal\Core\Config\TypedConfigManagerInterface');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container->set('entity.manager', $this->entityManager);
|
||||
$container->set('uuid', $this->uuid);
|
||||
$container->set('language_manager', $this->languageManager);
|
||||
$container->set('cache.test', $this->cacheBackend);
|
||||
$container->set('config.typed', $this->typedConfigManager);
|
||||
$container->setParameter('cache_bins', array('cache.test' => 'test'));
|
||||
\Drupal::setContainer($container);
|
||||
|
||||
|
@ -431,14 +441,21 @@ class ConfigEntityBaseUnitTest extends UnitTestCase {
|
|||
* @covers ::toArray
|
||||
*/
|
||||
public function testToArray() {
|
||||
$this->typedConfigManager->expects($this->once())
|
||||
->method('getDefinition')
|
||||
->will($this->returnValue(array('mapping' => array('id' => '', 'dependencies' => ''))));
|
||||
$properties = $this->entity->toArray();
|
||||
$this->assertInternalType('array', $properties);
|
||||
$class_info = new \ReflectionClass($this->entity);
|
||||
foreach ($class_info->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
|
||||
$name = $property->getName();
|
||||
$this->assertArrayHasKey($name, $properties);
|
||||
$this->assertSame($this->entity->get($name), $properties[$name]);
|
||||
}
|
||||
$this->assertEquals(array('id' => $this->entity->id(), 'dependencies' => array()), $properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::toArray
|
||||
*
|
||||
* @expectedException \Drupal\Core\Config\Schema\SchemaIncompleteException
|
||||
*/
|
||||
public function testToArrayFallback() {
|
||||
$this->entity->toArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -97,6 +97,13 @@ class ConfigEntityStorageTest extends UnitTestCase {
|
|||
*/
|
||||
protected $cacheBackend;
|
||||
|
||||
/**
|
||||
* The mocked typed config manager.
|
||||
*
|
||||
* @var \Drupal\Core\Config\TypedConfigManagerInterface|\PHPUnit_Framework_MockObject_MockObject
|
||||
*/
|
||||
protected $typedConfigManager;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -167,8 +174,13 @@ class ConfigEntityStorageTest extends UnitTestCase {
|
|||
|
||||
$this->cacheBackend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
|
||||
|
||||
$this->typedConfigManager = $this->getMock('Drupal\Core\Config\TypedConfigManagerInterface');
|
||||
$this->typedConfigManager->expects($this->any())
|
||||
->method('getDefinition')
|
||||
->will($this->returnValue(array('mapping' => array('id' => '', 'uuid' => '', 'dependencies' => ''))));
|
||||
$container = new ContainerBuilder();
|
||||
$container->set('entity.manager', $this->entityManager);
|
||||
$container->set('config.typed', $this->typedConfigManager);
|
||||
$container->set('cache.test', $this->cacheBackend);
|
||||
$container->setParameter('cache_bins', array('cache.test' => 'test'));
|
||||
\Drupal::setContainer($container);
|
||||
|
@ -242,7 +254,7 @@ class ConfigEntityStorageTest extends UnitTestCase {
|
|||
$config_object->expects($this->atLeastOnce())
|
||||
->method('isNew')
|
||||
->will($this->returnValue(TRUE));
|
||||
$config_object->expects($this->exactly(4))
|
||||
$config_object->expects($this->exactly(3))
|
||||
->method('set');
|
||||
$config_object->expects($this->once())
|
||||
->method('save');
|
||||
|
@ -301,7 +313,7 @@ class ConfigEntityStorageTest extends UnitTestCase {
|
|||
$config_object->expects($this->atLeastOnce())
|
||||
->method('isNew')
|
||||
->will($this->returnValue(FALSE));
|
||||
$config_object->expects($this->exactly(4))
|
||||
$config_object->expects($this->exactly(3))
|
||||
->method('set');
|
||||
$config_object->expects($this->once())
|
||||
->method('save');
|
||||
|
@ -361,7 +373,7 @@ class ConfigEntityStorageTest extends UnitTestCase {
|
|||
$config_object->expects($this->atLeastOnce())
|
||||
->method('isNew')
|
||||
->will($this->returnValue(FALSE));
|
||||
$config_object->expects($this->exactly(4))
|
||||
$config_object->expects($this->exactly(3))
|
||||
->method('set');
|
||||
$config_object->expects($this->once())
|
||||
->method('save');
|
||||
|
|
Loading…
Reference in New Issue