@@ -42,13 +42,37 @@ test('{var ...}', function () use ($latte) {
42
42
43
43
44
44
test ('{default ...} ' , function () use ($ latte ) {
45
- Assert::contains ("extract(['var' => null, 'var2' => null], EXTR_SKIP) /* " , $ latte ->compile ('{default $var, $var2} ' ));
46
- Assert::contains ("extract(['var' => 123], EXTR_SKIP) /* " , $ latte ->compile ('{default $var = 123} ' ));
47
- Assert::contains ("extract(['var1' => 123, 'var2' => 'nette framework'], EXTR_SKIP) /* " , $ latte ->compile ('{default $var1 = 123, $var2 = "nette framework"} ' ));
45
+ Assert::match (<<<'XX'
46
+ %A%
47
+ $var ??= array_key_exists('var', get_defined_vars()) ? null : null;
48
+ $var2 ??= array_key_exists('var2', get_defined_vars()) ? null : null /* line 1 */;
49
+ %A%
50
+ XX, $ latte ->compile ('{default $var, $var2} ' ));
51
+
52
+ Assert::contains (
53
+ '$var ??= array_key_exists( \'var \', get_defined_vars()) ? null : 123 /* line 1 */; ' ,
54
+ $ latte ->compile ('{default $var = 123} ' ),
55
+ );
56
+
57
+ Assert::match (<<<'XX'
58
+ %A%
59
+ $var1 ??= array_key_exists('var1', get_defined_vars()) ? null : 123;
60
+ $var2 ??= array_key_exists('var2', get_defined_vars()) ? null : 'nette framework' /* line 1 */;
61
+ %A%
62
+ XX, $ latte ->compile ('{default $var1 = 123, $var2 = "nette framework"} ' ));
48
63
49
64
// types
50
- Assert::contains ("extract(['var' => 123], EXTR_SKIP) /* " , $ latte ->compile ('{default null|int|string[] $var = 123} ' ));
51
- Assert::contains ("extract(['var1' => 123, 'var2' => 'nette framework'], EXTR_SKIP) /* " , $ latte ->compile ('{default int|string[] $var1 = 123, ?class $var2 = "nette framework"} ' ));
65
+ Assert::contains (
66
+ '$var ??= array_key_exists( \'var \', get_defined_vars()) ? null : 123 /* line 1 */; ' ,
67
+ $ latte ->compile ('{default null|int|string[] $var = 123} ' ),
68
+ );
69
+
70
+ Assert::match (<<<'XX'
71
+ %A%
72
+ $var1 ??= array_key_exists('var1', get_defined_vars()) ? null : 123;
73
+ $var2 ??= array_key_exists('var2', get_defined_vars()) ? null : 'nette framework' /* line 1 */;
74
+ %A%
75
+ XX, $ latte ->compile ('{default int|string[] $var1 = 123, ?class $var2 = "nette framework"} ' ));
52
76
53
77
// errors
54
78
Assert::exception (
@@ -62,7 +86,4 @@ test('{default ...}', function () use ($latte) {
62
86
Latte \CompileException::class,
63
87
'Unexpected end in {default} (on line 1 at column 30) ' ,
64
88
);
65
-
66
- // preprocess
67
- Assert::contains ("extract(['var1' => true ? 'a' : null], EXTR_SKIP) /* " , $ latte ->compile ('{default $var1 = true ? a} ' ));
68
89
});
0 commit comments