1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
<?php
namespace Illuminate\Tests\View\Blade;
class BladeVerbatimTest extends AbstractBladeTestCase
{
public function testVerbatimBlocksAreCompiled()
{
$string = '@verbatim {{ $a }} @if($b) {{ $b }} @endif @endverbatim';
$expected = ' {{ $a }} @if($b) {{ $b }} @endif ';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testVerbatimBlocksWithMultipleLinesAreCompiled()
{
$string = 'Some text
@verbatim
{{ $a }}
@if($b)
{{ $b }}
@endif
@endverbatim';
$expected = 'Some text
{{ $a }}
@if($b)
{{ $b }}
@endif
';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testMultipleVerbatimBlocksAreCompiled()
{
$string = '@verbatim {{ $a }} @endverbatim {{ $b }} @verbatim {{ $c }} @endverbatim';
$expected = ' {{ $a }} <?php echo e($b); ?> {{ $c }} ';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testRawBlocksAreRenderedInTheRightOrder()
{
$string = '@php echo "#1"; @endphp @verbatim {{ #2 }} @endverbatim @verbatim {{ #3 }} @endverbatim @php echo "#4"; @endphp';
$expected = '<?php echo "#1"; ?> {{ #2 }} {{ #3 }} <?php echo "#4"; ?>';
$this->assertSame($expected, $this->compiler->compileString($string));
}
public function testMultilineTemplatesWithRawBlocksAreRenderedInTheRightOrder()
{
$string = '{{ $first }}
@php
echo $second;
@endphp
@if ($conditional)
{{ $third }}
@endif
@include("users")
@verbatim
{{ $fourth }} @include("test")
@endverbatim
@php echo $fifth; @endphp';
$expected = '<?php echo e($first); ?>
<?php
echo $second;
?>
<?php if($conditional): ?>
<?php echo e($third); ?>
<?php endif; ?>
<?php echo $__env->make("users", \Illuminate\Support\Arr::except(get_defined_vars(), [\'__data\', \'__path\']))->render(); ?>
{{ $fourth }} @include("test")
<?php echo $fifth; ?>';
$this->assertSame($expected, $this->compiler->compileString($string));
}
public function testRawBlocksDontGetMixedUpWhenSomeAreRemovedByBladeComments()
{
$string = '{{-- @verbatim Block #1 @endverbatim --}} @php "Block #2" @endphp';
$expected = ' <?php "Block #2" ?>';
$this->assertSame($expected, $this->compiler->compileString($string));
}
}
|