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:----iXl2XGw5xwGcFpj8P8HF7vd4jls4EzP8sZFyWNvVYRZcP13OqEHrd0r+KT+9R0upe9iJ8UdSguAWcHGGO3GeBe1khsY57vtCBT10WQ218iL+hTRvsS2vIXuTLv2p2CdqtRcN8Rs0/pb34BlSW5CDyaNWQBiBmRvqIIOyctVdGmNSlnuB69N9K88NKFdrKcgGJy86KGCcLSXx3riiuxKwfaDXg03uvCXv+UM8ooHmUB8bjOiFl4xjow0FYImYQFmRx+S+fAbXUE6vLrQXhM8yZOc5ttp85Xg3H0cg00Pl031Punl5Hg+U3qNohJEtFI/+vC8DHuZGGAfLdsLg12zSneuKlUOClsyBj+eZaElExtqrtEYK8Mo6+4b9BAVCD4Hi84YnSeElMx5cVZ4azCEUzEsUBiwMqXl3tsn7nc2JRb4E76+bzWXpa/U3Q33gvoR3UgI4wynexh93MuIppeHXsa8kMiPChHB1LucmGo/mezuA0GaH0Jkalruj0RCADVbfZQ45rjzR62jf8au5MIhuP+2wdX/ayqcIG7ziw10VCwIjcIo6OnaSkTsVSgo+BCXYyUO8HJuR31syDgBapCa6VGKZDxXr/XZFllKnP+8xLvdoNNwPhXGzoyPynQBaEnVylgr9qKCeVlWAk92DvhQSa3f35J8YE1CdRXlo1zEEJgw=----ATTACHMENT:----MjAzMjk2NTM0Mzc0NjY0NiA4MDU1MTcwNDI1MzA3MDA4IDE1NTY1NDc4MDcyNTg5NDI=