8000 Merge pull request #1419 from laravie/feature/blade-testcase · atinder-snippets/laravel@1ddb4bb · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit 1ddb4bb

Browse files
committed
Merge pull request laravel#1419 from laravie/feature/blade-testcase
Improve Blade unit-test code coverage
2 parents e714c0b + dace3d5 commit 1ddb4bb

File tree

2 files changed

+63
-5
lines changed

2 files changed

+63
-5
lines changed

laravel/blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ protected static function compile_unless($value)
303303
{
304304
$pattern = '/(\s*)@unless(\s*\(.*\))/';
305305

306-
return preg_replace($pattern, '$1<?php if( ! ($2)): ?>', $value);
306+
return preg_replace($pattern, '$1<?php if ( ! ($2)): ?>', $value);
307307
}
308308

309309
/**

laravel/tests/cases/blade.test.php

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
*
@@ -27,13 +41,28 @@ public function testControlStructuresAreCreatedCorrectly()
2741
{
2842
$blade1 = "@if (true)\nfoo\n@endif";
2943
$blade2 = "@if (count(".'$something'.") > 0)\nfoo\n@endif";
30-
$blade3 = "@if (true)\nfoo\n@elseif (false)\nbar\n@endif";
31-
$blade4 = "@if (true)\nfoo\n@else\nbar\n@endif";
44+
$blade3 = "@if (true)\nfoo\n@elseif (false)\nbar\n@else\nfoobar\n@endif";
45+
$blade4 = "@if (true)\nfoo\n@elseif (false)\nbar\n@endif";
46+
$blade5 = "@if (true)\nfoo\n@else\nbar\n@endif";
47+
$blade6 = "@unless (count(".'$something'.") > 0)\nfoobar\n@endunless";
48+
$blade7 = "@for (Foo::all() as ".'$foo'.")\nfoo\n@endfor";
49+
$blade8 = "@foreach (Foo::all() as ".'$foo'.")\nfoo\n@endforeach";
50+
$blade9 = "@forelse (Foo::all() as ".'$foo'.")\nfoo\n@empty\nbar\n@endforelse";
51+
$blade10 = "@while (true)\nfoo\n@endwhile";
52+
$blade11 = "@while (Foo::bar())\nfoo\n@endwhile";
53+
3254

3355
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php endif; ?>", Blade::compile_string($blade1));
3456
$this->assertEquals("<?php if (count(".'$something'.") > 0): ?>\nfoo\n<?php endif; ?>", Blade::compile_string($blade2));
35-
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php elseif (false): ?>\nbar\n<?php endif; ?>", Blade::compile_string($blade3));
36-
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php else: ?>\nbar\n<?php endif; ?>", Blade::compile_string($blade4));
57+
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php elseif (false): ?>\nbar\n<?php else: ?>\nfoobar\n<?php endif; ?>", Blade::compile_string($blade3));
58+
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php elseif (false): ?>\nbar\n<?php endif; ?>", Blade::compile_string($blade4));
59+
$this->assertEquals("<?php if (true): ?>\nfoo\n<?php else: ?>\nbar\n<?php endif; ?>", Blade::compile_string($blade5));
60+
$this->assertEquals("<?php if ( ! ( (count(".'$something'.") > 0))): ?>\nfoobar\n<?php endif; ?>", Blade::compile_string($blade6));
61+
$this->assertEquals("<?php for (Foo::all() as ".'$foo'."): ?>\nfoo\n<?php endfor; ?>", Blade::compile_string($blade7));
62+
$this->assertEquals("<?php foreach (Foo::all() as ".'$foo'."): ?>\nfoo\n<?php endforeach; ?>", Blade::compile_string($blade8));
63+
$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($blade9));
64+
$this->assertEquals("<?php while (true): ?>\nfoo\n<?php endwhile; ?>", Blade::compile_string($blade10));
65+
$this->assertEquals("<?php while (Foo::bar()): ?>\nfoo\n<?php endwhile; ?>", Blade::compile_string($blade11));
3766
}
3867

3968
/**
@@ -60,4 +89,33 @@ public function testSectionsAreCompiledCorrectly()
6089
$this->assertEquals("<?php \\Laravel\\Section::start('something'); ?>\nfoo\n<?php \\Laravel\\Section::stop(); ?>", Blade::compile_string($blade));
6190
}
6291

92+
/**
93+
* Test the compilation of include statements.
94+
*
95+
* @group laravel
96+
*/
97+
public function testIncludesAreCompiledCorrectly()
98+
{
99+
$blade1 = "@include('user.profile')";
100+
$blade2 = "@include(Config::get('application.default_view', 'user.profile'))";
101+
102+
$this->assertEquals("<?php echo view('user.profile')->with(get_defined_vars())->render(); ?>", Blade::compile_string($blade1));
103+
$this->assertEquals("<?php echo view(Config::get('application.default_view', 'user.profile'))->with(get_defined_vars())->render(); ?>", Blade::compile_string($blade2));
104+
}
105+
106+
/**
107+
* Test the compilation of render statements.
108+
*
109+
* @group laravel
110+
*/
111+
public function testRendersAreCompiledCorrectly()
112+
{
113+
$blade1 = "@render('user.profile')";
114+
$blade2 = "@render(Config::get('application.default_view', 'user.profile'))";
115+
116+
$this->assertEquals("<?php echo render('user.profile'); ?>", Blade::compile_string($blade1));
117+
$this->assertEquals("<?php echo render(Config::get('application.default_view', 'user.profile')); ?>", Blade::compile_string($blade2));
118+
119+
}
120+
63121
}

0 commit comments

Comments
 (0)
0