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 Tests\Browser\Form; use App\Models\Keyword; use App\Models\Project; use ..

Decoded Output download

<?php

namespace Tests\Browser\Form;

use App\Models\Keyword;
use App\Models\Project;
use App\Models\Tag;
use App\Models\User;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class RelationsTest extends DuskTestCase
{
    /** @test */
    public function it_can_find_the_default_value_of_a_nested_relationship()
    {
        $this->browse(function (Browser $browser) {
            $project = Project::first();
            $browser->visit('form/components/relation')
                ->waitForText('FormComponents')
                ->assertValue('@name', $project->name)
                ->assertValue('@city', $project->organization->address->city);
        });
    }

    /** @test */
    public function it_can_handle_a_belongs_to_many_relationship()
    {
        $tags = Tag::query()->get();

        $user = User::first();

        $user->tags()->sync($tags->take(3));

        $newIds = [$tags->get(0)->id, $tags->get(7)->id, $tags->get(8)->id, $tags->get(9)->id];

        $this->browse(function (Browser $browser) use ($tags, $newIds) {
            $browser->visit('form/relations/belongsToMany')
                ->waitForText('FormComponents')
                ->assertSelected('tags[]', $tags->get(0)->id)
                ->assertSelected('tags[]', $tags->get(1)->id)
                ->assertSelected('tags[]', $tags->get(2)->id)
                ->assertNotSelected('tags[]', $tags->get(3)->id)
                ->assertNotSelected('tags[]', $tags->get(9)->id)
                ->select('tags[]', $newIds)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->tags()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_belongs_to_many_relationship_with_the_choices_library()
    {
        $tags = Tag::query()->get();

        $user = User::first();

        $user->tags()->sync($oldIds = $tags->take(3)->map->id);

        $newIds = [$tags->get(0)->id, $tags->get(7)->id, $tags->get(8)->id, $tags->get(9)->id];

        $this->browse(function (Browser $browser) use ($tags, $oldIds, $newIds) {
            $browser->visit('form/relations/belongsToMany/choices')
                ->waitForText('FormComponents')
                ->assertSelected('tags[]', $tags->get(0)->id)
                ->assertSelected('tags[]', $tags->get(1)->id)
                ->assertSelected('tags[]', $tags->get(2)->id)
                ->assertNotSelected('tags[]', $tags->get(3)->id)
                ->assertNotSelected('tags[]', $tags->get(9)->id);

            foreach ($oldIds as $oldId) {
                $browser->choicesRemoveItem('tags[]', $oldId);
            }

            foreach ($newIds as $newId) {
                $browser->choicesSelect('tags[]', $newId);
            }

            $browser
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->tags()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_morph_to_many_relationship()
    {
        $keywords = Keyword::query()->get();

        $user = User::first();

        $user->keywords()->sync($keywords->take(3));

        $newIds = [$keywords->get(0)->id, $keywords->get(7)->id, $keywords->get(8)->id, $keywords->get(9)->id];

        $this->browse(function (Browser $browser) use ($keywords, $newIds) {
            $browser->visit('form/relations/morphToMany')
                ->waitForText('FormComponents')
                ->assertSelected('keywords[]', $keywords->get(0)->id)
                ->assertSelected('keywords[]', $keywords->get(1)->id)
                ->assertSelected('keywords[]', $keywords->get(2)->id)
                ->assertNotSelected('keywords[]', $keywords->get(3)->id)
                ->assertNotSelected('keywords[]', $keywords->get(9)->id)
                ->select('keywords[]', $newIds)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->keywords()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_relationship_with_checkboxes()
    {
        $keywords = Keyword::query()->get();

        $user = User::first();

        $user->keywords()->sync($keywords->take(3));

        $newIds = [$keywords->get(0)->id, $keywords->get(7)->id, $keywords->get(8)->id, $keywords->get(9)->id];

        $this->browse(function (Browser $browser) use ($keywords) {
            $browser->visit('form/relations/checkboxRelation')
                ->waitForText('FormComponents')
                ->assertChecked('keywords[]', $keywords->get(0)->id)
                ->assertChecked('keywords[]', $keywords->get(1)->id)
                ->assertChecked('keywords[]', $keywords->get(2)->id)
                ->assertNotChecked('keywords[]', $keywords->get(3)->id)
                ->assertNotChecked('keywords[]', $keywords->get(9)->id)
                ->uncheck('keywords[]', $keywords->get(1)->id)
                ->uncheck('keywords[]', $keywords->get(2)->id)
                ->check('keywords[]', $keywords->get(7)->id)
                ->check('keywords[]', $keywords->get(8)->id)
                ->check('keywords[]', $keywords->get(9)->id)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->keywords()->get()->map->id->all());
    }

    /** @test */
    public function it_can_have_two_forms_in_a_view_without_mixing_data()
    {
        $tags = Tag::query()->get();

        $firstUser  = User::skip(0)->first();
        $secondUser = User::skip(1)->first();

        $firstUser->tags()->sync($tags->take(3));
        $secondUser->tags()->sync($tags->skip(3)->take(3));

        $this->browse(function (Browser $browser) use ($tags) {
            $browser->visit('form/relations/twoForms')
                ->waitForText('FormComponents')
                ->within('#form1', function (Browser $browser) use ($tags) {
                    $browser
                        ->assertSeeIn('#all1', 'name')
                        ->assertDontSeeIn('#all1', 'email')
                        ->assertSelected('tags[]', $tags->get(0)->id)
                        ->assertSelected('tags[]', $tags->get(1)->id)
                        ->assertSelected('tags[]', $tags->get(2)->id)
                        ->assertNotSelected('tags[]', $tags->get(3)->id)
                        ->assertNotSelected('tags[]', $tags->get(4)->id)
                        ->assertNotSelected('tags[]', $tags->get(5)->id);
                })
                ->within('#form2', function (Browser $browser) use ($tags) {
                    $browser
                        ->assertDontSeeIn('#all2', 'name')
                        ->assertSeeIn('#all2', 'email')
                        ->assertNotSelected('tags[]', $tags->get(0)->id)
                        ->assertNotSelected('tags[]', $tags->get(1)->id)
                        ->assertNotSelected('tags[]', $tags->get(2)->id)
                        ->assertSelected('tags[]', $tags->get(3)->id)
                        ->assertSelected('tags[]', $tags->get(4)->id)
                        ->assertSelected('tags[]', $tags->get(5)->id);
                });
        });
    }
}
 ?>

Did this file decode correctly?

Original Code

<?php

namespace Tests\Browser\Form;

use App\Models\Keyword;
use App\Models\Project;
use App\Models\Tag;
use App\Models\User;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class RelationsTest extends DuskTestCase
{
    /** @test */
    public function it_can_find_the_default_value_of_a_nested_relationship()
    {
        $this->browse(function (Browser $browser) {
            $project = Project::first();
            $browser->visit('form/components/relation')
                ->waitForText('FormComponents')
                ->assertValue('@name', $project->name)
                ->assertValue('@city', $project->organization->address->city);
        });
    }

    /** @test */
    public function it_can_handle_a_belongs_to_many_relationship()
    {
        $tags = Tag::query()->get();

        $user = User::first();

        $user->tags()->sync($tags->take(3));

        $newIds = [$tags->get(0)->id, $tags->get(7)->id, $tags->get(8)->id, $tags->get(9)->id];

        $this->browse(function (Browser $browser) use ($tags, $newIds) {
            $browser->visit('form/relations/belongsToMany')
                ->waitForText('FormComponents')
                ->assertSelected('tags[]', $tags->get(0)->id)
                ->assertSelected('tags[]', $tags->get(1)->id)
                ->assertSelected('tags[]', $tags->get(2)->id)
                ->assertNotSelected('tags[]', $tags->get(3)->id)
                ->assertNotSelected('tags[]', $tags->get(9)->id)
                ->select('tags[]', $newIds)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->tags()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_belongs_to_many_relationship_with_the_choices_library()
    {
        $tags = Tag::query()->get();

        $user = User::first();

        $user->tags()->sync($oldIds = $tags->take(3)->map->id);

        $newIds = [$tags->get(0)->id, $tags->get(7)->id, $tags->get(8)->id, $tags->get(9)->id];

        $this->browse(function (Browser $browser) use ($tags, $oldIds, $newIds) {
            $browser->visit('form/relations/belongsToMany/choices')
                ->waitForText('FormComponents')
                ->assertSelected('tags[]', $tags->get(0)->id)
                ->assertSelected('tags[]', $tags->get(1)->id)
                ->assertSelected('tags[]', $tags->get(2)->id)
                ->assertNotSelected('tags[]', $tags->get(3)->id)
                ->assertNotSelected('tags[]', $tags->get(9)->id);

            foreach ($oldIds as $oldId) {
                $browser->choicesRemoveItem('tags[]', $oldId);
            }

            foreach ($newIds as $newId) {
                $browser->choicesSelect('tags[]', $newId);
            }

            $browser
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->tags()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_morph_to_many_relationship()
    {
        $keywords = Keyword::query()->get();

        $user = User::first();

        $user->keywords()->sync($keywords->take(3));

        $newIds = [$keywords->get(0)->id, $keywords->get(7)->id, $keywords->get(8)->id, $keywords->get(9)->id];

        $this->browse(function (Browser $browser) use ($keywords, $newIds) {
            $browser->visit('form/relations/morphToMany')
                ->waitForText('FormComponents')
                ->assertSelected('keywords[]', $keywords->get(0)->id)
                ->assertSelected('keywords[]', $keywords->get(1)->id)
                ->assertSelected('keywords[]', $keywords->get(2)->id)
                ->assertNotSelected('keywords[]', $keywords->get(3)->id)
                ->assertNotSelected('keywords[]', $keywords->get(9)->id)
                ->select('keywords[]', $newIds)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->keywords()->get()->map->id->all());
    }

    /** @test */
    public function it_can_handle_a_relationship_with_checkboxes()
    {
        $keywords = Keyword::query()->get();

        $user = User::first();

        $user->keywords()->sync($keywords->take(3));

        $newIds = [$keywords->get(0)->id, $keywords->get(7)->id, $keywords->get(8)->id, $keywords->get(9)->id];

        $this->browse(function (Browser $browser) use ($keywords) {
            $browser->visit('form/relations/checkboxRelation')
                ->waitForText('FormComponents')
                ->assertChecked('keywords[]', $keywords->get(0)->id)
                ->assertChecked('keywords[]', $keywords->get(1)->id)
                ->assertChecked('keywords[]', $keywords->get(2)->id)
                ->assertNotChecked('keywords[]', $keywords->get(3)->id)
                ->assertNotChecked('keywords[]', $keywords->get(9)->id)
                ->uncheck('keywords[]', $keywords->get(1)->id)
                ->uncheck('keywords[]', $keywords->get(2)->id)
                ->check('keywords[]', $keywords->get(7)->id)
                ->check('keywords[]', $keywords->get(8)->id)
                ->check('keywords[]', $keywords->get(9)->id)
                ->press('Submit')
                ->waitUntilMissingText('FormComponents')
                ->waitForRoute('navigation.one');
        });

        $this->assertEquals($newIds, $user->keywords()->get()->map->id->all());
    }

    /** @test */
    public function it_can_have_two_forms_in_a_view_without_mixing_data()
    {
        $tags = Tag::query()->get();

        $firstUser  = User::skip(0)->first();
        $secondUser = User::skip(1)->first();

        $firstUser->tags()->sync($tags->take(3));
        $secondUser->tags()->sync($tags->skip(3)->take(3));

        $this->browse(function (Browser $browser) use ($tags) {
            $browser->visit('form/relations/twoForms')
                ->waitForText('FormComponents')
                ->within('#form1', function (Browser $browser) use ($tags) {
                    $browser
                        ->assertSeeIn('#all1', 'name')
                        ->assertDontSeeIn('#all1', 'email')
                        ->assertSelected('tags[]', $tags->get(0)->id)
                        ->assertSelected('tags[]', $tags->get(1)->id)
                        ->assertSelected('tags[]', $tags->get(2)->id)
                        ->assertNotSelected('tags[]', $tags->get(3)->id)
                        ->assertNotSelected('tags[]', $tags->get(4)->id)
                        ->assertNotSelected('tags[]', $tags->get(5)->id);
                })
                ->within('#form2', function (Browser $browser) use ($tags) {
                    $browser
                        ->assertDontSeeIn('#all2', 'name')
                        ->assertSeeIn('#all2', 'email')
                        ->assertNotSelected('tags[]', $tags->get(0)->id)
                        ->assertNotSelected('tags[]', $tags->get(1)->id)
                        ->assertNotSelected('tags[]', $tags->get(2)->id)
                        ->assertSelected('tags[]', $tags->get(3)->id)
                        ->assertSelected('tags[]', $tags->get(4)->id)
                        ->assertSelected('tags[]', $tags->get(5)->id);
                });
        });
    }
}

Function Calls

None

Variables

None

Stats

MD5 b9f02ad238cc2f545ffc5acf6fef27f9
Eval Count 0
Decode Time 111 ms