!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/wataxi.picotech.app/public_html/packages/joedixon/laravel-translation/tests/   drwxr-xr-x
Free 29.25 GB of 117.98 GB (24.8%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     DatabaseDriverTest.php (14.23 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace JoeDixon\Translation\Tests;

use 
Illuminate\Foundation\Testing\DatabaseMigrations;
use 
JoeDixon\Translation\Drivers\Translation;
use 
JoeDixon\Translation\Exceptions\LanguageExistsException;
use 
JoeDixon\Translation\Language;
use 
JoeDixon\Translation\Translation as TranslationModel;
use 
JoeDixon\Translation\TranslationBindingsServiceProvider;
use 
JoeDixon\Translation\TranslationServiceProvider;
use 
Orchestra\Testbench\TestCase;

class 
DatabaseDriverTest extends TestCase
{
    use 
DatabaseMigrations;

    private 
$translation;

    
/**
     * Setup the test environment.
     */
    
public function setUp(): void
    
{
        
parent::setUp();
        
$this->withFactories(__DIR__.'/../database/factories');
        
$this->translation $this->app[Translation::class];
    }

    protected function 
getEnvironmentSetUp($app)
    {
        
$app['config']->set('translation.driver''database');
        
$app['config']->set('database.default''testing');
        
$app['config']->set('database.connections.testing', [
            
'driver' => 'sqlite',
            
'database' => ':memory:',
        ]);
    }

    protected function 
getPackageProviders($app)
    {
        return [
            
TranslationServiceProvider::class,
            
TranslationBindingsServiceProvider::class,
        ];
    }

    
/** @test */
    
public function it_returns_all_languages()
    {
        
$newLanguages factory(Language::class, 2)->create();
        
$newLanguages $newLanguages->mapWithKeys(function ($language) {
            return [
$language->language => $language->name];
        })->
toArray();
        
$languages $this->translation->allLanguages();

        
$this->assertEquals($languages->count(), 3);
        
$this->assertEquals($languages->toArray(), ['en' => 'en'] + $newLanguages);
    }

    
/** @test */
    
public function it_returns_all_translations()
    {
        
$default Language::where('language'config('app.locale'))->first();
        
$spanish factory(Language::class)->create(['language' => 'es''name' => 'Español']);
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'whats_up''value' => "What's up!"]);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => 'Hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => "What's up"'value' => "What's up!"]);

        
$translations $this->translation->allTranslations();

        
$this->assertEquals($translations->count(), 2);
        
$this->assertArraySubset(['en' => ['single' => ['single' => ['Hello' => 'Hello'"What's up" => "What's up!"]], 'group' => ['test' => ['hello' => 'Hello''whats_up' => "What's up!"]]]], $translations->toArray());
        
$this->assertArrayHasKey('en'$translations->toArray());
        
$this->assertArrayHasKey('es'$translations->toArray());
    }

    
/** @test */
    
public function it_returns_all_translations_for_a_given_language()
    {
        
$default Language::where('language'config('app.locale'))->first();
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'whats_up''value' => "What's up!"]);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => 'Hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => "What's up"'value' => "What's up!"]);

        
$translations $this->translation->allTranslationsFor('en');
        
$this->assertEquals($translations->count(), 2);
        
$this->assertEquals(['single' => ['single' => ['Hello' => 'Hello'"What's up" => "What's up!"]], 'group' => ['test' => ['hello' => 'Hello''whats_up' => "What's up!"]]], $translations->toArray());
        
$this->assertArrayHasKey('single'$translations->toArray());
        
$this->assertArrayHasKey('group'$translations->toArray());
    }

    
/** @test */
    
public function it_throws_an_exception_if_a_language_exists()
    {
        
$this->expectException(LanguageExistsException::class);
        
$this->translation->addLanguage('en');
    }

    
/** @test */
    
