@@ -18,6 +18,20 @@ public function testEchosAreConvertedProperly()
1818 $ this ->assertEquals ('<?php echo e($a); ?> ' , Blade::compile_string ($ blade2 ));
1919 }
2020
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+
2135 /**
2236 * Test the compilation of control structures.
2337 *
@@ -29,11 +43,22 @@ public function testControlStructuresAreCreatedCorrectly()
2943 $ blade2 = "@if (count( " .'$something ' .") > 0) \nfoo \n@endif " ;
3044 $ blade3 = "@if (true) \nfoo \n@elseif (false) \nbar \n@endif " ;
3145 $ 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 " ;
3251
3352 $ this ->assertEquals ("<?php if (true): ?> \nfoo \n<?php endif; ?> " , Blade::compile_string ($ blade1 ));
3453 $ this ->assertEquals ("<?php if (count( " .'$something ' .") > 0): ?> \nfoo \n<?php endif; ?> " , Blade::compile_string ($ blade2 ));
3554 $ this ->assertEquals ("<?php if (true): ?> \nfoo \n<?php elseif (false): ?> \nbar \n<?php endif; ?> " , Blade::compile_string ($ blade3 ));
3655 $ 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+
3762 }
3863
3964 /**
@@ -60,4 +85,28 @@ public function testSectionsAreCompiledCorrectly()
6085 $ this ->assertEquals ("<?php \\Laravel \\Section::start('something'); ?> \nfoo \n<?php \\Laravel \\Section::stop(); ?> " , Blade::compile_string ($ blade ));
6186 }
6287
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+
63112}
0 commit comments