Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UnserializeTest.php
Go to the documentation of this file.
1 <?php
7 
10 
11 class UnserializeTest extends \PHPUnit\Framework\TestCase
12 {
16  private $serializerMock;
17 
21  private $unserialize;
22 
23  protected function setUp()
24  {
25  $this->serializerMock = $this->getMockBuilder(Serialize::class)
26  ->setMethods(
27  ['serialize', 'unserialize']
28  )
29  ->getMock();
30  $this->unserialize = new Unserialize($this->serializerMock);
31  }
32 
33  public function testUnserializeArray()
34  {
35  $data = ['foo' => 'bar', 1, 4];
36  $serializedData = 'serialzied data';
37  $this->serializerMock->expects($this->any())
38  ->method('unserialize')
39  ->with($serializedData)
40  ->willReturn($data);
41  $this->assertEquals(
42  $data,
43  $this->unserialize->unserialize($serializedData)
44  );
45  }
46 
53  public function testUnserializeObject($serialized)
54  {
55  $this->assertFalse($this->unserialize->unserialize($serialized));
56  }
57 
62  {
63  return [
64  // Upper and lower case serialized object indicators, nested in array
65  ['a:2:{i:0;s:3:"foo";i:1;O:6:"Object":1:{s:11:"Objectvar";i:123;}}'],
66  ['a:2:{i:0;s:3:"foo";i:1;o:6:"Object":1:{s:11:"Objectvar";i:123;}}'],
67  ['a:2:{i:0;s:3:"foo";i:1;c:6:"Object":1:{s:11:"Objectvar";i:123;}}'],
68  ['a:2:{i:0;s:3:"foo";i:1;C:6:"Object":1:{s:11:"Objectvar";i:123;}}'],
69 
70  // Positive, negative signs on object length, non-nested
71  ['o:+6:"Object":1:{s:11:"Objectvar";i:123;}'],
72  ['o:-6:"Object":1:{s:11:"Objectvar";i:123;}']
73  ];
74  }
75 }