public function it_can_add_a_new_language()
    {
        
$this->assertDatabaseMissing(config('translation.database.languages_table'), [
            
'language' => 'fr',
            
'name' => 'Français',
        ]);

        
$this->translation->addLanguage('fr''Français');
        
$this->assertDatabaseHas(config('translation.database.languages_table'), [
            
'language' => 'fr',
            
'name' => 'Français',
        ]);
    }

    
/** @test */
    
public function it_can_add_a_new_translation_to_a_new_group()
    {
        
$this->translation->addGroupTranslation('es''test''hello''Hola!');

        
$translations $this->translation->allTranslationsFor('es');

        
$this->assertArraySubset(['group' => ['test' => ['hello' => 'Hola!']]], $translations->toArray());
    }

    
/** @test */
    
public function it_can_add_a_new_translation_to_an_existing_translation_group()
    {
        
$translation factory(TranslationModel::class)->create();

        
$this->translation->addGroupTranslation($translation->language->language"{$translation->group}"'test''Testing');

        
$translations $this->translation->allTranslationsFor($translation->language->language);

        
$this->assertArraySubset(['group' => [$translation->group => [$translation->key => $translation->value'test' => 'Testing']]], $translations->toArray());
    }

    
/** @test */
    
public function it_can_add_a_new_single_translation()
    {
        
$this->translation->addSingleTranslation('es''single''Hello''Hola!');

        
$translations $this->translation->allTranslationsFor('es');

        
$this->assertArraySubset(['single' => ['single' => ['Hello' => 'Hola!']]], $translations->toArray());
    }

    
/** @test */
    
public function it_can_add_a_new_single_translation_to_an_existing_language()
    {
        
$translation factory(TranslationModel::class)->states('single')->create();

        
$this->translation->addSingleTranslation($translation->language->language'single''Test''Testing');

        
$translations $this->translation->allTranslationsFor($translation->language->language);

        
$this->assertArraySubset(['single' => ['single' => ['Test' => 'Testing'$translation->key => $translation->value]]], $translations->toArray());
    }

    
/** @test */
    
public function it_can_get_a_collection_of_group_names_for_a_given_language()
    {
        
$language factory(Language::class)->create(['language' => 'en']);
        
factory(TranslationModel::class)->create([
            
'language_id' => $language->id,
            
'group' => 'test',
        ]);

        
$groups $this->translation->getGroupsFor('en');

        
$this->assertEquals($groups->toArray(), ['test']);
    }

    
/** @test */
    
public function it_can_merge_a_language_with_the_base_language()
    {
        
$default Language::where('language'config('app.locale'))->first();
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'whats_up''value' => "What's up!"]);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => 'Hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'group' => 'single''key' => "What's up"'value' => "What's up!"]);

        
$this->translation->addGroupTranslation('es''test''hello''Hola!');
        
$translations $this->translation->getSourceLanguageTranslationsWith('es');

        
$this->assertEquals($translations->toArray(), [
            
'group' => [
                
'test' => [
                    
'hello' => ['en' => 'Hello''es' => 'Hola!'],
                    
'whats_up' => ['en' => "What's up!"'es' => ''],
                ],
            ],
            
'single' => [
                
'single' => [
                    
'Hello' => [
                        
'en' => 'Hello',
                        
'es' => '',
                    ],
                    
"What's up" => [
                        
'en' => "What's up!",
                        
'es' => '',
                    ],
                ],
            ],
        ]);
    }

    
/** @test */
    
public function it_can_add_a_vendor_namespaced_translations()
    {
        
$this->translation->addGroupTranslation('es''translation_test::test''hello''Hola!');

        
$this->assertEquals($this->translation->allTranslationsFor('es')->toArray(), [
            
'group' => [
                
'translation_test::test' => [
                    
'hello' => 'Hola!',
                ],
            ],
            
'single' => [],
        ]);
    }

    
/** @test */
    
public function it_can_add_a_nested_translation()
    {
        
$this->translation->addGroupTranslation('en''test''test.nested''Nested!');

        
$this->assertEquals($this->translation->getGroupTranslationsFor('en')->toArray(), [
            
'test' => [
                
'test.nested' => 'Nested!',
            ],
        ]);
    }

    
