Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace Livewire\Features\SupportRedirects; use Livewire\Attributes\On; use Test..

Decoded Output download

<?php

namespace Livewire\Features\SupportRedirects;

use Livewire\Attributes\On;
use Tests\BrowserTestCase;
use Livewire\Livewire;
use Livewire\Component;
use Livewire\Attributes\Reactive;
use Illuminate\Support\Facades\Route;

class BrowserTest extends BrowserTestCase
{
    public function test_can_redirect()
    {
        Livewire::visit([new class extends Component {
            public function redirectToWebsite()
            {
                $this->redirect('https://livewire.laravel.com');
            }

            public function render() { return <<<HTML
            <div>
                <button type="button" dusk="button" wire:click="redirectToWebsite">Redirect to Livewire</button>
            </div>
            HTML; }
        }])
        ->waitForText('Redirect to Livewire')
        ->waitForLivewire()->click('@button')
        ->assertUrlIs('https://livewire.laravel.com/')
        ;
    }

    public function test_session_flash_persists_when_redirecting_from_request_with_multiple_components_in_the_same_request()
    {
        config()->set('session.driver', 'file');

        Route::get('/redirect', RedirectComponent::class)->middleware('web');

        Livewire::visit([
            new class extends Component {
                public $foo = 0;

                public function doRedirect()
                {
                    session()->flash('alert', 'Session flash data');

                    $this->redirect('/redirect');
                }

                public function render() { return <<<'HTML'
                <div>
                    <h1>Parent</h1>

                    <button wire:click="doRedirect" dusk="button">Do redirect</button>

                    <livewire:child :$foo />
                </div>
                HTML; }
            },
            'child' => new class extends Component {
                #[Reactive]
                public $foo;

                public function render() { return <<<'HTML'
                <div>
                    <label>Child</label>
                </div>
                HTML; }
            }
        ])
        ->click('@button')
        ->waitForTextIn('@session-message', 'Session flash data');
    }

    public function test_session_flash_clearing_on_subsequent_requests()
    {
        config()->set('session.driver', 'file');

        Livewire::visit([
            new class extends Component {
                public $foo = 0;

                public function mount()
                {
                    session()->flash('alert', 'Session flash data');
                }

                #[On('rerender')]
                public function rerender() {
                    $this->foo++;
                }

                public function render() { return <<<'HTML'
                <div>
                    <h1>Parent</h1>

                    <div dusk="foo">{{$foo}}</div>

                    <livewire:child />

                    <div dusk="session-message">
                        @if(session()->has('alert'))
                            Flash exists
                        @else
                            Flash cleared
                        @endif
                    </div>
                </div>
                HTML; }
            },
            'child' => new class extends Component {

                public function rerenderParent()
                {
                    $this->dispatch('rerender');
                }

                public function render() { return <<<'HTML'
                <div>
                    <button wire:click="rerenderParent" dusk="button">Make subsequent request</button>
                </div>
                HTML; }
            }
        ])
            ->waitForTextIn('@foo', '0')
            ->waitForTextIn('@session-message', 'Flash exists')
            ->waitForLivewire()->click('@button')
            ->waitForTextIn('@foo', '1')
            ->waitForTextIn('@session-message', 'Flash cleared');
    }
}

class RedirectComponent extends Component {
    public function render() { return <<<'HTML'
        <div>
            <h1>Redirected page</h1>

            <div dusk="session-message">
                @session('alert')
                    {{ $value }}
                @endsession
            </div>
        </div>
    HTML; }
}
 ?>

Did this file decode correctly?

Original Code

<?php

namespace Livewire\Features\SupportRedirects;

use Livewire\Attributes\On;
use Tests\BrowserTestCase;
use Livewire\Livewire;
use Livewire\Component;
use Livewire\Attributes\Reactive;
use Illuminate\Support\Facades\Route;

class BrowserTest extends BrowserTestCase
{
    public function test_can_redirect()
    {
        Livewire::visit([new class extends Component {
            public function redirectToWebsite()
            {
                $this->redirect('https://livewire.laravel.com');
            }

            public function render() { return <<<HTML
            <div>
                <button type="button" dusk="button" wire:click="redirectToWebsite">Redirect to Livewire</button>
            </div>
            HTML; }
        }])
        ->waitForText('Redirect to Livewire')
        ->waitForLivewire()->click('@button')
        ->assertUrlIs('https://livewire.laravel.com/')
        ;
    }

    public function test_session_flash_persists_when_redirecting_from_request_with_multiple_components_in_the_same_request()
    {
        config()->set('session.driver', 'file');

        Route::get('/redirect', RedirectComponent::class)->middleware('web');

        Livewire::visit([
            new class extends Component {
                public $foo = 0;

                public function doRedirect()
                {
                    session()->flash('alert', 'Session flash data');

                    $this->redirect('/redirect');
                }

                public function render() { return <<<'HTML'
                <div>
                    <h1>Parent</h1>

                    <button wire:click="doRedirect" dusk="button">Do redirect</button>

                    <livewire:child :$foo />
                </div>
                HTML; }
            },
            'child' => new class extends Component {
                #[Reactive]
                public $foo;

                public function render() { return <<<'HTML'
                <div>
                    <label>Child</label>
                </div>
                HTML; }
            }
        ])
        ->click('@button')
        ->waitForTextIn('@session-message', 'Session flash data');
    }

    public function test_session_flash_clearing_on_subsequent_requests()
    {
        config()->set('session.driver', 'file');

        Livewire::visit([
            new class extends Component {
                public $foo = 0;

                public function mount()
                {
                    session()->flash('alert', 'Session flash data');
                }

                #[On('rerender')]
                public function rerender() {
                    $this->foo++;
                }

                public function render() { return <<<'HTML'
                <div>
                    <h1>Parent</h1>

                    <div dusk="foo">{{$foo}}</div>

                    <livewire:child />

                    <div dusk="session-message">
                        @if(session()->has('alert'))
                            Flash exists
                        @else
                            Flash cleared
                        @endif
                    </div>
                </div>
                HTML; }
            },
            'child' => new class extends Component {

                public function rerenderParent()
                {
                    $this->dispatch('rerender');
                }

                public function render() { return <<<'HTML'
                <div>
                    <button wire:click="rerenderParent" dusk="button">Make subsequent request</button>
                </div>
                HTML; }
            }
        ])
            ->waitForTextIn('@foo', '0')
            ->waitForTextIn('@session-message', 'Flash exists')
            ->waitForLivewire()->click('@button')
            ->waitForTextIn('@foo', '1')
            ->waitForTextIn('@session-message', 'Flash cleared');
    }
}

class RedirectComponent extends Component {
    public function render() { return <<<'HTML'
        <div>
            <h1>Redirected page</h1>

            <div dusk="session-message">
                @session('alert')
                    {{ $value }}
                @endsession
            </div>
        </div>
    HTML; }
}

Function Calls

None

Variables

None

Stats

MD5 622bdd174b33e5c438f33ad79c841848
Eval Count 0
Decode Time 106 ms