%PDF- %PDF-
Direktori : /home/silvzytp/dsr_code/vendor/laravel/framework/src/Illuminate/Testing/ |
Current File : //home/silvzytp/dsr_code/vendor/laravel/framework/src/Illuminate/Testing/TestView.php |
<?php namespace Illuminate\Testing; use Closure; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Arr; use Illuminate\Support\Traits\Macroable; use Illuminate\Testing\Assert as PHPUnit; use Illuminate\Testing\Constraints\SeeInOrder; use Illuminate\View\View; class TestView { use Macroable; /** * The original view. * * @var \Illuminate\View\View */ protected $view; /** * The rendered view contents. * * @var string */ protected $rendered; /** * Create a new test view instance. * * @param \Illuminate\View\View $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 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; } }