Merge "TemplateParser: Pass FLAG_MUSTACHELOOKUP to enable parent context access"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 5 Sep 2018 00:33:42 +0000 (00:33 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 5 Sep 2018 00:33:42 +0000 (00:33 +0000)
includes/TemplateParser.php
tests/phpunit/data/templates/parentvars.mustache [new file with mode: 0644]
tests/phpunit/includes/TemplateParserTest.php

index 4210a96..75494b1 100644 (file)
@@ -41,9 +41,7 @@ class TemplateParser {
        /**
         * @var int Compilation flags passed to LightnCandy
         */
-       // Do not add more flags here without discussion.
-       // If you do add more flags, be sure to update unit tests as well.
-       protected $compileFlags = LightnCandy::FLAG_ERROR_EXCEPTION;
+       protected $compileFlags;
 
        /**
         * @param string|null $templateDir
@@ -52,6 +50,10 @@ class TemplateParser {
        public function __construct( $templateDir = null, $forceRecompile = false ) {
                $this->templateDir = $templateDir ?: __DIR__ . '/templates';
                $this->forceRecompile = $forceRecompile;
+
+               // Do not add more flags here without discussion.
+               // If you do add more flags, be sure to update unit tests as well.
+               $this->compileFlags = LightnCandy::FLAG_ERROR_EXCEPTION | LightnCandy::FLAG_MUSTACHELOOKUP;
        }
 
        /**
diff --git a/tests/phpunit/data/templates/parentvars.mustache b/tests/phpunit/data/templates/parentvars.mustache
new file mode 100644 (file)
index 0000000..aa732c0
--- /dev/null
@@ -0,0 +1,4 @@
+{{foo}}
+{{#bar}}
+       {{foo}} {{baz}}
+{{/bar}}
index ccccf0f..cb321bb 100644 (file)
@@ -105,6 +105,17 @@ class TemplateParserTest extends MediaWikiTestCase {
                                false,
                                'Exception',
                        ],
+                       [
+                               'parentvars',
+                               [
+                                       'foo' => 'f',
+                                       'bar' => [
+                                               [ 'baz' => 'x' ],
+                                               [ 'baz' => 'y' ]
+                                       ]
+                               ],
+                               "f\n\n\tf x\n\n\tf y\n\n"
+                       ]
                ];
        }