1
0
Fork 0

Merge remote-tracking branch 'danieliancu/1.0' into 1.0

pull/5243/head
Jordi Boggiano 2016-04-21 12:01:36 +01:00
commit 47bba5bd14
2 changed files with 40 additions and 2 deletions

View File

@ -353,7 +353,7 @@ class JsonManipulator
if ($this->pregMatch('#[^{\s](\s*)\}$#', $this->contents, $match)) {
$this->contents = preg_replace(
'#'.$match[1].'\}$#',
addcslashes(',' . $this->newline . $this->indent . JsonFile::encode($key). ': '. $content . $this->newline . '}', '\\'),
addcslashes(',' . $this->newline . $this->indent . JsonFile::encode($key). ': '. $content . $this->newline . '}', '\\$'),
$this->contents
);
@ -363,7 +363,7 @@ class JsonManipulator
// append at the end of the file
$this->contents = preg_replace(
'#\}$#',
addcslashes($this->indent . JsonFile::encode($key). ': '.$content . $this->newline . '}', '\\'),
addcslashes($this->indent . JsonFile::encode($key). ': '.$content . $this->newline . '}', '\\$'),
$this->contents
);

View File

@ -2045,6 +2045,31 @@ class JsonManipulatorTest extends \PHPUnit_Framework_TestCase
', $manipulator->getContents());
}
public function testAddMainKeyWithContentHavingDollarSignFollowedByDigit()
{
$manipulator = new JsonManipulator('{
"foo": "bar"
}');
$this->assertTrue($manipulator->addMainKey('bar', '$1baz'));
$this->assertEquals('{
"foo": "bar",
"bar": "$1baz"
}
', $manipulator->getContents());
}
public function testAddMainKeyWithContentHavingDollarSignFollowedByDigit2()
{
$manipulator = new JsonManipulator('{}');
$this->assertTrue($manipulator->addMainKey('foo', '$1bar'));
$this->assertEquals('{
"foo": "$1bar"
}
', $manipulator->getContents());
}
public function testUpdateMainKey()
{
$manipulator = new JsonManipulator('{
@ -2105,6 +2130,19 @@ class JsonManipulatorTest extends \PHPUnit_Framework_TestCase
', $manipulator->getContents());
}
public function testUpdateMainKeyWithContentHavingDollarSignFollowedByDigit()
{
$manipulator = new JsonManipulator('{
"foo": "bar"
}');
$this->assertTrue($manipulator->addMainKey('foo', '$1bar'));
$this->assertEquals('{
"foo": "$1bar"
}
', $manipulator->getContents());
}
public function testIndentDetection()
{
$manipulator = new JsonManipulator('{