Вход Регистрация
Файл: 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($valueArr::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) $valuestrip_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) $valuestrip_tags($this->rendered));

        return 
$this;
    }

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