public function testPhpKeyWord() { $jade = new Jade(array('prettyprint' => false)); $actual = trim($jade->render('for ;;')); $expected = '<for>;;</for>'; $this->assertSame($expected, $actual, 'Before adding keyword, a word render as a tag.'); $jade->addKeyword('for', function ($args) { return array('beginPhp' => 'for (' . $args . ') {', 'endPhp' => '}'); }); $actual = trim($jade->render('for $i = 0; $i < 3; $i++' . "\n" . ' p= i')); $expected = '<p>0</p><p>1</p><p>2</p>'; $this->assertSame($expected, $actual, 'addKeyword should allow to customize available keywords.'); $jade->replaceKeyword('for', new ForKeyword()); $actual = trim($jade->render('for $i = 0; $i < 3; $i++' . "\n" . ' p')); $expected = '$i = 0; $i < 3; $i++<p></p>'; $this->assertSame($expected, $actual, 'The keyword action can be an callable class.'); $jade->removeKeyword('for'); $actual = trim($jade->render('for ;;')); $expected = '<for>;;</for>'; $this->assertSame($expected, $actual, 'After removing keyword, a word render as a tag.'); }