/** @test */
    
public function it_can_add_nested_vendor_namespaced_translations()
    {
        
$this->translation->addGroupTranslation('es''translation_test::test''nested.hello''Hola!');

        
$this->assertEquals($this->translation->allTranslationsFor('es')->toArray(), [
            
'group' => [
                
'translation_test::test' => [
                    
'nested.hello' => 'Hola!',
                ],
            ],
            
'single' => [],
        ]);
    }

    
/** @test */
    
public function it_can_merge_a_namespaced_language_with_the_base_language()
    {
        
$this->translation->addGroupTranslation('en''translation_test::test''hello''Hello');
        
$this->translation->addGroupTranslation('es''translation_test::test''hello''Hola!');
        
$translations $this->translation->getSourceLanguageTranslationsWith('es');

        
$this->assertEquals($translations->toArray(), [
            
'group' => [
                
'translation_test::test' => [
                    
'hello' => ['en' => 'Hello''es' => 'Hola!'],
                ],
            ],
            
'single' => [],
        ]);
    }

    
/** @test */
    
public function a_list_of_languages_can_be_viewed()
    {
        
$newLanguages factory(Language::class, 2)->create();
        
$response $this->get(config('translation.ui_url'));

        
$response->assertSee(config('app.locale'));
        foreach (
$newLanguages as $language) {
            
$response->assertSee($language->language);
        }
    }

    
/** @test */
    
public function the_language_creation_page_can_be_viewed()
    {
        
$this->translation->addGroupTranslation(config('app.locale'), 'translation::translation''add_language''Add a new language');
        
$this->get(config('translation.ui_url').'/create')
            ->
assertSee('Add a new language');
    }

    
/** @test */
    
public function a_language_can_be_added()
    {
        
$this->post(config('translation.ui_url'), ['locale' => 'de'])
            ->
assertRedirect();

        
$this->assertDatabaseHas('languages', ['language' => 'de']);
    }

    
/** @test */
    
public function a_list_of_translations_can_be_viewed()
    {
        
$default Language::where('language'config('app.locale'))->first();
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'hello''value' => 'Hello']);
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'whats_up''value' => "What's up!"]);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'key' => 'Hello''value' => 'Hello!']);
        
factory(TranslationModel::class)->states('single')->create(['language_id' => $default->id'key' => "What's up"'value' => 'Sup!']);

        
$this->get(config('translation.ui_url').'/en/translations')
            ->
assertSee('hello')
            ->
assertSee('whats_up')
            ->
assertSee('Hello')
            ->
assertSee('Sup!');
    }

    
/** @test */
    
public function the_translation_creation_page_can_be_viewed()
    {
        
$this->translation->addGroupTranslation('en''translation::translation''add_translation''Add a translation');
        
$this->get(config('translation.ui_url').'/'.config('app.locale').'/translations/create')
            ->
assertSee('Add a translation');
    }

    
/** @test */
    
public function a_new_translation_can_be_added()
    {
        
$this->post(config('translation.ui_url').'/'.config('app.locale').'/translations', ['group' => 'single''key' => 'joe''value' => 'is cool'])
            ->
assertRedirect();

        
$this->assertDatabaseHas('translations', ['language_id' => 1'key' => 'joe''value' => 'is cool']);
    }

    
/** @test */
    
public function a_translation_can_be_updated()
    {
        
$default Language::where('language'config('app.locale'))->first();
        
factory(TranslationModel::class)->states('group')->create(['language_id' => $default->id'group' => 'test''key' => 'hello''value' => 'Hello']);
        
$this->assertDatabaseHas('translations', ['language_id' => 1'group' => 'test''key' => 'hello''value' => 'Hello']);

        
$this->post(config('translation.ui_url').'/en', ['group' => 'test''key' => 'hello''value' => 'Hello there!'])
            ->
assertStatus(200)
            ->
assertSee(json_encode(['success' => true]));

        
$this->assertDatabaseHas('translations', ['language_id' => 1'group' => 'test''key' => 'hello''value' => 'Hello there!']);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]--