@@ -155,6 +155,7 @@ public function testIfDirective()
155
155
156
156
public function testNonDataObjectVariableParsing ()
157
157
{
158
+ $ previous = $ this ->templateFilter ->setStrictMode (false );
158
159
$ this ->templateFilter ->setVariables (
159
160
[
160
161
'address ' => new class {
@@ -168,11 +169,33 @@ public function format($type)
168
169
169
170
$ template = '{{var address.format( \'html \')}} ' ;
170
171
$ expected = '<foo>html</foo> ' ;
171
- self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
172
+ try {
173
+ self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
174
+ } finally {
175
+ $ this ->templateFilter ->setStrictMode ($ previous );
176
+ }
177
+ }
178
+
179
+ public function testStrictModeByDefault ()
180
+ {
181
+ $ this ->templateFilter ->setVariables (
182
+ [
183
+ 'address ' => new class {
184
+ public function format ()
185
+ {
186
+ throw new \Exception ('Should not run ' );
187
+ }
188
+ }
189
+ ]
190
+ );
191
+
192
+ $ template = '{{var address.format( \'html \')}} ' ;
193
+ self ::assertEquals ('' , $ this ->templateFilter ->filter ($ template ));
172
194
}
173
195
174
196
public function testComplexVariableArguments ()
175
197
{
198
+ $ previous = $ this ->templateFilter ->setStrictMode (false );
176
199
$ this ->templateFilter ->setVariables (
177
200
[
178
201
'address ' => new class {
@@ -187,11 +210,16 @@ public function format($a, $b, $c)
187
210
188
211
$ template = '{{var address.format($arg1, \'bar \',[param1:baz])}} ' ;
189
212
$ expected = 'foo bar baz ' ;
190
- self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
213
+ try {
214
+ self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
215
+ } finally {
216
+ $ this ->templateFilter ->setStrictMode ($ previous );
217
+ }
191
218
}
192
219
193
220
public function testComplexVariableGetterArguments ()
194
221
{
222
+ $ previous = $ this ->templateFilter ->setStrictMode (false );
195
223
$ this ->templateFilter ->setVariables (
196
224
[
197
225
'address ' => new class extends DataObject {
@@ -206,7 +234,11 @@ public function getFoo($a, $b, $c)
206
234
207
235
$ template = '{{var address.getFoo($arg1, \'bar \',[param1:baz])}} ' ;
208
236
$ expected = 'foo bar baz ' ;
209
- self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
237
+ try {
238
+ self ::assertEquals ($ expected , $ this ->templateFilter ->filter ($ template ));
239
+ } finally {
240
+ $ this ->templateFilter ->setStrictMode ($ previous );
241
+ }
210
242
}
211
243
212
244
public function testNonDataObjectRendersBlankInStrictMode ()
0 commit comments