diff --git a/core/lib/Drupal/Core/Config/NullStorage.php b/core/lib/Drupal/Core/Config/NullStorage.php index 0dd14730a21..533e9f13675 100644 --- a/core/lib/Drupal/Core/Config/NullStorage.php +++ b/core/lib/Drupal/Core/Config/NullStorage.php @@ -18,6 +18,24 @@ namespace Drupal\Core\Config; */ class NullStorage implements StorageInterface { + /** + * The storage collection. + * + * @var string + */ + protected $collection; + + /** + * Constructs a new NullStorage. + * + * @param string $collection + * (optional) The collection to store configuration in. Defaults to the + * default collection. + */ + public function __construct($collection = StorageInterface::DEFAULT_COLLECTION) { + $this->collection = $collection; + } + /** * {@inheritdoc} */ @@ -92,13 +110,14 @@ class NullStorage implements StorageInterface { * {@inheritdoc} */ public function createCollection($collection) { - // No op. + return new static($collection); } /** * {@inheritdoc} */ public function getAllCollectionNames() { + // Returns only non empty collections. return []; } @@ -106,7 +125,7 @@ class NullStorage implements StorageInterface { * {@inheritdoc} */ public function getCollectionName() { - return ''; + return $this->collection; } } diff --git a/core/tests/Drupal/Tests/Core/Config/NullStorageTest.php b/core/tests/Drupal/Tests/Core/Config/NullStorageTest.php new file mode 100644 index 00000000000..6ffacdd7854 --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Config/NullStorageTest.php @@ -0,0 +1,28 @@ +createCollection('test'); + $this->assertInstanceOf(StorageInterface::class, $collection); + $this->assertEquals(StorageInterface::DEFAULT_COLLECTION, $nullStorage->getCollectionName()); + $this->assertEquals('test', $collection->getCollectionName()); + $this->assertArrayEquals([], $collection->getAllCollectionNames()); + } + +}