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

namespace IlluminateTesting;

use 
IlluminateSupportArr;
use 
IlluminateSupportTraitsMacroable;
use 
IlluminateTestingAssert as PHPUnit;
use 
IlluminateTestingConstraintsSeeInHtml;
use 
IlluminateTestingConstraintsSeeInOrder;
use 
Stringable;

class 
TestComponent implements Stringable
{
    use 
Macroable {
        
__call as macroCall;
    }

    
/**
     * The original component.
     *
     * @var IlluminateViewComponent
     */
    
public $component;

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

    
/**
     * Create a new test component instance.
     *
     * @param  IlluminateViewComponent  $component
     * @param  IlluminateViewView  $view
     */
    
public function __construct($component$view)
    {
        
$this->component $component;

        
$this->rendered $view->render();
    }

    
/**
     * Assert that the given string or array of strings are contained within the rendered component.
     *
     * @param  string|list<string>  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSee($value$escape true)
    {
        
$value Arr::wrap($value);

        
$values $escape array_map(e(...), $value) : $value;

        foreach (
$values as $value) {
            
PHPUnit::assertStringContainsString((string) $value$this->rendered);
        }

        return 
$this;
    }

    
/**
     * Assert that the given HTML string or array of HTML strings are contained within the rendered component.
     *
     * @param  string|list<string>  $value
     * @return $this
     */
    
public function assertSeeHtml($value)
    {
        return 
$this->assertSee($valuefalse);
    }

    
/**
     * Assert that the given strings are contained in order within the rendered component.
     *
     * @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 HTML strings are contained in order within the rendered component.
     *
     * @param  list<string>  $values
     * @return $this
     */
    
public function assertSeeHtmlInOrder(array $values)
    {
        return 
$this->assertSeeInOrder($valuesfalse);
    }

    
/**
     * Assert that the given string or array of strings are contained within the rendered component text.
     *
     * @param  string|list<string>  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSeeText($value$escape true)
    {
        
$value Arr::wrap($value);

        
$values $escape array_map(e(...), $value) : $value;

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

        return 
$this;
    }

    
/**
     * Assert that the given strings are contained in order within the rendered component text.
     *
     * @param  list<string>  $values
     * @param  bool  $escape
     * @return $this
     */
    
public function assertSeeTextInOrder(array $values$escape true)
    {
        
$values $escape array_map(e(...), $values) : $values;

        
PHPUnit::assertThat($values, new SeeInHtml($this->renderedtrue));

        return 
$this;
    }

    
/**
     * Assert that the given string or array of strings are not contained within the rendered component.
     *
     * @param  string|list<string>  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertDontSee($value$escape true)
    {
        
$value Arr::wrap($value);

        
$values $escape array_map(e(...), $value) : $value;

        foreach (
$values as $value) {
            
PHPUnit::assertStringNotContainsString((string) $value$this->rendered);
        }

        return 
$this;
    }

    
/**
     * Assert that the given HTML string or array of HTML strings are not contained within the rendered component.
     *
     * @param  string|list<string>  $value
     * @return $this
     */
    
public function assertDontSeeHtml($value)
    {
        return 
$this->assertDontSee($valuefalse);
    }

    
/**
     * Assert that the given string or array of strings are not contained within the rendered component text.
     *
     * @param  string|list<string>  $value
     * @param  bool  $escape
     * @return $this
     */
    
public function assertDontSeeText($value$escape true)
    {
        
$value Arr::wrap($value);

        
$values $escape array_map(e(...), $value) : $value;

        
$rendered strip_tags($this->rendered);

        foreach (
$values as $value) {
            
PHPUnit::assertStringNotContainsString((string) $value$rendered);
        }

        return 
$this;
    }

    
/**
     * Get the string contents of the rendered component.
     *
     * @return string
     */
    
public function __toString()
    {
        return 
$this->rendered;
    }

    
/**
     * Dynamically access properties on the underlying component.
     *
     * @param  string  $attribute
     * @return mixed
     */
    
public function __get($attribute)
    {
        return 
$this->component->{$attribute};
    }

    
/**
     * Dynamically call methods on the underlying component.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    
public function __call($method$parameters)
    {
        if (static::
hasMacro($method)) {
            return 
$this->macroCall($method$parameters);
        }

        return 
$this->component->{$method}(...$parameters);
    }
}
Онлайн: 1
Реклама