Issue #2088241 by Xano: ConfigEntityInterface::setOriginalID() should return .
parent
b0408d9daf
commit
b8c9f78058
|
@ -25,7 +25,7 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $originalID;
|
protected $originalId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The enabled/disabled status of the configuration entity.
|
* The enabled/disabled status of the configuration entity.
|
||||||
|
@ -44,22 +44,24 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
||||||
// Configuration entity IDs are strings, and '0' is a valid ID.
|
// Configuration entity IDs are strings, and '0' is a valid ID.
|
||||||
$original_id = $this->id();
|
$original_id = $this->id();
|
||||||
if ($original_id !== NULL && $original_id !== '') {
|
if ($original_id !== NULL && $original_id !== '') {
|
||||||
$this->setOriginalID($original_id);
|
$this->setOriginalId($original_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements ConfigEntityInterface::getOriginalID().
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getOriginalID() {
|
public function getOriginalId() {
|
||||||
return $this->originalID;
|
return $this->originalId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements ConfigEntityInterface::setOriginalID().
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function setOriginalID($id) {
|
public function setOriginalId($id) {
|
||||||
$this->originalID = $id;
|
$this->originalId = $id;
|
||||||
|
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,7 +124,7 @@ abstract class ConfigEntityBase extends Entity implements ConfigEntityInterface
|
||||||
public function createDuplicate() {
|
public function createDuplicate() {
|
||||||
$duplicate = parent::createDuplicate();
|
$duplicate = parent::createDuplicate();
|
||||||
// Prevent the new duplicate from being misinterpreted as a rename.
|
// Prevent the new duplicate from being misinterpreted as a rename.
|
||||||
$duplicate->setOriginalID(NULL);
|
$duplicate->setOriginalId(NULL);
|
||||||
return $duplicate;
|
return $duplicate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ interface ConfigEntityInterface extends EntityInterface {
|
||||||
* @return string|null
|
* @return string|null
|
||||||
* The original ID, if any.
|
* The original ID, if any.
|
||||||
*/
|
*/
|
||||||
public function getOriginalID();
|
public function getOriginalId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the original ID.
|
* Sets the original ID.
|
||||||
|
@ -28,9 +28,9 @@ interface ConfigEntityInterface extends EntityInterface {
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* The new ID to set as original ID.
|
* The new ID to set as original ID.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function setOriginalID($id);
|
public function setOriginalId($id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enables the configuration entity.
|
* Enables the configuration entity.
|
||||||
|
|
|
@ -90,8 +90,8 @@ class CustomBlockType extends ConfigEntityBase implements CustomBlockTypeInterfa
|
||||||
entity_invoke_bundle_hook('create', 'custom_block', $this->id());
|
entity_invoke_bundle_hook('create', 'custom_block', $this->id());
|
||||||
custom_block_add_body_field($this->id);
|
custom_block_add_body_field($this->id);
|
||||||
}
|
}
|
||||||
elseif ($this->originalID != $this->id) {
|
elseif ($this->getOriginalId() != $this->id) {
|
||||||
entity_invoke_bundle_hook('rename', 'custom_block', $this->originalID, $this->id);
|
entity_invoke_bundle_hook('rename', 'custom_block', $this->getOriginalId(), $this->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
namespace Drupal\config\Tests;
|
namespace Drupal\config\Tests;
|
||||||
|
|
||||||
|
use Drupal\Core\Entity\EntityInterface;
|
||||||
use Drupal\simpletest\DrupalUnitTestBase;
|
use Drupal\simpletest\DrupalUnitTestBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +22,13 @@ class ConfigEntityUnitTest extends DrupalUnitTestBase {
|
||||||
*/
|
*/
|
||||||
public static $modules = array('config_test');
|
public static $modules = array('config_test');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The config_test entity storage controller.
|
||||||
|
*
|
||||||
|
* @var \Drupal\config_test\ConfigTestStorageController
|
||||||
|
*/
|
||||||
|
protected $storage;
|
||||||
|
|
||||||
public static function getInfo() {
|
public static function getInfo() {
|
||||||
return array(
|
return array(
|
||||||
'name' => 'Configuration entity methods',
|
'name' => 'Configuration entity methods',
|
||||||
|
@ -29,32 +37,40 @@ class ConfigEntityUnitTest extends DrupalUnitTestBase {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp() {
|
||||||
|
parent::setUp();
|
||||||
|
$this->storage = $this->container->get('entity.manager')->getStorageController('config_test');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests storage controller methods.
|
* Tests storage controller methods.
|
||||||
*/
|
*/
|
||||||
public function testStorageControllerMethods() {
|
public function testStorageControllerMethods() {
|
||||||
$controller = $this->container->get('entity.manager')->getStorageController('config_test');
|
|
||||||
$info = entity_get_info('config_test');
|
$info = entity_get_info('config_test');
|
||||||
|
|
||||||
$expected = $info['config_prefix'] . '.';
|
$expected = $info['config_prefix'] . '.';
|
||||||
$this->assertIdentical($controller->getConfigPrefix(), $expected);
|
$this->assertIdentical($this->storage->getConfigPrefix(), $expected);
|
||||||
|
|
||||||
// Test the static extractID() method.
|
// Test the static extractID() method.
|
||||||
$expected_id = 'test_id';
|
$expected_id = 'test_id';
|
||||||
$config_name = $info['config_prefix'] . '.' . $expected_id;
|
$config_name = $info['config_prefix'] . '.' . $expected_id;
|
||||||
$this->assertIdentical($controller::getIDFromConfigName($config_name, $info['config_prefix']), $expected_id);
|
$storage = $this->storage;
|
||||||
|
$this->assertIdentical($storage::getIDFromConfigName($config_name, $info['config_prefix']), $expected_id);
|
||||||
|
|
||||||
// Create three entities, two with the same style.
|
// Create three entities, two with the same style.
|
||||||
$style = $this->randomName(8);
|
$style = $this->randomName(8);
|
||||||
for ($i = 0; $i < 2; $i++) {
|
for ($i = 0; $i < 2; $i++) {
|
||||||
$entity = $controller->create(array(
|
$entity = $this->storage->create(array(
|
||||||
'id' => $this->randomName(),
|
'id' => $this->randomName(),
|
||||||
'label' => $this->randomString(),
|
'label' => $this->randomString(),
|
||||||
'style' => $style,
|
'style' => $style,
|
||||||
));
|
));
|
||||||
$entity->save();
|
$entity->save();
|
||||||
}
|
}
|
||||||
$entity = $controller->create(array(
|
$entity = $this->storage->create(array(
|
||||||
'id' => $this->randomName(),
|
'id' => $this->randomName(),
|
||||||
'label' => $this->randomString(),
|
'label' => $this->randomString(),
|
||||||
// Use a different length for the entity to ensure uniqueness.
|
// Use a different length for the entity to ensure uniqueness.
|
||||||
|
@ -62,12 +78,22 @@ class ConfigEntityUnitTest extends DrupalUnitTestBase {
|
||||||
));
|
));
|
||||||
$entity->save();
|
$entity->save();
|
||||||
|
|
||||||
$entities = $controller->loadByProperties();
|
$entities = $this->storage->loadByProperties();
|
||||||
$this->assertEqual(count($entities), 3, 'Three entities are loaded when no properties are specified.');
|
$this->assertEqual(count($entities), 3, 'Three entities are loaded when no properties are specified.');
|
||||||
|
|
||||||
$entities = $controller->loadByProperties(array('style' => $style));
|
$entities = $this->storage->loadByProperties(array('style' => $style));
|
||||||
$this->assertEqual(count($entities), 2, 'Two entities are loaded when the style property is specified.');
|
$this->assertEqual(count($entities), 2, 'Two entities are loaded when the style property is specified.');
|
||||||
$this->assertEqual(reset($entities)->get('style'), $style, 'The loaded entities have the style value specified.');
|
$this->assertEqual(reset($entities)->get('style'), $style, 'The loaded entities have the style value specified.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests getOriginalId() and setOriginalId().
|
||||||
|
*/
|
||||||
|
protected function testGetOriginalId() {
|
||||||
|
$entity = $this->storage->create(array());
|
||||||
|
$id = $this->randomName();
|
||||||
|
$this->assertIdentical(spl_object_hash($entity->setOriginalId($id)), spl_object_hash($entity));
|
||||||
|
$this->assertIdentical($entity->getOriginalId(), $id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -920,17 +920,17 @@ class ViewUI implements ViewStorageInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements \Drupal\Core\Config\Entity\ConfigEntityInterface::getOriginalID().
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getOriginalID() {
|
public function getOriginalId() {
|
||||||
return $this->storage->getOriginalID();
|
return $this->storage->getOriginalId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements \Drupal\Core\Config\Entity\ConfigEntityInterface::setOriginalID().
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function setOriginalID($id) {
|
public function setOriginalId($id) {
|
||||||
return $this->storage->setOriginalID($id);
|
return $this->storage->setOriginalId($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue