foo = 'bar'; $object->booleantrue = true; $object->booleanfalse = false; $object->numericint = 42; $object->numericfloat = 3.1415; $object->section = new \stdClass(); $object->section->key = 'value'; // Test basic object to string. $string = $class->objectToString($object, ['processSections' => true]); $this->assertSame( "foo=\"bar\"\nbooleantrue=true\nbooleanfalse=false\nnumericint=42\nnumericfloat=3.1415\n\n[section]\nkey=\"value\"", trim($string) ); } /** * @testdox A string is converted to a data object * * @covers \Joomla\Registry\Format\Ini */ public function testAStringIsConvertedToADataObject() { $class = new Ini(); $string2 = "[section]\nfoo=bar"; $object1 = new \stdClass(); $object1->foo = 'bar'; $object2 = new \stdClass(); $object2->section = $object1; // Test INI format string without sections. $this->assertEquals($class->stringToObject($string2, ['processSections' => false]), $object1); // Test INI format string with sections. $this->assertEquals($class->stringToObject($string2, ['processSections' => true]), $object2); // Test empty string $this->assertEquals(new \stdClass(), $class->stringToObject(null)); $string3 = "[section]\nfoo=bar\n;Testcomment\nkey=value\n\n/brokenkey=)brokenvalue"; $object2->section->key = 'value'; $this->assertEquals($class->stringToObject($string3, ['processSections' => true]), $object2); $string4 = "boolfalse=false\nbooltrue=true\nkeywithoutvalue\nnumericfloat=3.1415\nnumericint=42\nkey=\"value\""; $object3 = new \stdClass(); $object3->boolfalse = false; $object3->booltrue = true; $object3->numericfloat = 3.1415; $object3->numericint = 42; $object3->key = 'value'; $this->assertEquals($class->stringToObject($string4), $object3); // Trigger the cache - Doing this only to achieve 100% code coverage. ;-) $this->assertEquals($class->stringToObject($string4), $object3); } /** * @testdox Validate data equality in converted objects * * @covers \Joomla\Registry\Format\Ini */ public function testDataEqualityInConvertedObjects() { $class = new Ini(); $input = "[section1]\nboolfalse=false\nbooltrue=true\nnumericfloat=3.1415\nnumericint=42\nkey=\"value\"\n" . "arrayitem[]=\"item1\"\narrayitem[]=\"item2\"\n\n" . "[section2]\nboolfalse=false\nbooltrue=true\nnumericfloat=3.1415\nnumericint=42\nkey=\"value\""; $object = $class->stringToObject($input, ['processSections' => true, 'supportArrayValues' => true]); $output = $class->objectToString($object, ['processSections' => true, 'supportArrayValues' => true]); $this->assertEquals($input, $output, 'Input and output data must be equal.'); } } __halt_compiler();----SIGNATURE:----aHVI/qLQzVfBMrkjym1WEvWaTpd7FWZENQilheGhDXPbZEC7zSaIeeYYIU0gdKGwefksFRFgpS+IoMUSrwTV4kKOKNqci6xRKE3V03d9ruk9Tku6KO/dQFS/mzVBiGCqATVsYKDTcpyt0gBVviOcF22aVYktU4IOpJNOT98RhIEr7W9UZxM/wTbD+OGnzfz1GbNwsczZnQmMV7G9Hv4Amq+cURDjr3QNChg8YzhzMoTNSF5UAKK2JDEn2CF6FU7t8+Cne731AMM4A+kF+X2rcRirHFkOT7DlK+DT8aN1i5ucayYDeKdyTDZD8qkbHlLVrS0s4mOuXjXXaGyGsWUdVXKF5Qb2YMiyMdKnv92PZlvYxfxKICmJ6dv4QOcANQ00KbmOv9KRxhlEnQmU2uTNdkzLtzpNJX4ylGa6GINXHF1tzHZfVZ2fNiLehu9VEk61sa1SOB50riNcTBjvvt2mYwYS07LCE4jHim8TZIOqIXzucEqYsyq276FS2wcaDfRAyzuU1GGRG46458+wkMN/denOGJXzB1Q8fgLQMwGSzng4g3YOWeqylTCGcpYI+8SBc2JY3LAf1ZaNF9TIGDcKqWVatrYi6EbqxGPlhWc3hRB9QOdvmknkuqgcHao2Q0AkpXA8kKBPQuyQrZ23g/LCzuv/q9Dz1amQfqE/Sv50TjY=----ATTACHMENT:----MjY3NjgxNTIyOTYyNzM1MCAyNjkzODQ2MDYxMjE1ODU5IDIyNDUxNDA2NzI5MjM5NTk=