Viewing file: InteractsWithViews.php (2.34 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Foundation\Testing\Concerns;
use Illuminate\Support\Facades\View as ViewFacade; use Illuminate\Support\MessageBag; use Illuminate\Support\ViewErrorBag; use Illuminate\Testing\TestComponent; use Illuminate\Testing\TestView; use Illuminate\View\View;
trait InteractsWithViews { /** * Create a new TestView from the given view. * * @param string $view * @param \Illuminate\Contracts\Support\Arrayable|array $data * @return \Illuminate\Testing\TestView */ protected function view(string $view, $data = []) { return new TestView(view($view, $data)); }
/** * Render the contents of the given Blade template string. * * @param string $template * @param \Illuminate\Contracts\Support\Arrayable|array $data * @return \Illuminate\Testing\TestView */ protected function blade(string $template, $data = []) { $tempDirectory = sys_get_temp_dir();
if (! in_array($tempDirectory, ViewFacade::getFinder()->getPaths())) { ViewFacade::addLocation(sys_get_temp_dir()); }
$tempFileInfo = pathinfo(tempnam($tempDirectory, 'laravel-blade'));
$tempFile = $tempFileInfo['dirname'].'/'.$tempFileInfo['filename'].'.blade.php';
file_put_contents($tempFile, $template);
return new TestView(view($tempFileInfo['filename'], $data)); }
/** * Render the given view component. * * @param string $componentClass * @param \Illuminate\Contracts\Support\Arrayable|array $data * @return \Illuminate\Testing\TestComponent */ protected function component(string $componentClass, $data = []) { $component = $this->app->make($componentClass, $data);
$view = value($component->resolveView(), $data);
$view = $view instanceof View ? $view->with($component->data()) : view($view, $component->data());
return new TestComponent($component, $view); }
/** * Populate the shared view error bag with the given errors. * * @param array $errors * @param string $key * @return $this */ protected function withViewErrors(array $errors, $key = 'default') { ViewFacade::share('errors', (new ViewErrorBag)->put($key, new MessageBag($errors)));
return $this; } }
|