From 77cd3d62fac6eec9624f8f7f1fc73013ce9b54e1 Mon Sep 17 00:00:00 2001 From: Gilbertsoft <25326036+gilbertsoft@users.noreply.github.com> Date: Tue, 6 Oct 2020 14:06:01 +0200 Subject: [PATCH 1/3] Add test for serialization of RawMessage --- .../Component/Mime/Tests/RawMessageTest.php | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/Symfony/Component/Mime/Tests/RawMessageTest.php b/src/Symfony/Component/Mime/Tests/RawMessageTest.php index 5d1588bff00fa..a9cf10fde67eb 100644 --- a/src/Symfony/Component/Mime/Tests/RawMessageTest.php +++ b/src/Symfony/Component/Mime/Tests/RawMessageTest.php @@ -32,4 +32,26 @@ public function testToString() $this->assertEquals('some string', $message->toString()); $this->assertEquals('some string', implode('', iterator_to_array($message->toIterable()))); } + + public function testSerialization() + { + $message = new RawMessage('string'); + $serialized = serialize($message); + $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":23:{a:1:{i:0;s:6:"string";}}', $serialized); + $this->assertEquals('string', unserialize($serialized)->toString()); + // calling methods more than once work + $serialized = serialize($message); + $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":23:{a:1:{i:0;s:6:"string";}}', $serialized); + $this->assertEquals('string', unserialize($serialized)->toString()); + + $message = new RawMessage(new \ArrayObject(['some', ' ', 'string'])); + $message = new RawMessage($message->toIterable()); + $serialized = serialize($message); + $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":29:{a:1:{i:0;s:11:"some string";}}', $serialized); + $this->assertEquals('some string', unserialize($serialized)->toString()); + // calling methods more than once work + $serialized = serialize($message); + $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":29:{a:1:{i:0;s:11:"some string";}}', $serialized); + $this->assertEquals('some string', unserialize($serialized)->toString()); + } } From 56a63d116aa28d0eb6b995618d92761cfa16f2e5 Mon Sep 17 00:00:00 2001 From: Gilbertsoft <25326036+gilbertsoft@users.noreply.github.com> Date: Tue, 6 Oct 2020 14:49:39 +0200 Subject: [PATCH 2/3] Fix serialization of RawMessage --- src/Symfony/Component/Mime/RawMessage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mime/RawMessage.php b/src/Symfony/Component/Mime/RawMessage.php index 79a27e9fcc69d..66788d8ad526d 100644 --- a/src/Symfony/Component/Mime/RawMessage.php +++ b/src/Symfony/Component/Mime/RawMessage.php @@ -78,7 +78,7 @@ final public function unserialize($serialized) public function __serialize(): array { - return [$this->message]; + return [$this->toString()]; } public function __unserialize(array $data): void From aa4c74b30d30d29b0ea441f233425c4885c09601 Mon Sep 17 00:00:00 2001 From: Gilbertsoft <25326036+gilbertsoft@users.noreply.github.com> Date: Tue, 6 Oct 2020 15:18:24 +0200 Subject: [PATCH 3/3] Fix tests --- .../Component/Mime/Tests/RawMessageTest.php | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/Mime/Tests/RawMessageTest.php b/src/Symfony/Component/Mime/Tests/RawMessageTest.php index a9cf10fde67eb..26e7605baba2d 100644 --- a/src/Symfony/Component/Mime/Tests/RawMessageTest.php +++ b/src/Symfony/Component/Mime/Tests/RawMessageTest.php @@ -36,22 +36,14 @@ public function testToString() public function testSerialization() { $message = new RawMessage('string'); - $serialized = serialize($message); - $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":23:{a:1:{i:0;s:6:"string";}}', $serialized); - $this->assertEquals('string', unserialize($serialized)->toString()); + $this->assertEquals('string', unserialize(serialize($message))->toString()); // calling methods more than once work - $serialized = serialize($message); - $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":23:{a:1:{i:0;s:6:"string";}}', $serialized); - $this->assertEquals('string', unserialize($serialized)->toString()); + $this->assertEquals('string', unserialize(serialize($message))->toString()); $message = new RawMessage(new \ArrayObject(['some', ' ', 'string'])); $message = new RawMessage($message->toIterable()); - $serialized = serialize($message); - $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":29:{a:1:{i:0;s:11:"some string";}}', $serialized); - $this->assertEquals('some string', unserialize($serialized)->toString()); + $this->assertEquals('some string', unserialize(serialize($message))->toString()); // calling methods more than once work - $serialized = serialize($message); - $this->assertEquals('C:33:"Symfony\Component\Mime\RawMessage":29:{a:1:{i:0;s:11:"some string";}}', $serialized); - $this->assertEquals('some string', unserialize($serialized)->toString()); + $this->assertEquals('some string', unserialize(serialize($message))->toString()); } }
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: