IfTest.php 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /*
  3. * This file is part of Twig.
  4. *
  5. * (c) Fabien Potencier
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. class Twig_Tests_Node_IfTest extends Twig_Test_NodeTestCase
  11. {
  12. /**
  13. * @covers Twig_Node_If::__construct
  14. */
  15. public function testConstructor()
  16. {
  17. $t = new Twig_Node(array(
  18. new Twig_Node_Expression_Constant(true, 1),
  19. new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
  20. ), array(), 1);
  21. $else = null;
  22. $node = new Twig_Node_If($t, $else, 1);
  23. $this->assertEquals($t, $node->getNode('tests'));
  24. $this->assertEquals(null, $node->getNode('else'));
  25. $else = new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1);
  26. $node = new Twig_Node_If($t, $else, 1);
  27. $this->assertEquals($else, $node->getNode('else'));
  28. }
  29. /**
  30. * @covers Twig_Node_If::compile
  31. * @dataProvider getTests
  32. */
  33. public function testCompile($node, $source, $environment = null)
  34. {
  35. parent::testCompile($node, $source, $environment);
  36. }
  37. public function getTests()
  38. {
  39. $tests = array();
  40. $t = new Twig_Node(array(
  41. new Twig_Node_Expression_Constant(true, 1),
  42. new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
  43. ), array(), 1);
  44. $else = null;
  45. $node = new Twig_Node_If($t, $else, 1);
  46. $tests[] = array($node, <<<EOF
  47. // line 1
  48. if (true) {
  49. echo {$this->getVariableGetter('foo')};
  50. }
  51. EOF
  52. );
  53. $t = new Twig_Node(array(
  54. new Twig_Node_Expression_Constant(true, 1),
  55. new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
  56. new Twig_Node_Expression_Constant(false, 1),
  57. new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1),
  58. ), array(), 1);
  59. $else = null;
  60. $node = new Twig_Node_If($t, $else, 1);
  61. $tests[] = array($node, <<<EOF
  62. // line 1
  63. if (true) {
  64. echo {$this->getVariableGetter('foo')};
  65. } elseif (false) {
  66. echo {$this->getVariableGetter('bar')};
  67. }
  68. EOF
  69. );
  70. $t = new Twig_Node(array(
  71. new Twig_Node_Expression_Constant(true, 1),
  72. new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
  73. ), array(), 1);
  74. $else = new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1);
  75. $node = new Twig_Node_If($t, $else, 1);
  76. $tests[] = array($node, <<<EOF
  77. // line 1
  78. if (true) {
  79. echo {$this->getVariableGetter('foo')};
  80. } else {
  81. echo {$this->getVariableGetter('bar')};
  82. }
  83. EOF
  84. );
  85. return $tests;
  86. }
  87. }