@@ -18,6 +18,20 @@ public function testEchosAreConvertedProperly()
18
18
$ this ->assertEquals ('<?php echo e($a); ?> ' , Blade::compile_string ($ blade2 ));
19
19
}
20
20
21
+ /**
22
+ * Test the compilation of comments statements.
23
+ *
24
+ * @group laravel
25
+ */
26
+ public function testCommentsAreConvertedProperly ()
27
+ {
28
+ $ blade1 = "{{-- This is a comment --}} " ;
29
+ $ blade2 = "{{-- \nThis is a \nmulti-line \ncomment. \n--}} " ;
30
+
31
+ $ this ->assertEquals ("<?php /* This is a comment */ ?> \n" , Blade::compile_string ($ blade1 ));
32
+ $ this ->assertEquals ("<?php /* \nThis is a \nmulti-line \ncomment. \n */ ?> \n" , Blade::compile_string ($ blade2 ));
33
+ }
34
+
21
35
/**
22
36
* Test the compilation of control structures.
23
37
*
@@ -29,11 +43,22 @@ public function testControlStructuresAreCreatedCorrectly()
29
43
$ blade2 = "@if (count( " .'$something ' .") > 0) \nfoo \n@endif " ;
30
44
$ blade3 = "@if (true) \nfoo \n@elseif (false) \nbar \n@endif " ;
31
45
$ blade4 = "@if (true) \nfoo \n@else \nbar \n@endif " ;
46
+ $ blade5 = "@unless (count( " .'$something ' .") > 0) \nfoobar \n@endunless " ;
47
+ $ blade6 = "@for (Foo::all() as " .'$foo ' .") \nfoo \n@endfor " ;
48
+ $ blade7 = "@foreach (Foo::all() as " .'$foo ' .") \nfoo \n@endforeach " ;
49
+ $ blade8 = "@forelse (Foo::all() as " .'$foo ' .") \nfoo \n@empty \nbar \n@endforelse " ;
50
+ $ blade9 = "@while (true) \nfoo \n@endwhile " ;
32
51
33
52
$ this ->assertEquals ("<?php if (true): ?> \nfoo \n<?php endif; ?> " , Blade::compile_string ($ blade1 ));
34
53
$ this ->assertEquals ("<?php if (count( " .'$something ' .") > 0): ?> \nfoo \n<?php endif; ?> " , Blade::compile_string ($ blade2 ));
35
54
$ this ->assertEquals ("<?php if (true): ?> \nfoo \n<?php elseif (false): ?> \nbar \n<?php endif; ?> " , Blade::compile_string ($ blade3 ));
36
55
$ this ->assertEquals ("<?php if (true): ?> \nfoo \n<?php else: ?> \nbar \n<?php endif; ?> " , Blade::compile_string ($ blade4 ));
56
+ $ this ->assertEquals ("<?php if ( ! ( (count( " .'$something ' .") > 0))): ?> \nfoobar \n<?php endif; ?> " , Blade::compile_string ($ blade5 ));
57
+ $ this ->assertEquals ("<?php for (Foo::all() as " .'$foo ' ."): ?> \nfoo \n<?php endfor; ?> " , Blade::compile_string ($ blade6 ));
58
+ $ this ->assertEquals ("<?php foreach (Foo::all() as " .'$foo ' ."): ?> \nfoo \n<?php endforeach; ?> " , Blade::compile_string ($ blade7 ));
59
+ $ this ->assertEquals ("<?php if (count(Foo::all()) > 0): ?><?php foreach (Foo::all() as " .'$foo ' ."): ?> \nfoo \n<?php endforeach; ?><?php else: ?> \nbar \n<?php endif; ?> " , Blade::compile_string ($ blade8 ));
60
+ $ this ->assertEquals ("<?php while (true): ?> \nfoo \n<?php endwhile; ?> " , Blade::compile_string ($ blade9 ));
61
+
37
62
}
38
63
39
64
/**
@@ -60,4 +85,28 @@ public function testSectionsAreCompiledCorrectly()
60
85
$ this ->assertEquals ("<?php \\Laravel \\Section::start('something'); ?> \nfoo \n<?php \\Laravel \\Section::stop(); ?> " , Blade::compile_string ($ blade ));
61
86
}
62
87
88
+ /**
89
+ * Test the compilation of include statements.
90
+ *
91
+ * @group laravel
92
+ */
93
+ public function testIncludesAreCompiledCorrectly ()
94
+ {
95
+ $ blade = "@include('user.profile') " ;
96
+
97
+ $ this ->assertEquals ("<?php echo view('user.profile')->with(get_defined_vars())->render(); ?> " , Blade::compile_string ($ blade ));
98
+ }
99
+
100
+ /**
101
+ * Test the compilation of render statements.
102
+ *
103
+ * @group laravel
104
+ */
105
+ public function testRendersAreCompiledCorrectly ()
106
+ {
107
+ $ blade = "@render('user.profile') " ;
108
+
109
+ $ this ->assertEquals ("<?php echo render('user.profile'); ?> " , Blade::compile_string ($ blade ));
110
+ }
111
+
63
112
}
0 commit comments