Loading core/modules/locale/src/LocaleTranslation.php +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\DependencyInjection\DependencySerializationTrait; use Drupal\Core\DestructableInterface; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Language\LanguageManagerInterface; Loading @@ -19,6 +20,8 @@ */ class LocaleTranslation implements TranslatorInterface, DestructableInterface { use DependencySerializationTrait; /** * Storage for strings. * Loading core/modules/locale/tests/src/Kernel/LocaleTranslationTest.php 0 → 100644 +48 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\locale\Kernel; use Drupal\locale\LocaleTranslation; use Drupal\KernelTests\KernelTestBase; /** * @coversDefaultClass \Drupal\locale\LocaleTranslation * @group locale */ class LocaleTranslationTest extends KernelTestBase { /** * {@inheritdoc} */ protected static $modules = [ 'locale', ]; /** * Tests that \Drupal\locale\LocaleTranslation is serializable. */ public function testSerializable() { $translation = $this->container->get('string_translator.locale.lookup'); $this->assertInstanceOf(LocaleTranslation::class, $translation); // Prove that serialization and deserialization works without errors. $this->assertNotNull($translation); $unserialized = unserialize(serialize($translation)); $this->assertInstanceOf(LocaleTranslation::class, $unserialized); // Ensure that all properties on the unserialized object match the original. $translation_reflection = new \ReflectionObject($translation); $unserialized_reflection = new \ReflectionObject($unserialized); // Ignore the '_serviceIds' property in the comparison. $properties = array_filter($translation_reflection->getProperties(), function ($value) { return $value->getName() !== '_serviceIds'; }); foreach ($properties as $value) { $value->setAccessible(TRUE); $unserialized_property = $unserialized_reflection->getProperty($value->getName()); $unserialized_property->setAccessible(TRUE); $this->assertEquals($unserialized_property->getValue($unserialized), $value->getValue($translation)); } } } Loading
core/modules/locale/src/LocaleTranslation.php +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\DependencyInjection\DependencySerializationTrait; use Drupal\Core\DestructableInterface; use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Language\LanguageManagerInterface; Loading @@ -19,6 +20,8 @@ */ class LocaleTranslation implements TranslatorInterface, DestructableInterface { use DependencySerializationTrait; /** * Storage for strings. * Loading
core/modules/locale/tests/src/Kernel/LocaleTranslationTest.php 0 → 100644 +48 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\locale\Kernel; use Drupal\locale\LocaleTranslation; use Drupal\KernelTests\KernelTestBase; /** * @coversDefaultClass \Drupal\locale\LocaleTranslation * @group locale */ class LocaleTranslationTest extends KernelTestBase { /** * {@inheritdoc} */ protected static $modules = [ 'locale', ]; /** * Tests that \Drupal\locale\LocaleTranslation is serializable. */ public function testSerializable() { $translation = $this->container->get('string_translator.locale.lookup'); $this->assertInstanceOf(LocaleTranslation::class, $translation); // Prove that serialization and deserialization works without errors. $this->assertNotNull($translation); $unserialized = unserialize(serialize($translation)); $this->assertInstanceOf(LocaleTranslation::class, $unserialized); // Ensure that all properties on the unserialized object match the original. $translation_reflection = new \ReflectionObject($translation); $unserialized_reflection = new \ReflectionObject($unserialized); // Ignore the '_serviceIds' property in the comparison. $properties = array_filter($translation_reflection->getProperties(), function ($value) { return $value->getName() !== '_serviceIds'; }); foreach ($properties as $value) { $value->setAccessible(TRUE); $unserialized_property = $unserialized_reflection->getProperty($value->getName()); $unserialized_property->setAccessible(TRUE); $this->assertEquals($unserialized_property->getValue($unserialized), $value->getValue($translation)); } } }