/** * formatArray() test. * @return void */ public function testFormatArray() { // symbols $this->assertEquals('', CurlyBracketsFilter::formatArray('')); $this->assertEquals('', CurlyBracketsFilter::formatArray('', '&')); $this->assertEquals('array(1)', CurlyBracketsFilter::formatArray('1')); $this->assertEquals('&array(1)', CurlyBracketsFilter::formatArray('1', '&')); $this->assertEquals("array('symbol')", CurlyBracketsFilter::formatArray('symbol')); $this->assertEquals("array(1, 2,'symbol1','symbol2')", CurlyBracketsFilter::formatArray('1, 2, symbol1, symbol2')); // strings $this->assertEquals('array("\\"1, 2, symbol1, symbol2")', CurlyBracketsFilter::formatArray('"\\"1, 2, symbol1, symbol2"')); // unable to parse "${'"'}" yet $this->assertEquals("array('\\'1, 2, symbol1, symbol2')", CurlyBracketsFilter::formatArray("'\\'1, 2, symbol1, symbol2'")); $this->assertEquals("array('\\\\'1, 2,'symbol1', symbol2')", CurlyBracketsFilter::formatArray("'\\\\'1, 2, symbol1, symbol2'")); // key words $this->assertEquals('array(TRUE, false, null, 1 or 1 and 2 xor 3, clone $obj, new Class)', CurlyBracketsFilter::formatArray('TRUE, false, null, 1 or 1 and 2 xor 3, clone $obj, new Class')); $this->assertEquals('array(func (10))', CurlyBracketsFilter::formatArray('func (10)')); // associative arrays $this->assertEquals("array('symbol1' =>'value','symbol2'=>'value')", CurlyBracketsFilter::formatArray('symbol1 => value,symbol2=>value')); $this->assertEquals("array('symbol1' => array ('symbol2' =>'value'))", CurlyBracketsFilter::formatArray('symbol1 => array (symbol2 => value)')); }
/** * {default ...} */ private function macroDefault($content) { if (!$content) { throw new InvalidStateException("Missing arguments in {default} on line {$this->filter->line}."); } return 'extract(' . CurlyBracketsFilter::formatArray($content) . ', EXTR_SKIP)'; }