File: D:/HostingSpaces/SBogers10/werkenbij.komma.pro/tests/Browser/SiteMultiLanguageTest.php
<?php
namespace Tests\Browser;
use App\Komma\Globalization\Languages\Models\Language;
use App\Komma\Sites\Kms\SiteService;
use App\Komma\Sites\Models\Site;
use App\Komma\Sites\SiteServiceInterface;
use App\Komma\Users\Models\KmsUser;
use App\Komma\Users\Models\SiteUser;
use Illuminate\Support\Facades\App;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
class SiteMultiLanguageTest extends DuskTestCase
{
/**
* Opens the home page url at different languages and looks at the
* sign out button translation to verify that the
* translation was set after visiting
*
* @test
* @group SiteMultiLanguage
*/
public function testMultiLanguageHomePage()
{
$languages = $this->getCurrentLanguages();
$toSee = [
'de' => 'Herzlich willkommen!',
'en' => 'Welcome!',
'nl' => 'Welkom!'
];
$this->browse(function (Browser $browser) use ($languages, $toSee) {
foreach($languages as $currentLanguage) {
$iso2 = $currentLanguage->iso_2;
if(!isset($toSee[$iso2])) continue;
/** @var $currentLanguage Language */
App::setLanguage($currentLanguage);
$this->assertEquals($currentLanguage, App::getLanguage());
$browser->visit($iso2 =='nl' ? '/' : '/'.$iso2)
->assertSee($toSee[$iso2]);
}
});
}
/**
* Helper function
*/
private function getCurrentLanguages()
{
/** @var SiteService $siteService */
$siteService = app(SiteServiceInterface::class);
/** @var Site $site */
$siteService->setCurrentSiteToDefault();
$site = $siteService->getCurrentSite();
return $site->languages;
}
}