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 90 91 92
|
<?php
namespace Illuminate\Tests\View\Blade;
use Illuminate\Support\Str;
class BladePushTest extends AbstractBladeTestCase
{
public function testPushIsCompiled()
{
$string = '@push(\'foo\')
test
@endpush';
$expected = '<?php $__env->startPush(\'foo\'); ?>
test
<?php $__env->stopPush(); ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testPushIsCompiledWithParenthesis()
{
$string = '@push(\'foo):))\')
test
@endpush';
$expected = '<?php $__env->startPush(\'foo):))\'); ?>
test
<?php $__env->stopPush(); ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testPushOnceIsCompiled()
{
$string = '@pushOnce(\'foo\', \'bar\')
test
@endPushOnce';
$expected = '<?php if (! $__env->hasRenderedOnce(\'bar\')): $__env->markAsRenderedOnce(\'bar\');
$__env->startPush(\'foo\'); ?>
test
<?php $__env->stopPush(); endif; ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testPushOnceIsCompiledWhenIdIsMissing()
{
Str::createUuidsUsing(fn () => 'e60e8f77-9ac3-4f71-9f8e-a044ef481d7f');
$string = '@pushOnce(\'foo\')
test
@endPushOnce';
$expected = '<?php if (! $__env->hasRenderedOnce(\'e60e8f77-9ac3-4f71-9f8e-a044ef481d7f\')): $__env->markAsRenderedOnce(\'e60e8f77-9ac3-4f71-9f8e-a044ef481d7f\');
$__env->startPush(\'foo\'); ?>
test
<?php $__env->stopPush(); endif; ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testPushIfIsCompiled()
{
$string = '@pushIf(true, \'foo\')
test
@endPushIf';
$expected = '<?php if(true): $__env->startPush( \'foo\'); ?>
test
<?php $__env->stopPush(); endif; ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
public function testPushIfElseIsCompiled()
{
$string = '@pushIf(true, \'stack\')
if
@elsePushIf(false, \'stack\')
elseif
@elsePush(\'stack\')
else
@endPushIf';
$expected = '<?php if(true): $__env->startPush( \'stack\'); ?>
if
<?php $__env->stopPush(); elseif(false): $__env->startPush( \'stack\'); ?>
elseif
<?php $__env->stopPush(); else: $__env->startPush(\'stack\'); ?>
else
<?php $__env->stopPush(); endif; ?>';
$this->assertEquals($expected, $this->compiler->compileString($string));
}
}
|