Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Testing/TestView.php
Строк: 214
<?php

namespace IlluminateTesting;

use 
Closure;
use 
IlluminateDatabaseEloquentCollection;
use 
IlluminateDatabaseEloquentModel;
use 
IlluminateSupportArr;
use 
IlluminateSupportTraitsMacroable;
use 
IlluminateTestingAssert as PHPUnit;
use 
IlluminateTestingConstraintsSeeInOrder;
use 
IlluminateViewView;

class 
TestView
{
    use 
Macroable;

    
/**
     * The original view.
     *
     * @var IlluminateViewView
     */
    
protected $view;

    
/**
     * The rendered view contents.
     *
     * @var string
     */
    
protected $rendered;

    
/**
     * Create a new test view instance.
     *
     * @param  IlluminateViewView  $view
     * @return void
     */
    
public function __construct(View $view)
    {
        
$this->view = $view;
        
$this->rendered = $view->render();
    }

    
/**
     * Assert that the response view has a given piece of bound data.
     *
     * @param  string|array  $key
     * @param  mixed  $value
     * @return $this
     */
    
public function assertViewHas($key, $value = null)
    {
        if (
is_array($key)) {
            return 
$this->assertViewHasAll($key);
        }

        if (
is_null($value)) {
            
PHPUnit::assertTrue(Arr::has($this->view->gatherData(), $key));
        } elseif (
$value instanceof Closure) {
            
PHPUnit::assertTrue($value(Arr::get($this->view->gatherData(), $key)));
        } elseif (
$value instanceof Model) {
            
PHPUnit::assertTrue($value->is(Arr::get($this->view->gatherData(), $key)));
        } elseif (
$value instanceof Collection) {
            
$actual = Arr::get($this->view->gatherData(), $key);

            
PHPUnit::assertInstanceOf(Collection::class, $actual);
            
PHPUnit::assertSameSize($value, $actual);

            
$value->each(fn ($item, $index) => PHPUnit::assertTrue($actual->get($index)->is($item)));
        } else {
            
PHPUnit::assertEquals($value, Arr::get($this->view->gatherData(), $key));
        }

        return 
$this;
    }

    
/**
     * Assert that the response view has a given list of bound data.
     *
     * @param  array  $bindings
     * @return $this
     */
    
public function assertViewHasAll(array $bindings)
    {
        foreach (
$bindings as $key => $value) {
            if (
is_int($key)) {
                
$this->assertViewHas($value);
            } else {
                
$this->assertViewHas($key, $value);
            }
        }

        return 
$this;
    }

    
/**
     * Assert that the response view is missing a piece of bound data.
     *
     * @param  string  $key
     * @return $this
     */
    
public function assertViewMissing($key)
    {
        
PHPUnit::assertFalse(Arr::has($this->view->gatherData(), $key));

        return 
$this;
    }

    
/**
     * Assert that the view's rendered content is empty.
     *
     * @return $this
     */
    
public function assertViewEmpty()
    {
        
PHPUnit::assertEmpty($this->rendered);

        return 
$this;
    }

    
/**
     * Assert that the given string is contained within the view.
     *
     * @param  string  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSee($value, $escape = true)
    {
        
$value = $escape ? e($value) : $value;

        
PHPUnit::assertStringContainsString((string) $value, $this->rendered);

        return 
$this;
    }

    
/**
     * Assert that the given strings are contained in order within the view.
     *
     * @param  array  $values
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSeeInOrder(array $values, $escape = true)
    {
        
$values = $escape ? array_map('e', $values) : $values;

        
PHPUnit::assertThat($values, new SeeInOrder($this->rendered));

        return 
$this;
    }

    
/**
     * Assert that the given string is contained within the view text.
     *
     * @param  string  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSeeText($value, $escape = true)
    {
        
$value = $escape ? e($value) : $value;

        
PHPUnit::assertStringContainsString((string) $value, strip_tags($this->rendered));

        return 
$this;
    }

    
/**
     * Assert that the given strings are contained in order within the view text.
     *
     * @param  array  $values
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSeeTextInOrder(array $values, $escape = true)
    {
        
$values = $escape ? array_map('e', $values) : $values;

        
PHPUnit::assertThat($values, new SeeInOrder(strip_tags($this->rendered)));

        return 
$this;
    }

    
/**
     * Assert that the given string is not contained within the view.
     *
     * @param  string  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertDontSee($value, $escape = true)
    {
        
$value = $escape ? e($value) : $value;

        
PHPUnit::assertStringNotContainsString((string) $value, $this->rendered);

        return 
$this;
    }

    
/**
     * Assert that the given string is not contained within the view text.
     *
     * @param  string  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertDontSeeText($value, $escape = true)
    {
        
$value = $escape ? e($value) : $value;

        
PHPUnit::assertStringNotContainsString((string) $value, strip_tags($this->rendered));

        return 
$this;
    }

    
/**
     * Get the string contents of the rendered view.
     *
     * @return string
     */
    
public function __toString()
    {
        return 
$this->rendered;
    }
}
Онлайн: 2
Реклама